STICCER: Fast and Effective Database Test Suite Reduction Through Merging of Similar Test Cases

Since relational databases support many software applications, industry professionals recommend testing both database queries and the underlying database schema that contains complex integrity constraints. These constraints, which include primary and foreign keys, NOT NULL, and arbitrary CHECK constraints, are important because they protect the consistency and coherency of data in the relational database. Since testing integrity constraints is potentially an arduous task, human testers can use new tools to automatically generate test suites that effectively find schema faults. However, these tool-generated test suites often contain many lengthy tests that may both increase the time overhead of regression testing and limit the ability of human testers to understand them. Aiming to reduce the size of automatically generated test suites for database schemas, this paper introduces STICCER, a technique that finds overlaps between test cases, merging database interactions from similar tests and removing others. By systematically discarding and merging redundant tests, STICCER creates a reduced test suite that is guaranteed to have the same coverage as the original one. Using thirty-four relational database schemas, we experimentally compared STICCER to two greedy test suite reduction techniques and a random method. The results show that, compared to the greedy and random methods, STICCER is the most effective at reducing the number of test cases and database interactions while maintaining test effectiveness as measured by the mutation score.

[1]  Phil McMinn,et al.  Virtual Mutation Analysis of Relational Database Schemas , 2016, 2016 IEEE/ACM 11th International Workshop in Automation of Software Test (AST).

[2]  Phil McMinn,et al.  AVMf: An Open-Source Framework and Implementation of the Alternating Variable Method , 2016, SSBSE.

[3]  Phil McMinn,et al.  The Impact of Equivalent, Redundant and Quasi Mutants on Database Schema Mutation Analysis , 2014, 2014 14th International Conference on Quality Software.

[4]  Gregory M. Kapfhammer,et al.  Test suite reduction methods that decrease regression testing costs by identifying irreplaceable tests , 2014, Inf. Softw. Technol..

[5]  D. J. Robson Regression testing , 1993 .

[6]  Gregory M. Kapfhammer Regression Testing , 2010, Encyclopedia of Software Engineering.

[7]  Phil McMinn,et al.  SchemaAnalyst: Search-Based Test Data Generation for Relational Database Schemas , 2016, 2016 IEEE International Conference on Software Maintenance and Evolution (ICSME).

[8]  Dirk Sudholt,et al.  A theoretical runtime and empirical analysis of different alternating variable searches for search-based testing , 2013, GECCO '13.

[9]  A. Vargha,et al.  A Critique and Improvement of the CL Common Language Effect Size Statistics of McGraw and Wong , 2000 .

[10]  Neelam Gupta,et al.  Improving Fault Detection Capability by Selectively Retaining Test Cases during Test Suite Reduction , 2007, IEEE Transactions on Software Engineering.

[11]  Phil McMinn,et al.  Automatic Detection and Removal of Ineffective Mutants for the Mutation Analysis of Relational Database Schemas , 2019, IEEE Transactions on Software Engineering.

[12]  Javier Tuya,et al.  Coverage-Aware Test Database Reduction , 2016, IEEE Transactions on Software Engineering.

[13]  Phil McMinn,et al.  Efficient Mutation Analysis of Relational Database Structure Using Mutant Schemata and Parallelisation , 2013, 2013 IEEE Sixth International Conference on Software Testing, Verification and Validation Workshops.

[14]  Khaled El-Fakih,et al.  Simulated Annealing and Genetic Algorithms for Optimal Regression Testing , 1999, J. Softw. Maintenance Res. Pract..

[15]  Mark Harman,et al.  Using hybrid algorithm for Pareto efficient multi-objective test suite minimisation , 2010, J. Syst. Softw..

[16]  Phil McMinn,et al.  Search-Based Testing of Relational Schema Integrity Constraints Across Multiple Database Management Systems , 2013, 2013 IEEE Sixth International Conference on Software Testing, Verification and Validation.

[17]  Joseph Robert Horgan,et al.  Effect of Test Set Minimization on Fault Detection Effectiveness , 1995, 1995 17th International Conference on Software Engineering.

