A safe regression test selection technique for database-driven applications
- 1 January 2005
- conference paper
- Published by Institute of Electrical and Electronics Engineers (IEEE)
- p. 421-430
- https://doi.org/10.1109/icsm.2005.15
Abstract
Regression testing is a widely-used method for checking whether modifications to software systems have adversely affected the overall functionality. This is potentially an expensive process, since test suites can be large and time-consuming to execute. The overall costs can be reduced if tests that cannot possibly be affected by the modifications are ignored. Various techniques for selecting subsets of tests for re-execution have been proposed, as well as methods for proving that particular test selection criteria do not omit relevant tests. However, current selection techniques are focused on identifying the impact of modifications on program state. They assume that the only factor that can change the result of a test case is the set of input values given for it, while all other influences on the behavior of the program (such as external interrupts or hardware faults) will be constant for each re-execution of the test. This assumption is impractical in the case of an important class of software system, i.e. systems which make use of an external persistent state, such as a database management system, to share information between application invocations. If applied naively to such systems, existing regression test selection algorithms will omit certain test cases which could in fact be affected by the modifications to the code. In this paper, we show why this is the case, and propose a new definition of safety for regression test selection that takes into account the interactions of the program with a database state. We also present an algorithm and associated tool that safely performs test selection for database-driven applications, and (since efficiency is an important concern for test selection algorithms) we propose a variant that defines safety in terms of database state alone. This latter form of safety allows more efficient regression testing to be performed for applications in which program state is used only as a temporary holding space for data from the database. The claims of increased efficiency of both forms of safety are supported by the results of an empirical comparison with existing techniques.Keywords
This publication has 13 references indexed in Scilit:
- Program slicing in the presence of database statePublished by Institute of Electrical and Electronics Engineers (IEEE) ,2004
- Regression Test Selection for Database ApplicationsPublished by IGI Global ,2004
- Prioritizing test cases for regression testingIEEE Transactions on Software Engineering, 2001
- Regression test selection for Java softwarePublished by Association for Computing Machinery (ACM) ,2001
- Regression testing of database applicationsPublished by Association for Computing Machinery (ACM) ,2001
- A framework for testing database applicationsPublished by Association for Computing Machinery (ACM) ,2000
- A safe, efficient regression test selection techniqueACM Transactions on Software Engineering and Methodology, 1997
- Semantics guided regression test cost reductionIEEE Transactions on Software Engineering, 1997
- Analyzing regression test selection techniquesIEEE Transactions on Software Engineering, 1996
- Incremental program testing using program dependence graphsPublished by Association for Computing Machinery (ACM) ,1993