Efficiently Finding Higher-Order Mutants
online resourceposted on 31.03.2021, 19:25 by Chu Pan Wong, Jens Meinicke, Christian Kastner, Leo Chen
Higher-order mutation has the potential for improving major drawbacks of traditional first-order mutation, such as by simulating more realistic faults or improving test optimization techniques. Despite interest in studying promising higher-order mutants, such mutants are difficult to find due to the exponential search space of mutation combinations. State-of-the-art approaches rely on genetic search, which is often incomplete and expensive due to its stochastic nature. First, we propose a novel way of finding a complete set of higher-order mutants by using variational execution, a technique that can, in many cases, explore large search spaces completely and often efficiently. Second, we use the identified complete set of higher-order mutants to study their characteristics. Finally, we use the identified characteristics to design and evaluate a new search strategy, independent of variational execution, that is highly effective at finding higher-order mutants even in large codebases.
In this repository, we share our implementation and experiment setup as executable jars for reproducing the reported data in our paper:
* SSHOM-Finder.zip is the main artifact for reproducing our results. It contains two jars and a README that documents how to use the jars.
* Results.zip contains the raw data we used at the time of writing our paper. These results were obtained by running SSHOM-Finder.zip. We share them here for easy reference.
* VariationalExecution.zip contains jars for running variational execution to generate BDDs. The jars in SSHOM-Finder.zip already contain and use pre-computed BDDs, so this step is optional.
Source code is available on Github: https://github.com/poosomooso/SSHOM-Search