Automatic Detection and Removal of Ineffective Mutants for the Mutation Analysis of Relational Database Schemas

Data is one of an organization's most valuable and strategic assets. Testing the relational database schema, which protects the integrity of this data, is of paramount importance. Mutation analysis is a means of estimating the fault-finding “strength” of a test suite. As with program mutation, however, relational database schema mutation results in many “ineffective” mutants that both degrade test suite quality estimates and make mutation analysis more time consuming. This paper presents a taxonomy of ineffective mutants for relational database schemas, summarizing the root causes of ineffectiveness with a series of key patterns evident in database schemas. On the basis of these, we introduce algorithms that automatically detect and remove ineffective mutants. In an experimental study involving the mutation analysis of 34 schemas used with three popular relational database management systems—HyperSQL, PostgreSQL, and SQLite—the results show that our algorithms can identify and discard large numbers of ineffective mutants that can account for up to 24 percent of mutants, leading to a change in mutation score for 33 out of 34 schemas. The tests for seven schemas were found to achieve 100 percent scores, indicating that they were capable of detecting and killing all non-equivalent mutants. The results also reveal that the execution cost of mutation analysis may be significantly reduced, especially with “heavyweight” DBMSs like PostgreSQL.

[1]  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.

[2]  Richard A. DeMillo,et al.  Compiler-integrated program mutation , 1991, [1991] Proceedings The Fifteenth Annual International Computer Software & Applications Conference.

[3]  Mark Harman,et al.  How to Overcome the Equivalent Mutant Problem and Achieve Tailored Selective Mutation Using Co-evolution , 2004, GECCO.

[4]  Mary Lou Soffa,et al.  Database-aware test coverage monitoring , 2008, ISEC '08.

[5]  Byoungju Choi,et al.  High-performance mutation testing , 1993, J. Syst. Softw..

[6]  Pankaj Mudholkar,et al.  Software Testing , 2002, Computer.

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

[8]  Yves Le Traon,et al.  Threats to the validity of mutation-based test assessment , 2016, ISSTA.

[9]  A. Jefferson Offutt,et al.  Using compiler optimization techniques to detect equivalent mutants , 1994, Softw. Test. Verification Reliab..

[10]  A. Jefferson Offutt,et al.  A logic mutation approach to selective mutation for programs and queries , 2011, Inf. Softw. Technol..

[11]  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.

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

[13]  K. N. King,et al.  A fortran language system for mutation‐based software testing , 1991, Softw. Pract. Exp..

[14]  Jingjing Gu,et al.  An Experimental Evaluation of Web Mutation Operators , 2016, 2016 IEEE Ninth International Conference on Software Testing, Verification and Validation Workshops (ICSTW).

[15]  A. Jefferson Offutt,et al.  Mutation operators for testing Android apps , 2017, Inf. Softw. Technol..

[16]  Dana Angluin,et al.  Two notions of correctness and their relation to testing , 1982, Acta Informatica.

[17]  Richard J. Lipton,et al.  Hints on Test Data Selection: Help for the Practicing Programmer , 1978, Computer.

[18]  A. Jefferson Offutt,et al.  Automatically detecting equivalent mutants and infeasible paths , 1997, Softw. Test. Verification Reliab..

[19]  Allen Goldberg,et al.  Applications of feasible path analysis to program testing , 1994, ISSTA '94.

[20]  Heider A. Wahsheh,et al.  Mutation operators for JADE mobile agent systems , 2012, ICICS '12.

[21]  Gregory M. Kapfhammer,et al.  Dynamic invariant detection for relational databases , 2011, WODA '11.

[22]  Mark Harman,et al.  A study of equivalent and stubborn mutation operators using human analysis of equivalence , 2014, ICSE.

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

[24]  Gilles Pokam,et al.  Selective mutation testing for concurrent code , 2013, ISSTA.

[25]  René Just,et al.  MAJOR: An efficient and extensible tool for mutation analysis in a Java compiler , 2011, 2011 26th IEEE/ACM International Conference on Automated Software Engineering (ASE 2011).

[26]  I. Comparison Faster Mutation Testing Inspired by Test Prioritization and Reduction , 2013 .

[27]  Benoit Baudry,et al.  A Generic Metamodel For Security Policies Mutation , 2008, 2008 IEEE International Conference on Software Testing Verification and Validation Workshop.

[28]  Sang-Woon Kim,et al.  Mutation testing cost reduction by clustering overlapped mutants , 2016, J. Syst. Softw..

[29]  Phil McMinn,et al.  Automatic Detection of Potential Layout Faults Following Changes to Responsive Web Pages (N) , 2015, 2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE).

[30]  Mark Harman,et al.  Using program slicing to assist in the detection of equivalent mutants , 1999, Softw. Test. Verification Reliab..

[31]  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).

[32]  Rico Wind,et al.  Simple and realistic data generation , 2006, VLDB.

[33]  Andreas Zeller,et al.  The Impact of Equivalent Mutants , 2009, 2009 International Conference on Software Testing, Verification, and Validation Workshops.

[34]  Gregg Rothermel,et al.  An experimental evaluation of selective mutation , 1993, Proceedings of 1993 15th International Conference on Software Engineering.

