Results 1 - 10
of
11
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...
Empirical Studies of a Safe Regression Test Selection Technique
- IEEE TRANS. SOFTWARE ENG
, 1998
"... Regression testing is an expensive testing procedure utilized to validate modified software. Regression test selection techniques attempt to reduce the cost of regression testing by selecting a subset of a program’s existing test suite. Safe regression test selection techniques select subsets that, ..."
Abstract
-
Cited by 92 (18 self)
- Add to MetaCart
Regression testing is an expensive testing procedure utilized to validate modified software. Regression test selection techniques attempt to reduce the cost of regression testing by selecting a subset of a program’s existing test suite. Safe regression test selection techniques select subsets that, under certain well-defined conditions, exclude no tests (from the original test suite) that if executed would reveal faults in the modified software. Many regression test selection techniques, including several safe techniques, have been proposed, but few have been subjected to empirical validation. This paper reports empirical studies on a particular safe regression test selection technique, in which the technique is compared to the alternative regression testing strategy of running all tests. The results indicate that safe regression test selection can be cost-effective, but that its costs and benefits vary widely based on a number of factors. In particular, test suite design can significantly affect the effectiveness of test selection, and coverage-based test suites may provide test selection results superior to those provided by test suites that are not coverage-based.
A Study of Effective Regression Testing in Practice
- In Proceedings of the Eighth International Symposium on Software Reliability Engineering
, 1997
"... The purpose of regression testing is to ensure that changes made to software, such as adding new features or modifying existing features, have not adversely affected features of the software that should not change. Regression testing is usually performed by running some, or all, of the test cases cr ..."
Abstract
-
Cited by 58 (0 self)
- Add to MetaCart
The purpose of regression testing is to ensure that changes made to software, such as adding new features or modifying existing features, have not adversely affected features of the software that should not change. Regression testing is usually performed by running some, or all, of the test cases created to test modifications in previous versions of the software. Many techniques have been reported on how to select regression tests so that the number of test cases does not grow too large as the software evolves. Our proposed hybrid technique combines modification, minimization and prioritization-based selection using a list of source code changes and the execution traces from test cases run on previous versions. This technique seeks to identify a representative subset of all test cases that may result in different output behavior on the new software version. We report our experience with a tool called ATAC which implements this technique. Keywords: Regression Testing, Modification-Based Test Selection, Test Set Minimization, Test Set Prioritization 1
Pythia: A regression test selection tool based on textual differencing
, 1997
"... Regression testing is a commonly used activity whose purpose is to determine whether the modifications made to a software system have introduced new faults. For many large, complex, software systems the retest all strategy is not practical: the resources required to reexecute and verify all availabl ..."
Abstract
-
Cited by 32 (0 self)
- Add to MetaCart
Regression testing is a commonly used activity whose purpose is to determine whether the modifications made to a software system have introduced new faults. For many large, complex, software systems the retest all strategy is not practical: the resources required to reexecute and verify all available test cases (i.e., time and human effort) are prohibitive. Ad hoc methods are not desirable, as they can compromise the reliability of the regression test activity and consequently the reliability of the software system being tested. In this paper we present a new technique for selecting regression test cases based on the modifications that have been made on the program. The technique, which is based on the idea of directly comparing source files from the old and the new version of the program, has been implemented in a tool called Pythia. A novel characteristic of Pythia, which is capable of analyzing large software systems written in C, is that it has been implemented primarily through th...
A Comparative Study of Coarse- and Fine-Grained Safe Regression Test Selection Techniques
- ACM Transactions on Software Engineering and Methodology
, 2001
"... Regression test selection techniques reduce the cost of regression testing by selecting a subset of an existing test suite to use in retesting a modified program. Over the past two decades, numerous regression test selection techniques have been described in the literature. Initial empirical studi ..."
Abstract
-
Cited by 15 (5 self)
- Add to MetaCart
Regression test selection techniques reduce the cost of regression testing by selecting a subset of an existing test suite to use in retesting a modified program. Over the past two decades, numerous regression test selection techniques have been described in the literature. Initial empirical studies of some of these techniques have suggested that they can indeed benefit testers, but so far, few studies have empirically compared different techniques. In this paper, we present the results of a comparative empirical study of two safe regression test selection techniques. The techniques we studied have been implemented as the tools DejaVu and TestTube; we compared these tools in terms of a cost model incorporating precision (ability to eliminate unnecessary test cases), analysis cost and test execution cost. Our results indicate that in many instances, despite its relative lack of precision, TestTube can reduce the time required for regression testing as much as the more precise D...
Constructing Precise Object Relation Diagrams
- In International Conference on Software Maintenance
, 2002
"... The Object Relation Diagram (ORD) of a program is a class interdependence diagram which has applications in a wide variety of software engineering problems (e.g., integration testing, integration coverage analysis, regression testing, impact analysis, program understanding, and reverse engineering). ..."
Abstract
-
Cited by 8 (0 self)
- Add to MetaCart
The Object Relation Diagram (ORD) of a program is a class interdependence diagram which has applications in a wide variety of software engineering problems (e.g., integration testing, integration coverage analysis, regression testing, impact analysis, program understanding, and reverse engineering). Because the imprecision of the ORD directly affects the practicality of its usage, it is important to investigate techniques for constructing precise ORDs.
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
A Unifying Framework Supporting the Analysis and Development of Safe Regression Test Selection Techniques
, 2000
"... Safe regression test selection (RTS) techniques let software testers reduce the number of test cases that need to be rerun to revalidate new versions of software, while ensuring that no fault-revealing test case (in the existing test suite) is excluded. Most previous work on safe regression test s ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
Safe regression test selection (RTS) techniques let software testers reduce the number of test cases that need to be rerun to revalidate new versions of software, while ensuring that no fault-revealing test case (in the existing test suite) is excluded. Most previous work on safe regression test selection has focused on specific safe RTS algorithms, rather than addressing the theoretical foundations of safe RTS techniques in general. In this paper, we present a unifying framework for safe RTS that supports the analysis and development of safe RTS techniques. We show that every safe RTS technique is founded on a regression bias, and we show how one can prove an RTS technique safe for a set of programs and testing processes by eliciting the bias from the technique and then proving that the bias holds or does not hold for that set of programs and processes. We provide two general models for safe RTS techniques that can be used as templates in proofs of safety. The first model act...
Date REUSABLE STATEGIES FOR TESTING SAFETY-CRITICAL SYSTEMS
, 1999
"... is to certify that I have examined this copy of a doctoral thesis by ..."

