Selecting Fault Revealing Mutants
Mutant selection refers to the problem of choosing, among a large number of mutants, the (few) ones to be used by the testers. We thus, investigate the problem of selecting the fault revealing mutants, i.e., the mutants that are most likely to lead to test cases that uncover unknown program faults. We formulate this problem as the fault revealing mutant selection and as the fault revealing mutant prioritization problems. We argue that these problems can be tackled through a set of 'static' program features. We thus, propose FaRM, a machine learning approach that learns to select fault revealing mutants. Experimental results involving 1,629 real faults show the practical benefits of our approach in both examined problems. Our results show that FaRM achieves a good trade-off between mutation testing application cost and effectiveness (measured in terms of faults revealed). We also show that FaRM outperforms random mutant sampling, which until now, is the most effective mutant selection method. In particular, our results show that with respect to mutant selection, our approach reveals 12 with respect to mutant prioritization, it achieves higher average percentage of revealed faults with a median difference of 10 orderings).
READ FULL TEXT