On the limit of control flow analysis for regression test selection
- 1 March 1998
- proceedings article
- Published by Association for Computing Machinery (ACM)
- Vol. 23 (2) , 134-142
- https://doi.org/10.1145/271771.271802
Abstract
Automated analyses for regression test selection (RTS) attempt to determine if a modified program, when run on a test t, will have the same behavior as an old version of the program run on t, but without running the new program on t. RTS analyses must confront a price/performance tradeoff: a more precise analysis might be able to eliminate more tests, but could take much longer to run.We focus on the application of control flow analysis and control flow coverage, relatively inexpensive analyses, to the RTS problem, considering how the precision of RTS algorithms can be affected by the type of coverage information collected. We define a strong optimality condition (edge-optimality) for RTS algorithms based on edge coverage that precisely captures when such an algorithm will report that re-testing is needed, when, in actuality, it is not. We reformulate Rothermel and Harrold's RTS algorithm and present three new algorithms that improve on it, culminating in an edge-optimal algorithm. Finally, we consider how path coverage can be used to improve the precision of RTS algorithms.Keywords
This publication has 7 references indexed in Scilit:
- Exploiting hardware performance counters with flow and context sensitive profilingACM SIGPLAN Notices, 1997
- A safe, efficient regression test selection techniqueACM Transactions on Software Engineering and Methodology, 1997
- Process modelling and empirical studies of software evolution (workshop)Published by Association for Computing Machinery (ACM) ,1997
- Analyzing regression test selection techniquesIEEE Transactions on Software Engineering, 1996
- Optimally profiling and tracing programsACM Transactions on Programming Languages and Systems, 1994
- Incremental program testing using program dependence graphsPublished by Association for Computing Machinery (ACM) ,1993
- A fast algorithm for finding dominators in a flowgraphACM Transactions on Programming Languages and Systems, 1979