Efficient Mutating Test Cases Generation Using Mutating Condition Reduction and Model Checker

The mutants for the given program are generated in use of mutating operators, the accessibility and necessity conditions for each mutant are obtained, and then the accessibility and necessity condition sets are reduced. By combining the reduced accessibility and necessity condition sets with the program statements, the program paths are created, and the mutating test cases generation is transformed into the path-based automatic testing cases generation. A linear constraints system with input variables is constructed and solved by the improved iterative relaxation method, and the testing cases that can kill simultaneously several mutants are generated. The counterexample is generated by model checker Java PathFinder (JPF), and then the killed mutants are achieved. Compared with the single mutating test case generation method with no testing requirement reduction, the experimental results show that, on the precondition of guaranteeing the same rate of mutating sufficiency, the presented approach can obtain stronger revealing faults ability and higher mutating test efficiency with fewer testing cases.