In mutation testing, variants (i.e., mutants) of the software under test are created. Themutants are then used to design tests that can detect the difference between the mutantsand the original software under test. Empirical studies have shown that test suites thatare effective in detecting mutants are also effective in detecting real faults. Mutationanalysis is therefore often used to benchmark effectiveness of other testing techniques.The main drawback of mutation testing is that it is computationally expensive becauseof the large number of mutants to analyze. It is well known that many of these mutantsare redundant and recent studies have shown that the redundancy among the mutantscan be up to 99%. However, identifying which mutants that are redundant is challengingsince this depends on the software under test as well as the specific mutations.
This work aims to combine techniques from areas, such as static analysis and machinelearning, in a process for cost-effective mutation analysis. Such techniques are expectedto provide partial solutions to the problem of avoiding creation of the redundant mutants.The outcome of this research is two-fold: (i) an evaluation of techniques that canbe used to minimize the set of non-redundant mutants that needs to be created, and (ii)a process for mutation analysis combining such minimization techniques. A frameworkwill also be developed to evaluate the minimization techniques and the entire process.
Research proposal, PhD programme, University of Skövde