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 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. \par 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 Changing the frequency with which tests are run can reduce wasted time after the fact). We introduce and evaluate a new technique, \emphcontinuous testing, that uses spare CPU resources to continuously run tests in the background, providing rapid feedback about test failures as source code is edited. Continuous testing other approaches. \par 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. |