Control Oriented Mutation Testing for Detection of Potential Software Bugs
2012 10th International Conference on Frontiers of Information Technology
An effective test case suite is one that has the potential to reveal real faults in the code. Mutation testing is a fault-based technique that helps measure the strength of test case set and to generate effective test cases. Faults are injected through predefined mutation operators and mutation score is a mean to calculate usefulness of test case set. Mutation testing approach suffers from two of its inherent issues; it is computationally expensive, second generation of equivalent mutants.
... with original program, every mutant has to be executed against all the test cases. An equivalent mutant always produces same output on original and mutant program for every possible test case. Program's behavior comprises of two kinds of information; control flow and data flow. Mutation testing techniques that have been proposed so far consider only data flow information and they ignore the importance of flow of control within the program. In this paper we propose a new approach that encourages using control flow information along with data flow information in mutation testing for detection of bugs. Bugs can hide themselves within equivalent mutants and in these scenarios control flow information can be quite useful to uncover them. Experiments show that using control flow information can help revealing potential bugs in the program.