An Empirical Study of Regression Test Selection Techniques
ACM Transactions on Software Engineering and Methodology
Todd Graves, Mary Jean Harrold, Jung-Min Kim, Adam Porter, Gregg Rothermel
Regression testing is the process of
validating modified software to detect
whether new errors have been introduced
into previously tested code, and provide
confidence that modifications are correct.
Since regression testing is an expensive
process, researchers have proposed regression
test selection techniques as a way to reduce
some of this expense. These techniques attempt to
reduce costs by selecting and running only a subset
of the test cases in a program's existing test suite.
Although there have been some analytical and empirical
evaluations of individual techniques, to our knowledge
only one comparative study, focusing on one aspect of
two of these techniques, has been reported in the literature.
We conducted an experiment to examine the relative costs and
benefits of several regression test selection techniques.
The experiment examined five techniques for
reusing test cases, focusing on their relative
abilities to reduce regression testing effort
and uncover faults in modified programs.
Our results highlight several differences
between the techniques, and expose essential
tradeoffs that should be considered when
choosing a technique for practical application.