Assessment of C++ object‐oriented mutation operators: A selective mutation approach. (20th March 2017) - Delgado‐Pérez, Pedro; Segura, Sergio; Medina‐Bulo, Inmaculada
Summary: Mutation testing is an effective but costly testing technique. Several studies have observed that some mutants can be redundant and therefore removed without affecting its effectiveness. Similarly, some mutants may be more effective than others in guiding the tester on the creation of high‐quality test cases. On the basis of these findings, we present an assessment of C++ class mutation operators by classifying them into 2 rankings: the first ranking sorts the operators on the basis of their degree of redundancy and the second regarding the quality of the tests they help to design. Both rankings are used in a selective mutation study analysing the trade‐off between the reduction achieved and the effectiveness when using a subset of mutants. Experimental results consistently show that leveraging the operators at the top of the 2 rankings, which are different, lead to a significant reduction in the number of mutants with a minimum loss of effectiveness. Abstract : Mutation operators should be valued differently depending on whether we wish to evaluate a test suite (analysing their degree of redundancy) or refine a test suite (assessing their ability to induce the design of high‐quality test cases). Discarding individual mutants is more convenient than discarding mutation operators when applying mutation testing at the class level. The selection of mutants giving preference to the best‐valued mutation operators shows a better performance than the random selection of mutants.