ABSTRACT
Software testing is essential to ensure the quality of a system. One of the first levels of testing is the Unit Testing, which aims to test the smallest part of the software, such as objects, methods or classes or modules. Motivated by the relevance of unit tests in the software development process and the lack of undergraduate courses where students can relate the theoretical concepts of tests to practical classes, we propose a game-based learning approach, called GAMUT, linked by a narrative for teaching unit tests. The approach consists of three steps: a game to introduce the concepts of unit testing such as testing doubles and the given-when-then structure; a video lesson that uses similar code of the game to explain and exemplify the previous concepts; and an activity with a challenge, in which the students can practice what they learned for example the writing unit tests. The approach was applied to an undergraduate class of a Verification and Validation course at a university. The results showed that the approach helped to engage the students in the learning process of unit testing since most of them were able to successfully complete the proposed activity. Also, the students enjoyed the game, the narrative and the lucidity of the proposed activity.
- Rula Al-Azawi, Fatma Al-Faliti, and Mazin Al-Blushi. 2016. Educational gamification vs. game based learning: Comparative study. International Journal of Innovation, Management and Technology 7, 4(2016), 132–136.Google Scholar
- A. Arcuri, G. Fraser, and R. Just. 2017. Private API Access and Functional Mocking in Automated Unit Test Generation. In 2017 IEEE International Conference on Software Testing, Verification and Validation (ICST). 126–137.Google Scholar
- Arthur Silva Bastos, Renata Faria Gomes, Clemilson Costa dos Santos, and José Gilvan Rodrigues Maia. 2018. Synesthesia: A study on immersive features of electronic games. SBC Journal on Interactive Systems 9, 2 (2018), 38–51.Google Scholar
- Thiago A Beppe, Ítalo Linhares de Araújo, Bruno Sabóia Aragão, Ismayle de Sousa Santos, Davi Ximenes, and Rossana M Castro Andrade. 2018. GreaTest: a card game to motivate the software testing learning. In Proceedings of the XXXII Brazilian Symposium on Software Engineering. 298–307.Google ScholarDigital Library
- Roberta Coelho, Uirá Kulesza, Arndt von Staa, and Carlos Lucena. 2006. Unit testing in multi-agent systems using mock agents and aspects. In Proceedings of the 2006 international workshop on Software engineering for large-scale multi-agent systems. 83–90.Google ScholarDigital Library
- Heather Coffey. 2009. Digital game-based learning. Learn NC (2009).Google Scholar
- Gabriela Martins de Jesus, Fabiano Cutigi Ferrari, Daniel de Paula Porto, and Sandra Camargo Pinto Ferraz Fabbri. 2018. Gamification in Software Testing: A Characterization Study(SAST ’18). Association for Computing Machinery, New York, NY, USA, 39–48.Google Scholar
- Robert F DeVellis. 2016. Scale development: Theory and applications. Vol. 26. Sage publications.Google Scholar
- Michele D Dickey. 2011. Murder on Grimm Isle: The impact of game narrative design in an educational game-based learning environment. British journal of educational technology 42, 3 (2011), 456–469.Google Scholar
- Sebastian Elbaum, Suzette Person, Jon Dokulil, and Matt Jorde. 2007. Bug hunt: Making early software testing lessons engaging and affordable. In 29th International Conference on Software Engineering (ICSE’07). IEEE, 688–697.Google ScholarDigital Library
- Gordon Fraser. 2017. Gamification of software testing. In 2017 IEEE/ACM 12th International Workshop on Automation of Software Testing (AST). IEEE, 2–7.Google ScholarDigital Library
- Steve Freeman, Tim Mackinnon, Nat Pryce, and Joe Walnes. 2004. Mock roles, not objects. In Companion to the 19th annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications. 236–246.Google Scholar
- Tracy Fullerton, Chris Swain, and Steven Hoffman. 2004. Game design workshop: Designing, prototyping, & playtesting games. CRC Press. 180 pages.Google ScholarDigital Library
- P. Henrique Dias Valle, A. M. Toda, E. F. Barbosa, and J. C. Maldonado. 2017. Educational games: A contribution to software testing education. In 2017 IEEE Frontiers in Education Conference (FIE). 1–8.Google ScholarDigital Library
- IEEE. 1990. IEEE Standard Glossary of Software Engineering Terminology (Std. 610.12-1990).Google Scholar
- Tan Chin Ike, Tan Wee Hoe, Julian Lee Eng Kim, and Ng Yiing Y’ng. 2021. Exploring User Experience from an Emotional Context When Designing Immersive Games for Education. Journal of ICT in Education 8, 1 (2021), 10–25.Google Scholar
- Gabriela Kiryakova, Nadezhda Angelova, and Lina Yordanova. 2014. Gamification in education. Proceedings of 9th International Balkan Education and Science Conference.Google Scholar
- Joakim Korhonen. 2020. Automated Model Generation using Graphwalker Based On Given-When-Then Specifications.Google Scholar
- Erik Krogen. 2016. Bond: A Spy-based Testing and Mocking Library. Technical Report. Technical Report. Electrical Engineering and Computer Sciences, University of California at Berkeley.Google Scholar
- Valéria Lelli, Rossana MC Andrade, Lavinia M Freitas, Rubens AS Silva, Francisco Gutenberg S Filho, Renata Faria Gomes, and Jan Sousa de Oliveira Severo. 2020. Gamification in Remote Teaching of SE Courses: Experience Report. In Proceedings of the 34th Brazilian Symposium on Software Engineering. 844–853.Google ScholarDigital Library
- Ana Paula Lopes, Mariano Soler, Rocío Caña-Palma, Luis Cortés, M. Bentabol, Amparo Bentabol, Maria Munoz, Ana Esteban, and M Luna. 2019. Gamification in Education and Active Methodologies at Higher Education. https://doi.org/10.21125/edulearn.2019.0480Google Scholar
- Tim Mackinnon, Steve Freeman, and Philip Craig. 2000. Endo-testing: unit testing with mock objects. Extreme programming examined(2000), 287–301.Google Scholar
- Thomas W Malone. 1981. Toward a theory of intrinsically motivating instruction. Cognitive science 5, 4 (1981), 333–369.Google Scholar
- Arthur Marques, Franklin Ramalho, and Wilkerson L Andrade. 2014. Comparing model-based testing with traditional testing strategies: An empirical study. In 2014 IEEE Seventh International Conference on Software Testing, Verification and Validation Workshops. IEEE, 264–273.Google ScholarDigital Library
- Gerard Meszaros. 2007. xUnit test patterns: Refactoring test code. Pearson Education.Google Scholar
- Rafael da Silva Nunes. 2017. Leituras do Poder na Terceira Era da Terra-Média: um ensaio baseado em O Senhor dos Anéis. Espaço e Cultura41(2017), 148–166.Google Scholar
- Giani Petri, C Gresse von Wangenheim, and Adriano Ferretti Borgatto. 2016. MEEGA+: an evolution of a model for the evaluation of educational games. INCoD/GQS 3(2016), 1–40.Google Scholar
- Donald E Polkinghorne. 1988. Narrative knowing and the human sciences. Suny Press.Google Scholar
- Loana Russo Barbosa Ramos. 2019. Proposta de modo de acessibilidade para o jogo Nihilumbra: tornando o jogo mais acessível para jogadores daltônicos.TCC (Graduação em Sistemas e Mídias Digitais)-Universidade Federal do Ceará, Fortaleza.Google Scholar
- José Miguel Rojas and Gordon Fraser. 2016. Code defenders: a mutation testing game. In 2016 IEEE Ninth International Conference on Software Testing, Verification and Validation Workshops (ICSTW). IEEE, 162–167.Google ScholarCross Ref
- Katie Salen, Katie Salen Tekinbaş, and Eric Zimmerman. 2004. Rules of play: Game design fundamentals. MIT press.Google ScholarDigital Library
- Kevin A Stein and Matthew H Barton. 2019. The “Easter egg” syllabus: Using hidden content to engage online and blended classroom learners. Communication Teacher 33, 4 (2019), 249–255.Google ScholarCross Ref
- Jeff Stuckman and Guo-Qiang Zhang. 2005. Mastermind is NP-complete. arXiv preprint cs/0512049(2005).Google Scholar
- Pedro Valle, Ellen Francine Barbosa, and José Maldonado. 2015. Um mapeamento sistemático sobre ensino de teste de software. In In Proceedings of Brazilian Symposium on Computers in Education (SBIE), Vol. 26. 71.Google ScholarCross Ref
Index Terms
- GAMUT: GAMe-based learning approach for teaching Unit Testing
Recommendations
Parameterized unit testing: theory and practice
ICSE '10: Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 2Unit testing has been widely recognized as an important and valuable means of improving software reliability, as it exposes bugs early in the software development life cycle. However, manual unit testing is often tedious and insufficient. Testing tools ...
Smart Unit Testing Framework
ISSREW '12: Proceedings of the 2012 IEEE 23rd International Symposium on Software Reliability Engineering WorkshopsUnit testing(UT) is an important step in ensuring the quality of software. Considerable effort is spent in unit testing. There are several frameworks to help with UT. Some common frameworks are Cunit, Junit, Nunit etc. All of these have very similar ...
Research on Test Flakiness: from Unit to System Testing
ASE '22: Proceedings of the 37th IEEE/ACM International Conference on Automated Software EngineeringTest flakiness has been a common problem in the software automation testing, affecting the effectiveness and productivity of test automation. Many studies have been published to tackle test flakiness in the software research community, and existing ...
Comments