Title: 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.
Authors: Ramzi A. Haraty and Wissam Chehab