Advanced Search

Automatic continuous testing to speed software development

Research and Teaching Output of the MIT Community

Show simple item record

dc.contributor.advisor Michael D. Ernst. en_US Saff, David, 1976- en_US
dc.contributor.other Massachusetts Institute of Technology. Dept. of Electrical Engineering and Computer Science. en_US 2006-03-24T18:19:04Z 2006-03-24T18:19:04Z 2004 en_US 2004 en_US
dc.description Thesis (S.M.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Computer Science, 2004. en_US
dc.description Includes bibliographical references (p. 147-152). en_US
dc.description.abstract Continuous testing is a new feature for software development environments that 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 to prevent regression errors from persisting uncaught for long periods of time. The longer that regression errors are allowed to linger during development, the more time is wasted debugging and fixing them once they are discovered. By monitoring and measuring software projects, we estimate that the wasted time, consisting of this preventable extra fixing cost added to the time spent running tests and waiting for them to complete, accounts for 10-15% of total development time. We present a model of developer behavior that uses data from past projects to infer developer beliefs and predict behavior in new environments -in particular, when changing testing methodologies or tools to reduce wasted time. This model predicts that continuous testing would reduce wasted time by 92-98%, a substantial improvement over other approaches we evaluated, such as automatic test prioritization and changing manual test frequencies. A controlled human experiment indicates that student developers using continuous testing were three times more likely to complete a task before the deadline than those without, with no significant effect on time worked. en_US
dc.description.abstract (cont.) Most participants found continuous testing to be useful and believed that it helped them write better code faster. 90% would recommend the tool to others. We show the first empirical evidence of a benefit from continuous compilation, a popular related feature. Continuous testing has been integrated into Emacs and Eclipse. We detail the functional and technical design of the Eclipse plug-in, which is publicly beta-released. en_US
dc.description.statementofresponsibility by David Saff. en_US
dc.format.extent 152 p. en_US
dc.format.extent 7410262 bytes
dc.format.extent 7410068 bytes
dc.format.mimetype application/pdf
dc.format.mimetype application/pdf
dc.language.iso eng en_US
dc.publisher Massachusetts Institute of Technology en_US
dc.rights M.I.T. theses are protected by copyright. They may be viewed from this source for any purpose, but reproduction or distribution in any format is prohibited without written permission. See provided URL for inquiries about permission. en_US
dc.subject Electrical Engineering and Computer Science. en_US
dc.title Automatic continuous testing to speed software development en_US
dc.type Thesis en_US S.M. en_US
dc.contributor.department Massachusetts Institute of Technology. Dept. of Electrical Engineering and Computer Science. en_US
dc.identifier.oclc 55676718 en_US

Files in this item

Name Size Format Description
55676718-MIT.pdf 8.990Mb PDF Full printable version

This item appears in the following Collection(s)

Show simple item record