[35]  Diane M. Strong,et al.  Beyond Accuracy: What Data Quality Means to Data Consumers , 1996, J. Manag. Inf. Syst..

[36]  Phil McMinn,et al.  mrstudyr: Retrospectively Studying the Effectiveness of Mutant Reduction Techniques , 2016, 2016 IEEE International Conference on Software Maintenance and Evolution (ICSME).

[37]  Leonardo Bottaci Type Sensitive Application of Mutation Operators for Dynamically Typed Programs , 2010, 2010 Third International Conference on Software Testing, Verification, and Validation Workshops.

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

[39]  Roy P. Pargas,et al.  Mutation Testing of Software Using MIMD Computer , 1992, ICPP.

[40]  Phil McMinn,et al.  Hitchhikers Need Free Vehicles! Shared Repositories for Statistical Analysis in SBST , 2016, 2016 IEEE/ACM 9th International Workshop on Search-Based Software Testing (SBST).

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

[42]  Christopher Wright,et al.  Mutation analysis of relational database schemas , 2015 .

[43]  Andreas Zeller,et al.  (Un-)Covering Equivalent Mutants , 2010, 2010 Third International Conference on Software Testing, Verification and Validation.

[44]  René Just,et al.  Using conditional mutation to increase the efficiency of mutation analysis , 2011, AST '11.

[45]  Yves Le Traon,et al.  An Empirical Study on Mutation, Statement and Branch Coverage Fault Revelation That Avoids the Unreliable Clean Program Assumption , 2017, 2017 IEEE/ACM 39th International Conference on Software Engineering (ICSE).

[46]  René Just,et al.  Using Non-redundant Mutation Operators and Test Suite Prioritization to Achieve Efficient and Scalable Mutation Analysis , 2012, 2012 IEEE 23rd International Symposium on Software Reliability Engineering.

[47]  Tao Xie,et al.  A fault model and mutation testing of access control policies , 2007, WWW '07.

[48]  Shabnam Mirshokraie Effective test generation and adequacy assessment for JavaScript-based web applications , 2014, ISSTA 2014.

[49]  Michael Winikoff,et al.  Mutation operators for cognitive agent programs , 2013, AAMAS.

[50]  Daniel Sundmark,et al.  Mutating aspect-oriented models to test cross-cutting concerns , 2015, 2015 IEEE Eighth International Conference on Software Testing, Verification and Validation Workshops (ICSTW).

[51]  A. Jefferson Offutt,et al.  Mutation analysis using mutant schemata , 1993, ISSTA '93.

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

[53]  René Just,et al.  Do Redundant Mutants Affect the Effectiveness and Efficiency of Mutation Analysis? , 2012, 2012 IEEE Fifth International Conference on Software Testing, Verification and Validation.

[54]  Tao Xie,et al.  Generating program inputs for database application testing , 2011, 2011 26th IEEE/ACM International Conference on Automated Software Engineering (ASE 2011).

[55]  Leonardo Bottaci,et al.  Efficiency of mutation operators and selective mutation strategies: an empirical study , 1999, Softw. Test. Verification Reliab..

[56]  Robert M. Hierons,et al.  Mutation testing from probabilistic and stochastic finite state machines , 2009, J. Syst. Softw..

[57]  B.H. Smith,et al.  An Empirical Evaluation of the MuJava Mutation Operators , 2007, Testing: Academic and Industrial Conference Practice and Research Techniques - MUTATION (TAICPART-MUTATION 2007).

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

[59]  Ivan T. Bowman Mutatis mutandis: evaluating DBMS test adequacy with mutation testing , 2013, DBTest '13.

[60]  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.

[61]  Mark Harman,et al.  An Analysis and Survey of the Development of Mutation Testing , 2011, IEEE Transactions on Software Engineering.

[62]  Shing-Chi Cheung,et al.  Fault-based testing of database application programs with conceptual data model , 2005, Fifth International Conference on Quality Software (QSIC'05).

[63]  Yves Le Traon,et al.  Trivial Compiler Equivalence: A Large Scale Empirical Study of a Simple, Fast and Effective Equivalent Mutant Detection Technique , 2015, 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering.

[64]  Phyllis G. Frankl,et al.  JDAMA: Java database application mutation analyser , 2011, Softw. Test. Verification Reliab..

[65]  Javier Tuya,et al.  Mutating database queries , 2007, Inf. Softw. Technol..

[66]  Thierry Bertin-Mahieux,et al.  The Million Song Dataset , 2011, ISMIR.

[67]  Nicos Malevris,et al.  MEDIC: A static analysis framework for equivalent mutant identification , 2015, Inf. Softw. Technol..

[68]  A. Jefferson Offutt,et al.  Constraint-Based Automatic Test Data Generation , 1991, IEEE Trans. Software Eng..

[69]  Yue Jia,et al.  MILU: A Customizable, Runtime-Optimized Higher Order Mutation Testing Tool for the Full C Language , 2008, Testing: Academic & Industrial Conference - Practice and Research Techniques (taic part 2008).

[70]  A. Jefferson Offutt,et al.  MuJava: a mutation system for java , 2006, ICSE.