A framework for efficient regression tests on database applications

Regression testing is an important software maintenance activity to ensure the integrity of a software after modification. However, most methods and tools developed for software testing today do not work well for database applications; these tools only work well if applications are stateless or tests can be designed in such a way that they do not alter the state. To execute tests for database applications efficiently, the challenge is to control the state of the database during testing and to order the test runs such that expensive database reset operations that bring the database into the right state need to be executed as seldom as possible. This work devises a regression testing framework for database applications so that test runs can be executed in parallel. The goal is to achieve linear speed-up and/or exploit the available resources as well as possible. This problem is challenging because parallel testing needs to consider both load balancing and controlling the state of the database. Experimental results show that test run execution can achieve linear speed-up by using the proposed framework.

[1]  Guido Moerkotte,et al.  Generating consistent test data: Restricting the search space by a generator formula , 1993, VLDB 1993.

[2]  G FranklPhyllis,et al.  An AGENDA for testing relational database applications , 2004 .

[3]  David J. DeWitt,et al.  Parallel database systems: the future of high performance database systems , 1992, CACM.

[4]  Joseph Robert Horgan,et al.  A study of effective regression testing in practice , 1997, Proceedings The Eighth International Symposium on Software Reliability Engineering.

[5]  Kenneth Baclawski,et al.  Quickly generating billion-record synthetic databases , 1994, SIGMOD '94.

[6]  Elaine J. Weyuker,et al.  An AGENDA for testing relational database applications , 2004, Softw. Test. Verification Reliab..

[7]  Joseph Robert Horgan,et al.  Incremental regression testing , 1993, 1993 Conference on Software Maintenance.

[8]  Marc H. Scholl,et al.  Transactional information systems: theory, algorithms, and the practice of concurrency control and recovery , 2001, SGMD.

[9]  Hector Garcia-Molina,et al.  Meaningful change detection in structured data , 1997, SIGMOD '97.

[10]  David S. Rosenblum,et al.  Using Coverage Information to Predict the Cost-Effectiveness of Regression Testing Strategies , 1997, IEEE Trans. Software Eng..

[11]  Donald R. Slutz,et al.  Massive Stochastic Testing of SQL , 1998, VLDB.

[12]  Phyllis G. Frankl,et al.  A framework for testing database applications , 2000, ISSTA '00.

[13]  Feipei Lai,et al.  Efficient Exploitation of Instruction-Level Parallelism for Superscalar Processors by the Conjugate Register File Scheme , 1996, IEEE Trans. Computers.

[14]  Yi Liu,et al.  Regression Testing Experiments and Infrastructure , 1999 .

[15]  Donald Kossmann,et al.  Efficient Regression Tests for Database Applications , 2005, CIDR.

[16]  Ian Sommerville,et al.  Software engineering (5th ed.) , 1995 .

[17]  Gerhard Weikum,et al.  Performance Evaluation of an Adaptive and Robust Load Control Method for the Avoidance of Data-Contention Thrashing , 1992, VLDB.

[18]  Ramzi A. Haraty,et al.  Regression testing of database applications , 2001, SAC.

[19]  Donald Kossmann,et al.  Parallel Execution of Test Runs for Database Application Systems , 2005, VLDB.

[20]  Andreas Reuter,et al.  Transaction Processing: Concepts and Techniques , 1992 .

[21]  H SchollMarc,et al.  Transactional information systems , 2001 .