Introductory CS classes typically do not focus on software testing [5,6]. A lot of students’ mental model when they start learning programming is that “if it compiles and runs without crashing, it must work fine.” Despite numerous attempts to introduce testing early in CS programs and many known benefits to inculcating good testing habits early in one’s programming life [4, 6], students remain averse to software testing as there is low student interest in software testing [5]. To address this problem, we used an internally developed research system called HALO — “Highly Addictive sociaLly Optimized Software Engineering” [1]. Our previous work describes early prototypes of HALO; in this paper, we describe how we used it for the CS2 class and the feedback from real users. HALO uses game-like elements and motifs from popular games like World of Warcraft [2] to make the whole software engineering process and in particular, the software testing process, more engaging and social. HALO is not a game; it leverages game mechanics and applies them to the software development process. For example, in HALO, students are given a number of “quests” that they need to complete. These quests are used to disguise standard software testing techniques like white and black box testing, unit testing, and boundary value analysis. Upon completing these quests, the students get social rewards in the form of achievements, titles, and experience points. They can see how they are doing compared to other students in the class. While the students think that they are competing just for points and achievements, the primary benefit of such a system is that the students’ code gets tested a lot better than it normally would have.
介绍性的CS课程通常不关注软件测试[5,6]。在CS计划的早期进行测试,以及在编程生活中早期灌输良好测试习惯的许多已知好处[4,6],学生仍然不喜欢软件测试,因为学生对软件测试[5],我们使用了一个名为Halo的内部开发的研究系统,“高度上瘾的社会优化软件工程” [1]。将其用于CS2类,来自真实用户的反馈。工程过程,尤其是软件测试过程,更具吸引力和社交性是一种游戏,它可以利用游戏机制,并将其应用于软件开发过程。他们需要完成这些任务。学生以成就,头衔和经验值的形式获得社交奖励。一个系统是,学生的代码被测试要比平常要好得多。