Testing plays a crucial role in software development, and it is essential for software engineering students to receive proper testing education. However, motivating students to write tests and use automated testing during software development can be challenging. To address this issue and enhance student engagement in testing when they write code, we propose to incentivize students to test more by gamifying continuous integration. For this we use Gamekins, a tool that is seamlessly integrated into the Jenkins continuous integration platform and uses game elements based on commits to the source code repository: Developers can earn points by completing test challenges and quests generated by Gamekins, compete with other developers or teams on a leaderboard, and receive achievements for their test-related accomplishments. In this paper, we present our integration of Gamekins into an undergraduate-level course on software testing. We observe a correlation between how students test their code and their use of Gamekins, as well as a significant improvement in the accuracy of their results compared to a previous iteration of the course without gamification. As a further indicator of how this approach improves testing behavior, the students reported enjoyment in writing tests with Gamekins.
翻译:测试在软件开发中至关重要,因此软件工程专业学生接受规范的测试教育必不可少。然而,如何激励学生在软件开发过程中编写测试用例并运用自动化测试仍具挑战性。为解决该问题并提升学生在编码时对测试的参与度,我们提出通过持续集成游戏化的方式激励学生进行更充分的测试。为此采用Gamekins工具,该工具无缝集成于Jenkins持续集成平台,基于源代码仓库的提交记录引入游戏元素:开发者可通过完成Gamekins生成的测试挑战和任务获取积分,在排行榜上与其他开发者或团队竞争,还可因测试相关成就获得徽章。本文展示了我们将Gamekins整合至本科生软件测试课程中的实践。研究发现,学生代码测试行为与其使用Gamekins的活跃度存在相关性,且相较于未引入游戏化的上一轮课程,学生的测试结果准确率显著提升。作为该教学方法的又一佐证,学生反馈称使用Gamekins编写测试用例的过程充满乐趣。