Results 1 -
5 of
5
Analyzing regression test selection techniques
- IEEE Transactions on Software Engineering
, 1996
"... Abstract-Regression testing is a necessary but expensive maintenance activity aimed at showing that code has not been adversely affected by changes. Regression test selection techniques reuse tests from an existing test suite to test a modified program. Many regression test selection techniques have ..."
Abstract
-
Cited by 130 (38 self)
- Add to MetaCart
Abstract-Regression testing is a necessary but expensive maintenance activity aimed at showing that code has not been adversely affected by changes. Regression test selection techniques reuse tests from an existing test suite to test a modified program. Many regression test selection techniques have been proposed; however, it is difficult to compare and evaluate these techniques because they have different goals. This paper outlines the issues relevant to regression test selection techniques, and uses these issues as the basis for a framework within which to evaluate the techniques. We illustrate the application of our framework by using it to evaluate existing regression test selection techniques. The evaluation reveals the strengths and weaknesses of existing techniques, and highlights some problems that future work in this area should address. Index Terms-Software maintenance, regression testing, selective retest, regression test selection. 1
A Safe, Efficient Regression Test Selection Technique
- ACM TRANSACTIONS ON SOFTWARE ENGINEERING AND METHODOLOGY
, 1997
"... 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 d ..."
Abstract
-
Cited by 127 (51 self)
- Add to MetaCart
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 algorith...
Regression Test Selection for C++ Software
- Software Testing, Verification & Reliability
, 1999
"... Regression testing is an important but expensive software maintenance activity performed with the aim of providing condence in modied software. Regression test selection techniques reduce the cost of regression testing by selecting tests for a modied program from a previously existing test suite. Ma ..."
Abstract
-
Cited by 23 (6 self)
- Add to MetaCart
Regression testing is an important but expensive software maintenance activity performed with the aim of providing condence in modied software. Regression test selection techniques reduce the cost of regression testing by selecting tests for a modied program from a previously existing test suite. Many researchers have addressed the regression test selection problem for procedural language software, but few have addressed the problem for object-oriented software. This paper presents a regression test selection technique for use with object-oriented software. The technique constructs graph representations for software, and uses these graphs to select tests, from the original test suite, that execute code that has been changed for the new version of the software. The technique is strictly code based, and requires no assumptions about the approach used to specify or test the software initially. The technique applies to modied and derived classes, and to applications programs that use m...
Testing Evolving Software
- Journal of Systems and Software
, 1999
"... Regression testing, which attempts to validate modified software and ensure that no new errors are introduced into previously tested code, is used extensively during maintenance of evolving software. Despite efforts to reduce its cost, regression testing remains one of the most expensive activitie ..."
Abstract
-
Cited by 11 (0 self)
- Add to MetaCart
Regression testing, which attempts to validate modified software and ensure that no new errors are introduced into previously tested code, is used extensively during maintenance of evolving software. Despite efforts to reduce its cost, regression testing remains one of the most expensive activities performed during a software system's lifetime. Because regression testing is important and expensive, many researchers have focused on ways to make it more efficient and effective. Research on regression testing spans a wide variety of topics, including test environments and automation, capture-playback mechanisms, regression-test selection, coverage identification, test suite maintenance, regression testability, and regression-testing process. This paper discusses the state of the art in several important aspects of regression testing, and presents some promising areas for future research. 1 Introduction Software maintenance can account for as much as two-thirds of the cost of sof...
Experience With Regression Test Selection
- Empirical Software Engineering Journal
, 1997
"... Introduction Regression testing is a maintenance process that attempts to validate modified software, and ensure that no new errors are introduced into previously tested code. Regression testing is expensive; it can account for as much as one-half of the cost of software maintenance [19]. One appro ..."
Abstract
-
Cited by 7 (2 self)
- Add to MetaCart
Introduction Regression testing is a maintenance process that attempts to validate modified software, and ensure that no new errors are introduced into previously tested code. Regression testing is expensive; it can account for as much as one-half of the cost of software maintenance [19]. One approach to regression testing is selective retest, which addresses two problems: (1) the problem of selecting tests from an existing test suite, and (2) the problem of determining where additional tests may be required. We have developed a new selective retest technique that addresses the first problem [26]. Our algorithms construct control flow graphs for a procedure or program and its modified version, and use these graphs to select tests from the original test suite that execute changed code. To investigate the application of our technique in practice, we implemented one of our algorithms as a tool called DejaVu. We conducted empirical studies with

