Regression Testing for Trusted Database Applications

Abstract:

Regression testing is any type of software testing, which seeks to uncover regression bugs. Regression bugs occur as a consequence of program changes. Common methods of regression testing are re-running previously run tests and checking whether previously-fixed faults have re-emerged. Regression testing must be conducted to confirm that recent program changes have not harmfully affected existing features and new tests must be created to test new features. Testers might rerun all test cases generated at earlier stages to ensure that the program behaves as expected. However, as a program evolves the regression test set grows larger, old tests are rarely discarded, and the expense of regression testing grows. Repeating all previous test cases in regression testing after each major or minor software revision or patch is often impossible due to time pressure and budget constraints. On the other hand, for software revalidation by arbitrarily omitting test cases used in regression testing is risky.

Our proposed algorithms automate an important portion of the regression-testing process, and they operate more efficiently than most other regression test selection algorithms. The algorithms are more general than most other techniques. They handle regression test selection for single procedures and for groups of interacting procedures. They also handle all language constructs and all types of program modifications for procedural languages.