A logic mutation approach to selective mutation for programs and queries

Context Program mutation testing is a technique for measuring and generating high quality test data. However, traditional mutation operators are not necessarily efficient or effective. We address three specific issues. One, test data that kills all mutants generated by current mutation tools can still miss detection of some common logic faults because such tools lack appropriate logic mutation operators. Two, the number of mutants generated is often unnecessarily large. Three, many equivalent mutants can be generated and these can be difficult to eliminate. Objective This paper explores the idea of addressing these issues by selectively generating only specially engineered subsuming higher order logic mutants. However, such an approach is only useful if a test set that kills all such mutants also kills a high percentage of general mutants. Method An empirical study was conducted using a tool that generates only subsuming higher order logic mutants and tools that generate general mutants. Both Java code and SQL were used as the source under test. Results and conclusions For both the software and queries, tests killing all the subsuming higher order mutants killed a high percentage of general mutants while reducing both the number of mutants and the number of equivalent mutants. The conclusion is that, for the test subjects studied, subsuming higher order logic mutation is an effective approach to selective mutation for programs and queries.

[1]  Paul Ammann,et al.  Using Logic Criterion Feasibility to Reduce Test Set Size While Guaranteeing Fault Detection , 2009, 2009 International Conference on Software Testing Verification and Validation.

[2]  Javier Tuya,et al.  Using an SQL coverage measurement for testing database applications , 2004, SIGSOFT '04/FSE-12.

[3]  D. Richard Kuhn Fault classes and error detection capability of specification-based testing , 1999, TSEM.

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

[5]  Mary Lou Soffa,et al.  A family of test adequacy criteria for database-driven applications , 2003, ESEC/FSE-11.

[6]  Paul Ammann,et al.  Reconciling perspectives of software logic testing , 2008 .

[7]  Ying Liu,et al.  On Detection Conditions of Double FaultsRelated to Terms in Boolean Expressions , 2006, 30th Annual International Computer Software and Applications Conference (COMPSAC'06).

[8]  Gregg Rothermel,et al.  An experimental determination of sufficient mutant operators , 1996, TSEM.

[9]  Baowen Xu,et al.  A detectability analysis of fault classes for Boolean specifications , 2008, SAC '08.

[10]  A. Jefferson Offutt,et al.  The dynamic domain reduction procedure for test data generation , 1999, Softw. Pract. Exp..

[11]  Joan Sullivan SQL Test Suite Goes Online , 1997, Computer.

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

[13]  A. Jefferson Offutt,et al.  An Empirical Evaluation of Weak Mutation , 1994, IEEE Trans. Software Eng..

[14]  A. Jefferson Offutt,et al.  A semantic model of program faults , 1996, ISSTA '96.

[15]  Shaoying Liu,et al.  Generating test data from state‐based specifications , 2003, Softw. Test. Verification Reliab..

[16]  Man Fai Lau,et al.  Comparing several coverage criteria for detecting faults in logical decisions , 2004 .

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

[18]  A. Jefferson Offutt,et al.  Investigations of the software testing coupling effect , 1992, TSEM.

[19]  A. Jefferson Offutt,et al.  Introduction to Software Testing , 2008 .

[20]  Paul Ammann,et al.  Using Logic Criterion Feasibility to Reduce Test Set Size While Guaranteeing Double Fault Detection , 2009, 2009 International Conference on Software Testing, Verification, and Validation Workshops.

[21]  Shing-Chi Cheung,et al.  Testing Database Applications with SQL Semantics , 1999, CODAS.

[22]  Rupak Majumdar,et al.  Dynamic test input generation for database applications , 2007, ISSTA '07.

[23]  Mario Piattini,et al.  Decreasing the cost of mutation testing with second-order mutants , 2009 .

[24]  Y. Liu,et al.  Detecting Double Faults on Term and Literal in Boolean Expressions , 2007 .

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

[26]  Man F. Lau,et al.  An extended fault class hierarchy for specification-based testing , 2005, TSEM.

[27]  Mark Harman,et al.  Constructing Subtle Faults Using Higher Order Mutation Testing , 2008, 2008 Eighth IEEE International Working Conference on Source Code Analysis and Manipulation.

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

[29]  Steven P. Miller,et al.  Applicability of modified condition/decision coverage to software testing , 1994, Softw. Eng. J..

[30]  Alessandro Orso,et al.  Command-Form Coverage for Testing Database Applications , 2006, 21st IEEE/ACM International Conference on Automated Software Engineering (ASE'06).

[31]  Javier Tuya,et al.  Full predicate coverage for testing SQL database queries , 2010 .

[32]  John Joseph Chilenski,et al.  An Investigation of Three Forms of the Modified Condition Decision Coverage (MCDC) Criterion , 2001 .

[33]  Richard Lai,et al.  Analyzing and Extending MUMCUT for Fault-based Testing of General Boolean Expressions , 2006, The Sixth IEEE International Conference on Computer and Information Technology (CIT'06).

[34]  Suzanne M. Embury,et al.  An intensional approach to the specification of test cases for database applications , 2006, ICSE '06.

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

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

[37]  Richard G. Hamlet,et al.  Testing Programs with the Aid of a Compiler , 1977, IEEE Transactions on Software Engineering.

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

[39]  A. Jefferson Offutt,et al.  Automatically detecting equivalent mutants and infeasible paths , 1997 .

[40]  A. Jefferson Offutt,et al.  MuJava: an automated class mutation system , 2005, Softw. Test. Verification Reliab..

[41]  Paul Ammann,et al.  Using a Fault Hierarchy to Improve the Efficiency of DNF Logic Mutation Testing , 2009, 2009 International Conference on Software Testing Verification and Validation.

[42]  M.J. Suarez-Cabal,et al.  SQLMutation: A tool to generate mutants of SQL database queries , 2006, Second Workshop on Mutation Analysis (Mutation 2006 - ISSRE Workshops 2006).

[43]  A. Jefferson Offutt,et al.  The Dynamic Domain Reduction Procedure for Test Data Generation: Design and Algorithms , 1994 .

[44]  William E. Howden,et al.  Weak Mutation Testing and Completeness of Test Sets , 1982, IEEE Transactions on Software Engineering.