Regression testing, as it's commonly practiced, is unsound due to inconsistent test repair and test addition. This paper presents a new technique, differential testing, that alleviates the test repair problem and detects more changes than regression testing alone. Differential testing works by creating test suites for both the original system and the modified system and contrasting both versions of the system with these two suites. Differential testing is made possible by recent advances in automated unit test generation. Furthermore, it makes automated erators more useful because it abstracts away the interpretation and management of large volumes of tests by focusing on the changes between test suites. In our preliminary empirical study of 3 subjects, differential testing discovered 21%, 34%, and 21% more behavior changes than regression testing alone. Categories and Subject Descriptors D.2.5 [Software Engineering]: Testing and Debugging ? Testing Tools, Debugging Aids General ...
Robert B. Evans, Alberto Savoia