Do Redundant Mutants Affect the Effectiveness and Efficiency of Mutation Analysis?
Authors:
- Rene JustRJRene Just
- Gregory M. KapfhammerGKGregory M. Kapfhammer
- Franz SchweiggertFSFranz Schweiggert
- 1 April 2012
- conference paper
- Published by Institute of Electrical and Electronics Engineers (IEEE)
- No. 21594848,p. 720-725
Abstract
Mutation analysis is an unbiased and powerful method for assessing input values and test oracles. However, in comparison to other techniques, such as those that rely on code coverage, it is a computationally-expensive and time-consuming method, especially for large software systems. This high cost is due, in part, to the fact that many mutation operators generate redundant mutants that may both misrepresent the mutation score and increase the runtime of the mutation analysis process. After showing how the conditional operator replacement(COR) mutation operator can be defined in a redundant-free manner, this paper uses four real-world programs, ranging in size from 3,000 to nearly 40,000 lines of code, to show the prevalence of redundant mutants. Focusing on the conditional operator replacement (COR)and relational operator replacement (ROR) mutation operators that create 41% of all mutants in the chosen programs, the case study reveals that the removal of redundant mutants reduces the runtime of mutation analysis by up to 34%. Additional empirical results show that redundant mutants can lead to a mutation score that is misleadingly overestimated by as much as 10%. Overall, this paper convincingly demonstrates that it is possible to improve the effectiveness and efficiency of a mutation analysis system by identifying and removing redundant mutants.Keywords
This publication has 14 references indexed in Scilit:
- MAJOR: An efficient and extensible tool for mutation analysis in a Java compiler2011
- Using conditional mutation to increase the efficiency of mutation analysis2011
- Sufficient mutation operators for measuring test effectiveness2008
- MuJava2006
- Using program slicing to assist in the detection of equivalent mutantsSoftware Testing, Verification and Reliability, 1999
- An experimental determination of sufficient mutant operatorsACM Transactions on Software Engineering and Methodology, 1996
- Theory of fault-based predicate testing for computer programsIEEE Transactions on Software Engineering, 1996
- Using compiler optimization techniques to detect equivalent mutantsSoftware Testing, Verification and Reliability, 1994
- Investigations of the software testing coupling effectACM Transactions on Software Engineering and Methodology, 1992
- Hints on Test Data Selection: Help for the Practicing ProgrammerComputer, 1978