An Automated System for Interactively Learning Software Testing
Authors:
Open Access
- 28 June 2017
- conference paper
- Published by Association for Computing Machinery (ACM)
- p. 98-103
Abstract
Testing is an important, time-consuming, and often difficult part of the software development process. It is therefore critical to introduce testing early in the computer science curriculum, and to provide students with frequent opportunities for practice and feedback. This paper presents an automated system to help introductory students learn how to test software. Students submit test cases to the system, which uses a large corpus of buggy programs to evaluate these test cases. In addition to gauging the quality of the test cases, the system immediately presents students with feedback in the form of buggy programs that nonetheless pass their tests. This enables students to understand why their test cases are deficient and gives them a starting point for improvement. The system has proven effective in an introductory class: students that trained using the system were later able to write better test cases -- even without any feedback -- than those who were not. Further, students reported additional benefits such as improved ability to read code written by others and to understand multiple approaches to the same problem.Keywords
Funding Information
- National Science Foundation (CCF-1320860, 1450681 (GRFP))
This publication has 26 references indexed in Scilit:
- In-flow peer-review of tests in test-first programming2014
- Comparing test quality measures for assessing student-written tests2014
- Running students' software tests against each others' code2012
- Does Active Learning Work? A Review of the ResearchJournal of Engineering Education, 2004
- Experience With Teaching Black-Box Testing in a Computer Science/Software Engineering CurriculumIEEE Transactions on Education, 2004
- Improving student performance by evaluating how well students test their own programsJournal on Educational Resources in Computing, 2003
- An experience in integrating automated unit testing practices in an introductory programming courseACM SIGCSE Bulletin, 2002
- More testing should be taughtCommunications of the ACM, 2001
- Software qualityACM SIGCSE Bulletin, 2000
- Teaching software testing1996