Better predicate testing

Mutation testing is widely recognized as being extremely powerful, but is considered difficult to automate enough for practical use. This paper theoretically addresses two possible reasons for this: the generation of redundant mutants and the lack of integration of mutation analysis with other test criteria. By addressing these two issues, this paper brings an important mutation operator, relational-operator-replacement (ROR), closer to practical use. First, we develop fault hierarchies for the six relational operators, each of which generates seven mutants per clause. These hierarchies show that, for any given clause, only three mutants are necessary. This theoretical result can be integrated easily into mutation analysis tools, thereby eliminating generation of 57% of the ROR mutants. Second, we show how to bring the power of the ROR operator to the widely used Multiple Condition-Decision Coverage (MCDC) test criterion. This theoretical result includes an algorithm to transform any MCDC-adequate test set into a test set that also satisfies RORG, a new version of ROR appropriate for the MCDC context. The transformation does not use traditional mutation analysis, so can easily be integrated into existing MCDC tools and processes.

[1]  Tsong Yueh Chen,et al.  MUMCUT: a fault-based strategy for testing Boolean specifications , 1999, Proceedings Sixth Asia Pacific Software Engineering Conference (ASPEC'99) (Cat. No.PR00509).

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

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

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

[5]  MaYu-Seung,et al.  MuJava: an automated class mutation system , 2005 .

[6]  John A. Clark,et al.  Investigating the effectiveness of object-oriented strategies with the mutation method (abstract only) , 2001 .

[7]  Márcio Eduardo Delamaro,et al.  Proteum - A Tool for the Assessment of Test Adequacy for C Programs User's guide , 1996 .

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

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

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

[11]  Hoyt Lougee,et al.  SOFTWARE CONSIDERATIONS IN AIRBORNE SYSTEMS AND EQUIPMENT CERTIFICATION , 2001 .

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

[13]  Luciano Baresi,et al.  An Introduction to Software Testing , 2006, FoVMT.

[14]  John A. Clark,et al.  Investigating the effectiveness of object‐oriented testing strategies using the mutation method , 2001 .

[15]  Jeanne Marie Hanks Testing COBOL Programs by Mutation. Volume I. Introduction to the CMS.1 System. , 1980 .

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

[17]  Paul Ammann,et al.  Reducing logic test set size while preserving fault detection , 2011, Softw. Test. Verification Reliab..

[18]  A. Jefferson Offutt,et al.  Coverage criteria for logical expressions , 2003, 14th International Symposium on Software Reliability Engineering, 2003. ISSRE 2003..

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

[20]  A. Jefferson Offutt,et al.  Mutation Operators for Ada , 1996 .

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

[22]  Paul Ammann,et al.  Applications of Optimization to Logic Testing , 2010, 2010 Third International Conference on Software Testing, Verification, and Validation Workshops.

[23]  Angelo Gargantini,et al.  Generating Minimal Fault Detecting Test Suites for Boolean Expressions , 2010, 2010 Third International Conference on Software Testing, Verification, and Validation Workshops.

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

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

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

[27]  A. Jefferson Offutt,et al.  An Experimental Comparison of Four Unit Test Criteria: Mutation, Edge-Pair, All-Uses and Prime Path Coverage , 2009, 2009 International Conference on Software Testing, Verification, and Validation Workshops.