[18]  Gregory M. Kapfhammer,et al.  Empirically evaluating Greedy-based test suite reduction methods at different levels of test suite complexity , 2017, Sci. Comput. Program..

[19]  Neelam Gupta,et al.  A concept analysis inspired greedy algorithm for test suite minimization , 2005, PASTE '05.

[20]  Phil McMinn,et al.  The Effectiveness of Test Coverage Criteria for Relational Database Schema Integrity Constraints , 2015, ACM Trans. Softw. Eng. Methodol..

[21]  Gregg Rothermel,et al.  Empirical studies of test‐suite reduction , 2002, Softw. Test. Verification Reliab..

[22]  George Mason,et al.  Procedures for Reducing the Size of Coverage-based Test Sets , 1995 .

[23]  Scott J. Ambler,et al.  Refactoring Databases: Evolutionary Database Design , 2006 .

[24]  Rajiv Gupta,et al.  A methodology for controlling the size of a test suite , 1990, Proceedings. Conference on Software Maintenance 1990.

[25]  Hong Mei,et al.  An experimental comparison of four test suite reduction techniques , 2006, ICSE.

[26]  Tsong Yueh Chen,et al.  A new heuristic for test suite reduction , 1998, Inf. Softw. Technol..

[27]  Carlo Curino,et al.  Schema Evolution in Wikipedia - Toward a Web Information System Benchmark , 2008, ICEIS.

[28]  Vasek Chvátal,et al.  A Greedy Heuristic for the Set-Covering Problem , 1979, Math. Oper. Res..

[29]  Gregory M. Kapfhammer Towards a Method for Reducing the Test Suites of Database Applications , 2012, 2012 IEEE Fifth International Conference on Software Testing, Verification and Validation.

[30]  Bogdan Korel,et al.  Automated Software Test Data Generation , 1990, IEEE Trans. Software Eng..

[31]  Gregg Rothermel,et al.  An empirical study of the effects of minimization on the fault detection capabilities of test suites , 1998, Proceedings. International Conference on Software Maintenance (Cat. No. 98CB36272).

[32]  Darko Marinov,et al.  Reliable testing: detecting state-polluting tests to prevent test dependency , 2015, ISSTA.

[33]  Phil McMinn,et al.  DOMINO: Fast and Effective Test Data Generation for Relational Database Schemas , 2018, 2018 IEEE 11th International Conference on Software Testing, Verification and Validation (ICST).

[34]  Donald Kossmann,et al.  A framework for efficient regression tests on database applications , 2007, The VLDB Journal.

[35]  Ali Mesbah,et al.  Fine-Grained Test Minimization , 2018, 2018 IEEE/ACM 40th International Conference on Software Engineering (ICSE).

[36]  Javier Tuya,et al.  Query-aware shrinking test databases , 2009, DBTest '09.

[37]  Emanuel Melachrinoudis,et al.  Bi-criteria models for all-uses test suite reduction , 2004, Proceedings. 26th International Conference on Software Engineering.

[38]  Dong Qiu,et al.  An empirical analysis of the co-evolution of schema and code in database applications , 2013, ESEC/FSE 2013.

[39]  Joseph Robert Horgan,et al.  Test set size minimization and fault detection effectiveness: A case study in a space application , 1999, J. Syst. Softw..

[40]  John A. Clark,et al.  An automated framework for structural test-data generation , 1998, Proceedings 13th IEEE International Conference on Automated Software Engineering (Cat. No.98EX239).

[41]  Mark Harman,et al.  Regression testing minimization, selection and prioritization: a survey , 2012, Softw. Test. Verification Reliab..

[42]  Lionel C. Briand,et al.  A Hitchhiker's guide to statistical tests for assessing randomized algorithms in software engineering , 2014, Softw. Test. Verification Reliab..

[43]  Tsong Yueh Chen,et al.  Dividing Strategies for the Optimization of a Test Suite , 1996, Inf. Process. Lett..