An experimental evaluation of continuous testing during development

  • Authors:
  • David Saff;Michael D. Ernst

  • Affiliations:
  • MIT Computer Science & Artificial Intelligence Lab, Cambridge, MA;MIT Computer Science & Artificial Intelligence Lab, Cambridge, MA

  • Venue:
  • ISSTA '04 Proceedings of the 2004 ACM SIGSOFT international symposium on Software testing and analysis
  • Year:
  • 2004

Quantified Score

Hi-index 0.00

Visualization

Abstract

Continuous testing uses excess cycles on a developer's workstation to continuously run regression tests in the background, providing rapid feedback about test failures as source code is edited. It is intended to reduce the time and energy required to keep code well-tested and prevent regression errors from persisting uncaught for long periods of time. This paper reports on a controlled human experiment to evaluate whether students using continuous testing are more successful in completing programming assignments. We also summarize users' subjective impressions and discuss why the results may generalize.The experiment indicates that the tool has a statistically significant effect on success in completing a programming task, but no such effect on time worked. Participants using continuous testing were three times more likely to complete the task before the deadline than those without. Participants using continuous compilation were twice as likely to complete the task, providing empirical support to a common feature in modern development environments. Most participants found continuous testing to be useful and believed that it helped them write better code faster, and 90% would recommend the tool to others. The participants did not find the tool distracting, and intuitively developed ways of incorporating the feedback into their workflow.