Killing Stubborn Mutants with Symbolic Execution

Thierry Titcheu Chekam,Mike Papadakis,Maxime Cordy,Yves Le Traon
DOI: https://doi.org/10.1145/3425497
IF: 3.685
2021-04-30
ACM Transactions on Software Engineering and Methodology
Abstract:We introduce SEMu , a Dynamic Symbolic Execution technique that generates test inputs capable of killing stubborn mutants (killable mutants that remain undetected after a reasonable amount of testing). SEMu aims at mutant propagation (triggering erroneous states to the program output) by incrementally searching for divergent program behaviors between the original and the mutant versions. We model the mutant killing problem as a symbolic execution search within a specific area in the programs’ symbolic tree. In this framework, the search area is defined and controlled by parameters that allow scalable and cost-effective mutant killing. We integrate SEMu in KLEE and experimented with Coreutils (a benchmark frequently used in symbolic execution studies). Our results show that our modeling plays an important role in mutant killing. Perhaps more importantly, our results also show that, within a two-hour time limit, SEMu kills 37% of the stubborn mutants, where KLEE kills none and where the mutant infection strategy (strategy suggested by previous research) kills 17%.
computer science, software engineering
What problem does this paper attempt to address?