• DocumentCode
    2371840
  • Title

    Reducing wasted development time via continuous testing

  • Author

    Saff, David ; Ernst, Michael D.

  • Author_Institution
    MIT Comput. Sci. & Artificial Intelligence Lab, Cambridge, MA, USA
  • fYear
    2003
  • fDate
    17-20 Nov. 2003
  • Firstpage
    281
  • Lastpage
    292
  • Abstract
    Testing is often performed frequently during development to ensure software reliability by catching regression errors quickly. However, stopping frequently to test also wastes time by holding up development progress. User studies on real development projects indicate that these two sources of wasted time account for 10-15% of development time. These measurements use a novel technique for computing the wasted extra development time incurred by a delay in discovering a regression error. We present a model of developer behavior that infers developer beliefs from developer behavior, and that predicts developer behavior in new environments - in particular, when changing testing methodologies or tools to reduce wasted time. Changing test ordering or reporting reduces wasted time by 4-41% in our case study. Changing the frequency with which tests are run can reduce wasted time by 31-82% (but developers cannot know the ideal frequency except after the fact). We introduce and evaluate a new technique, continuous testing, that uses spare CPU resources to continuously run tests in the background, providing rapid feedback about test failures as as source code is edited. Continuous testing reduced wasted time by 92-98%, a substantial improvement over the other approaches. We have integrated continuous testing into two development environments, and are beginning user studies to evaluate its efficacy. We believe it has the potential to reduce the cost and improve the efficacy of testing and, as a result, to improve the reliability of delivered systems.
  • Keywords
    program testing; regression analysis; software reliability; background testing; continuous testing; developer behavior model; developer behavior prediction; regression errors; software development; software reliability; software testing; source code editing; Costs; Delay effects; Feedback; Frequency; Performance evaluation; Predictive models; Software reliability; Software testing; System testing; Time measurement;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Software Reliability Engineering, 2003. ISSRE 2003. 14th International Symposium on
  • ISSN
    1071-9458
  • Print_ISBN
    0-7695-2007-3
  • Type

    conf

  • DOI
    10.1109/ISSRE.2003.1251050
  • Filename
    1251050