论文标题

用象征性执行杀死顽固的突变体

Killing Stubborn Mutants with Symbolic Execution

论文作者

Chekam, Thierry Titcheu, Papadakis, Mike, Cordy, Maxime, Traon, Yves Le

论文摘要

我们介绍了SEMU,这是一种动态符号执行技术,它生成能够杀死顽固突变体的测试输入(可杀死突变体在合理量后仍未被发现)。 SEMU的目的是通过逐步搜索原始版本和突变版之间的分歧程序行为来实现突变传播(将错误状态触发错误的状态触发错误状态)。我们将突变的杀戮问题建模为程序符号树中特定区域内的符号执行搜索。在此框架中,搜索区域由允许可扩展且具有成本效益的突变体杀死的参数定义和控制。我们将SEMU集成在Klee中,并与Coreutils进行实验(符号执行研究经常使用的基准)。我们的结果表明,我们的建模在突变杀人中起着重要作用。也许更重要的是,我们的结果还表明,在两个小时的时间限制内,Semu杀死了37%的顽固突变体,而Klee无需杀死任何顽固的突变体,而突变体感染策略(以前的研究提出的策略)杀死了17%。

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 behaviours 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 modelling 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%.

扫码加入交流群

加入微信交流群

微信交流群二维码

扫码加入学术交流群,获取更多资源