Heuristics for Strongly Killing Mutants in Software Mutation Testing

Boyuan Li,Duo Li,Chao Guo,Jianghai Li,Xiaojin Huang
DOI: https://doi.org/10.1109/qrs-c63300.2024.00012
2024-01-01
Abstract:Software mutation testing helps a tester create test cases and improve the quality of a test set. In mutation testing, the original source code of a program is mutated by the tester and the resulting program is called a “mutant”. Testers design test cases to be able to distinguish between the original program and its mutants (i.e., kill the mutant). There are two different criteria for killing mutants: weakly killing mutants and strongly killing mutants, and this paper focuses on the latter. From our analysis, it is found that strongly killing mutants is essentially selecting the right paths in the control flow graph of the program. Based on this finding, two heuristics to strongly kill mutants are developed and an algorithm is provided to implement the heuristics.
What problem does this paper attempt to address?