The goal of software testing is to prevent and detect the introduction of faults and bugs during the process of evolving and delivering reliable software. As an important software development activity, testing has been intensively studied to measure test code quality and effectiveness, and assist professional developers and testers with automated test generation tools. In recent years, testing has been attracting educators’ attention and has been integrated into some Computer Science education programs. To develop and enhance the testing skills of students and novice software testers, insights on how they perceive and perform testing, what challenges do they encounter, and if the novices approach the testing tasks differently than the professionals are demanded but still lacking.
In my research, I study how students implement and modify source code given unit tests, and how they perceive and perform unit testing. I propose to quantitatively measure the quality of student-written test code, and qualitatively identify the common mistakes and bad smells observed in student-written test code. We compare the performance of students and professionals, who vary in prior testing experience, to explore the factors that lead to high-quality test code. The ultimate goal of my research is to address the challenges students encountered during test code composition and improve their testing skills with supportive tools or guidance.