Figure 1 - uploaded by Matheus Marabesi
Content may be subject to copyright.
Game elements divided into categories.

Game elements divided into categories.

Source publication
Conference Paper
Full-text available
Due the constant evolution of software development and its growing complexity, more is being required from professionals to master different phases of the software development process, which includes the testing phase. This has an impact on the training of new professionals, since the undergraduate curricula is supposed to address this complexity....

Citations

... A study by Marabesi et al. [56] also finds that unit tests are an important topic often neglected by programming courses. They developed a gamified tool called Testable to teach computer science students how to write unit tests. ...
Article
Full-text available
Despite recent high interest among researchers and practitioners in learning programming, even the most dedicated learners can struggle to find motivation for studying and practicing programming. Therefore, in recent years, several strategies ( e.g. , educational games, flipped classrooms, and visual programming languages) have been employed to increase students’ engagement in programming studies. However, despite these efforts, no approach has proven efficient enough to sufficiently motivate these learners, and the community continues to search for novel strategies to enhance programming learners’ motivation. Building upon this, our study explores the use of unplugged gamification ( i.e. , gamification implemented without digital technology) combined with challenge-based learning during a programming workshop. Using Grounded Theory methods and data collected from focus groups, we analyzed and interpreted the perceptions of 24 programming learners regarding the gamified workshop. Learners reported experiencing collaboration while learning, with some indicating increased effort to obtain rewards, while others seemed to forget about the rewards altogether. Our findings provide valuable insights for computing teachers and researchers into how unplugged gamification combined with challenge-based learning is perceived by programming learners.
... A similar observation can be made about software testing tools. Examples include CodeDefenders [18], Marmoset [36], Web-CAT [17], iLearnTest [29], TesCaV [19], Testable [23], Unit Brawl [28], WResTT [13], ModelDefenders [6] and TILES [15]. Research on such tools has mostly focused on students' subjective perceptions of the use of the tools (e.g. ...
... On the other end of the spectrum, Yahya and Awang Abu Bakar [15] investigated perceptions towards TDD among students. It is known from academia that students often perceive testing activities as boring [22]. However, this paper found that student perceptions are mixed. ...
Article
Full-text available
Test-driven development (TDD) is an agile practice of writing test code before production code, following three stages: red, green, and refactor. In the red stage, the test code is written; in the green stage, the minimum code necessary to make the test pass is implemented, and in the refactor stage, improvements are made to the code. This practice is widespread across the industry, and various studies have been conducted to understand its benefits and impacts on the software development process. Despite its popularity, TDD studies often focus on the technical aspects of the practice, such as the external/internal quality of the code, productivity, test smells, and code comprehension, rather than the context in which it is practiced. In this paper, we present a systematic literature review using Scopus, Web of Science, and Google Scholar that focuses on the TDD practice and the influences that lead to the introduction of test smells/anti-patterns in the test code. The findings suggest that organizational structure influences the testing strategy. Additionally, there is a tendency to use test smells and TDD anti-patterns interchangeably, and test smells negatively impact code comprehension. Furthermore, TDD styles and the relationship between TDD practice and the generation of test smells are frequently overlooked in the literature.
... The literature highlights several effective gamification methods in software engineering education, such as the use of real-world scenarios, competitive elements, immediate feedback, interactive activities, and collaboration [19]. A gamified tool named 'Testable' [20] focuses on improving unit testing teaching through structured and object-oriented programming. Furthermore, the impact of gamification and power posing on coding efficiency is studied [21], suggesting gamification has the potential to enhance developer efficiency. ...
... The second is the way of teaching students the importance of the practice and its benefits, even more, sharing in which context TDD can be used is by itself challenging as it requires professional experience from professors. Last but not least students also perceive testing as a boring activity [29]. ...
Preprint
Full-text available
Agile software development has been adopted in the industry to quickly react to business change. Since its inception both academia and industry debate the different shades that agile processes and technical practices play in the day-to-day of students and professional developers. Efforts have been made to understand the pros and cons of the Test Driven Development (TDD) practice to develop software as part of a professional environment. Despite the effort of practitioners to list the TDD anti-patterns that unveil undesired effects in the code when practicing TDD, work is needed to understand the causes that lead to that. In that sense, this paper proposes a research project that explores the TDD anti-patterns context and what leads practitioners to face them in the software development context. As a result, we expect to offer a TDD maturity framework to help practitioners in the process of writing code guided by tests and prevent the addition of anti-patterns
... The second is the way of teaching students the importance of the practice and its benefits, even more, sharing in which context TDD can be used is by itself challenging as it requires professional experience from professors. Last but not least students also perceive testing as a boring activity [29]. ...
... Some works are focused on applying gamification to expose students of introductory computer science courses to software testing, such as (Bell et al., 2011;Sheth et al., 2015Sheth et al., , 2013. Other works apply gamification to engage students in the learning of Agile test practices (Elgrably & Oliveira, 2018; , unit testing (Marabesi & Silveira, 2019), Graphical User Interface testing (Cacciotto et al., 2021;Garaccione et al., 2022), testing tools (Clarke et al., 2017;Fu & Clarke, 2016) or test incident reporting (Dal Sasso et al., 2017). ...
Article
Full-text available
Software testing is an essential knowledge area required by industry for software engineers. However, software engineering students often consider testing less appealing than designing or coding. Consequently, it is difficult to engage students to create effective tests. To encourage students, we explored the use of gamification and investigated whether this technique can help to improve the engagement and performance of software testing students. We conducted a controlled experiment to compare the engagement and performance of two groups of students that took an undergraduate software testing course in different academic years. The experimental group is formed by 135 students from the gamified course whereas the control group is formed by 100 students from the non-gamified course. The data collected were statistically analyzed to answer the research questions of this study. The results show that the students that participated in the gamification experience were more engaged and achieved a better performance. As an additional finding, the analysis of the results reveals that a key aspect to succeed is the gamification experience design. It is important to distribute the motivating stimulus provided by the gamification throughout the whole experience to engage students until the end. Given these results, we plan to readjust the gamification experience design to increase student engagement in the last stage of the experience, as well as to conduct a longitudinal study to evaluate the effects of gamification.
... The production of poorly-written code, on the other hand, can lead to problems that might remain hidden for a long time, and it may require difficult and time-consuming activities to detect and correct the source of the defects. Hence, it becomes necessary for academic courses to introduce a structured and, yet, enjoyable way of teaching software testing [12]. ...
Article
While testing takes on a fundamental role to verify software quality and correctness, it often results to be overlooked in the educational field and students often approach it unwillingly, due to its repetitiveness. Our aim is to exploit gamification to engage students by providing them with dynamics like competition, self-expression, and personal improvement. We designed and developed Unit Brawl, a gamified application meant to manage multiple rounds, each one consisting of students developing Java programs and unit tests to be executed on each other. The players collect points by writing correct code that does not make the other players' test cases fail, or by writing test cases capable of detecting defects in the other players' code. The results of a preliminary evaluation to assess the functionality and performance of Unit Brawl look promising. They make us confident about its stability, so we plan an evaluation with students in order to verify the effectiveness of the applied game elements in enhancing the students' interest towards testing topics and their learning.
... The production of poorly-written code, on the other hand, can lead to problems that might remain hidden for a long time, and it may require difficult and time-consuming activities to detect and correct the source of the defects. Hence, it becomes necessary for academic courses to introduce a structured and, yet, enjoyable way of teaching software testing [4]. ...
... Some works are focused on applying gamification to expose students of introductory computer science courses to software testing, such as (Bell et al., 2011;Sheth et al., 2015Sheth et al., , 2013. Other works apply gamification to engage students in the learning of Agile test practices (Elgrably & Oliveira, 2018; , unit testing (Marabesi & Silveira, 2019), Graphical User Interface testing (Cacciotto et al., 2021;Garaccione et al., 2022), testing tools (Clarke et al., 2017;Fu & Clarke, 2016) or test incident reporting (Dal Sasso et al., 2017). ...
Preprint
Full-text available
Software testing is an essential knowledge area required by industry for software engineers. However, software engineering students often consider testing less appealing than designing or coding. Consequently, it is difficult to engage students to create effective tests. To encourage students, we explored the use of gamification and investigated whether this technique can help to improve the engagement and performance of software testing students. We conducted a controlled experiment to compare the engagement and performance of two groups of students that took an undergraduate software testing course in different academic years. The experimental group is formed by 135 students from the gamified course whereas the control group is formed by 100 students from the non-gamified course. The data collected were statistically analyzed to answer the research questions of this study. The results show that the students that participated in the gamification experience were more engaged and achieved a better performance. As an additional finding, the analysis of the results reveals that a key aspect to succeed is the gamification experience design. It is important to distribute the motivating stimulus provided by the gamification throughout the whole experience to engage students until the end. Given these results, we plan to readjust the gamification experience design to increase student engagement in the last stage of the experience, as well as to conduct a longitudinal study to evaluate the effects of gamification.