An Automated System for Interactively Learning Software Testing

Date
2017
Journal Title
Journal ISSN
Volume Title
Publisher
Association for Computing Machinery
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.

Description
Advisor
Degree
Type
Journal article
Keywords
Citation

Smith, Rebecca, Tang, Terry, Warren, Joe, et al.. "An Automated System for Interactively Learning Software Testing." Proceedings of the 2017 ACM Conference on Innovation and Technology in Computer Science Education, (2017) Association for Computing Machinery: 98-103. https://doi.org/10.1145/3059009.3059022.

Has part(s)
Forms part of
Rights
Article is made available in accordance with the publisher's policy and may be subject to US copyright law. Please refer to the publisher's site for terms of use.
Link to license
Citable link to this page