Regression testing is an expensive but necessary maintenance activity performed on modified software to provide confidence that changes are correct and do not adversely affect other portions of the software. A regression test selection technique chooses, from an existing test set, tests that are deemed necessary to validate modified software. We present a new technique for regression test selection. Our algorithms construct control flow graphs for a procedure or program and its modified version, and use these graphs to select tests that execute changed code from the original test suite. We prove that under certain conditions, the set of tests our technique selects includes every test from the original test suite that can expose faults in the modified procedure or program. Under these conditions our algorithms are safe. Moreover, although our algorithms may select some tests that cannot expose faults, they are at least as precise as other safe regression test selection algorithms. Unlike many other regression test selection algorithms, our algorithms handle all language constructs and all types of program modifications. We have implemented our algorithms; initial empirical studies indicate that our technique can significantly reduce the cost of regression testing modified software.
|
797
|
Software Engineering. A Practitioners Approach
– Pressman
- 1997
|
|
223
|
Software engineering
– Boehm
- 1976
|
|
186
|
The category-partition method for specifying and generating functional tests
– Ostrand, Balcer
- 1988
|
|
120
|
Experiments on the effectiveness of dataflow- and control-flow-based test adequacy criteria
– Hutchins, Foster, et al.
- 1994
|
|
117
|
Software Testing Techniques. Van Nostrand Reinhold,New
– Beizer
- 1990
|
|
104
|
Analyzing Regression Test Selection Techniques
– Rothermel, Harrold
- 1996
|
|
95
|
TestTube: A System for Selective Regression Testing
– Chen, Rosenblum, et al.
- 1994
|
|
85
|
So a. A methodology for controlling the size of a test suite
– Harrold, Gupta, et al.
- 1993
|
|
81
|
Incremental program testing using program dependency graphs
– Bates, Horiwitz
- 1993
|
|
70
|
An Approach to Regression Testing using Slicing
– Gupta, Harrold, et al.
- 1992
|
|
62
|
Incremental regression testing
– Agrawal, Horgan, et al.
- 1993
|
|
61
|
Automatic generation of test scripts from formal test speci cations
– Balcer, Hasling, et al.
- 1989
|
|
56
|
Effect of test set minimization on fault detection e ectiveness
– Wong, Horgan, et al.
- 1998
|
|
52
|
Insights into regression testing
– Leung, White
- 1989
|
|
52
|
Characteristics of application software maintenance
– Lientz, Swanson, et al.
- 1978
|
|
46
|
A study of integration testing and software regression at the integration level
– Leung, White
- 1990
|
|
43
|
An incremental approach to unit testing during maintenance
– Harrold, Soffa
- 1988
|
|
42
|
Using dataflow analysis for regression testing
– Ostrand, Weyuker
- 1988
|
|
41
|
Software Maintenance Management: A Study of the Maintenance
– Lientz, Swanson
- 1980
|
|
38
|
Using semantic differencing to reduce the cost of regression testing
– Binkley
- 1992
|
|
38
|
A cost model to compare regression test strategies
– Leung, White
- 1991
|
|
37
|
Interprocedural Data Flow Testing
– Harrold, Sofia
- 1989
|
|
34
|
A methodology for retesting modified software
– Fischer, Raji, et al.
- 1981
|
|
34
|
Techniques for Selective Revalidation
– Hartmann, Robson
- 1990
|
|
31
|
Efficient Algorithm for Regression Test Selection
– Rothermel, Harrold, et al.
- 1993
|
|
31
|
Selecting tests and identifying test coverage requirements for modi ed software
– Rothermel, Harrold
- 1994
|
|
30
|
Software Maintenance Management – Changes in the last Decade
– Nosek, P
- 1990
|
|
28
|
An approach to software fault localization and revalidation based on incremental data flow analysis
– Taha, Thebaut, et al.
- 1989
|
|
24
|
A firewall concept for both control-flow and data-flow in regression integration testing
– White, Leung
- 1992
|
|
23
|
Identification of program modifications and its applications in software maintenance
– Laski, Szermer
- 1992
|
|
21
|
Post-maintenance Testing Based on Path Change Analysis
– Benedusi, Cimitile, et al.
- 1988
|
|
19
|
Selecting Regression Tests for ObjectOriented Software
– Rothermel, Harrold
- 1994
|
|
17
|
Efficient, Effective Regression Testing Using Safe Test Selection Techniques
– Rothermel
- 1996
|
|
14
|
Test Manager: A Regression Testing Tool
– White, Narayanswamy
- 1993
|
|
13
|
Module test case generation
– Hoffman, Brealey
- 1989
|
|
12
|
Aristotle: a system for the development of program-analysis-based tools
– Harrold, Larsen, et al.
- 1995
|
|
12
|
Logical modification oriented software testing
– Sherlund, Korel
- 1995
|
|
12
|
A method for revalidating modified programs in the maintenance phase
– Yau, Kishimoto
- 1987
|
|
11
|
Reducing the cost of regression testing by semantics guided test case selection
– Binkley
- 1995
|
|
11
|
A methodology for test selection
– Lee, He
- 1990
|
|
9
|
A CASE study in module testing
– Hoffman
- 1989
|
|
8
|
An incremental data flow testing tool
– Harrold, Soffa
- 1989
|
|
8
|
Domain Based Regression Testing
– Mayrhauser, Mraz, et al.
- 1994
|
|
7
|
Revalidation during the software maintenance phase
– Hartmann, Robson
- 1989
|
|
6
|
A test case selection method for the validation of software maintenance modifications
– Fischer
- 1977
|
|
6
|
Insights into testing and regression testing global variables
– Leung, White
- 1990
|
|
6
|
Predicting the cost-effectiveness of regression testing strategies
– Rosenblum, Weyuker
- 1996
|
|
5
|
RETEST - development of a selective revalidation prototype environment for use in software maintenance
– Hartmann, Robson
- 1990
|
|
5
|
Assay - a tool to support regression testing
– Lewis, Beck, et al.
- 1989
|
|
5
|
Software Engineering. Aksen Associates
– Schach
- 1992
|