Object oriented mutation testing: A survey

Mutation testing is a fault based testing technique that measures the effectiveness of test case suite and helps to generate test cases that have potential of identifying real faults in the program. Faults are injected using a pre-defined set of mutation operators. Object oriented paradigm is known for its salient features that make it different from traditional programming paradigms. We find traditional mutation operators insufficient and incapable of introducing faults in object oriented features like encapsulation, inheritance and polymorphism. This paper presents a survey on object oriented mutation testing to find out the issues mutation testing is currently facing and solutions that have been proposed to cater those issues. We have studied various techniques proposed till now and tools that are developed for the aid of testers to perform mutation testing. We analyze these techniques considering the issues in object oriented mutation testing against the solutions they have offered. Our survey concludes that selective mutation testing can reduce the computational cost and experiments on large scale can help identifying potential mutation operators to avoid generation of equivalent mutants.

[1]  A. Jefferson Offutt,et al.  Inter-class mutation operators for Java , 2002, 13th International Symposium on Software Reliability Engineering, 2002. Proceedings..

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

[3]  John A. Clark,et al.  The Rigorous Generation of Java Mutation Operators Using HAZOP , 1999 .

[4]  A. Jefferson Offutt,et al.  The class-level mutants of MuJava , 2006, AST '06.

[5]  A. Jefferson Offutt,et al.  Integration testing of object‐oriented components using finite state machines , 2006, Softw. Test. Verification Reliab..

[6]  John A. Clark,et al.  Class Mutation : Mutation Testing for Object-Oriented Programs , 2000 .

[7]  Philippe Chevalley,et al.  Applying mutation analysis for object-oriented programs using a reflective approach , 2001, Proceedings Eighth Asia-Pacific Software Engineering Conference.

[8]  Jeff Offutt,et al.  Integration testing of object-oriented components using finite state machines: Research Articles , 2006 .

[9]  Yong Rae Kwon,et al.  Evaluation of mutation testing for object-oriented programs , 2006, ICSE.

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

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

[12]  J. Dingel,et al.  ExMAn: A Generic and Customizable Framework for Experimental Mutation Analysis , 2006, Second Workshop on Mutation Analysis (Mutation 2006 - ISSRE Workshops 2006).

[13]  John A. Clark,et al.  Assessing Test Set Adequacy for Object-Oriented Programs Using Class Mutation , 2000 .

[14]  Trevor A. Kletz,et al.  Hazop & Hazan: Identifying and Assessing Process Industry Hazards, Fouth Edition , 1999 .

[15]  H. C. Wilson,et al.  Hazop and Hazan: Identifying and Assessing Process Industry Hazards, 4th edition , 2001 .

[16]  Yong Rae Kwon,et al.  MuJava: an automated class mutation system: Research Articles , 2005 .

[17]  Auri Marcelo Rizzo Vincenzi,et al.  Toward the determination of sufficient mutant operators for C † , 2001, Softw. Test. Verification Reliab..

[18]  Pascale Thévenod-Fosse,et al.  A mutation analysis tool for Java programs , 2003, International Journal on Software Tools for Technology Transfer.

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

[20]  James M. Bieman,et al.  Mutation of Java objects , 2002, 13th International Symposium on Software Reliability Engineering, 2002. Proceedings..

[21]  A. Jefferson Offutt,et al.  An experimental mutation system for Java , 2004, SOEN.