A safe, efficient regression test selection technique
- 1 April 1997
- journal article
- Published by Association for Computing Machinery (ACM) in ACM Transactions on Software Engineering and Methodology
- Vol. 6 (2), 173-210
- https://doi.org/10.1145/248233.248262
Abstract
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 softwore. A regression test selection technique choses, from an existing test set, thests 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 precedure 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 con expose faults in the modified procedfdure or program. Under these conditions our algorithms are safe . Moreover, although our algorithms may select some tests that cannot expose faults, they are at lease 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.Keywords
This publication has 27 references indexed in Scilit:
- Using semantic differencing to reduce the cost of regression testingPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2003
- Analyzing regression test selection techniquesIEEE Transactions on Software Engineering, 1996
- Meeting the challenge of software maintenanceIEEE Software, 1996
- A methodology for controlling the size of a test suiteACM Transactions on Software Engineering and Methodology, 1993
- Insights into testing and regression testing global variablesJournal of Software Maintenance: Research and Practice, 1990
- A methodology for test selectionJournal of Systems and Software, 1990
- Software maintenance management: Changes in the last decadeJournal of Software Maintenance: Research and Practice, 1990
- Assay-a tool to support regression testingLecture Notes in Computer Science, 1989
- The category-partition method for specifying and generating fuctional testsCommunications of the ACM, 1988
- Characteristics of application software maintenanceCommunications of the ACM, 1978