论文标题

ibir:错误报告驱动的故障注射

IBIR: Bug Report driven Fault Injection

论文作者

Khanfir, Ahmed, Koyuncu, Anil, Papadakis, Mike, Cordy, Maxime, Bissyandé, Tegawendé F., Klein, Jacques, Traon, Yves Le

论文摘要

关于软件工程和软件测试的大量研究依赖于基于故障注入的实验研究。但是,故障注射通常与模拟现实世界软件故障无关,因为它“盲目地”注入了大量故障。注入针对程序中特定功能的几个但现实的故障确实仍然具有挑战性。在这项工作中,我们介绍了IBIR,这是一种故障注入工具,通过探索与用户报告的故障相关的变更模式来解决这一挑战。为了注入现实的故障,我们通过重新定位错误报告驱动的自动化程序维修系统(即逆转其代码转换模板)来创建突变体。 ibir在实践中进一步吸引人,因为它不需要对两个代码和测试的深入了解,而需要对程序的相关错误报告。因此,我们的方法将故障注入重点放在错误报告针对的功能上。我们通过考虑缺陷4J数据集评估IBIR。实验结果表明,我们的方法的表现优于传统突变测试所执行的断层注射,这是在与原始错误的语义相似性方面,当在系统或类粒度水平上应用时,并且提供了更好,具有统计学意义的测试有效性的估计(故障检测)。此外,当注射100个故障时,IBIR注入了36%的情况下与实际情况的故障,而突变测试中的突变体则注入小于1%。总体而言,IBIR的目标是真正的功能,并注入现实和多样化的故障。

Much research on software engineering and software testing relies on experimental studies based on fault injection. Fault injection, however, is not often relevant to emulate real-world software faults since it "blindly" injects large numbers of faults. It remains indeed challenging to inject few but realistic faults that target a particular functionality in a program. In this work, we introduce IBIR, a fault injection tool that addresses this challenge by exploring change patterns associated to user-reported faults. To inject realistic faults, we create mutants by retargeting a bug report driven automated program repair system, i.e., reversing its code transformation templates. IBIR is further appealing in practice since it requires deep knowledge of neither of the code nor the tests, but just of the program's relevant bug reports. Thus, our approach focuses the fault injection on the feature targeted by the bug report. We assess IBIR by considering the Defects4J dataset. Experimental results show that our approach outperforms the fault injection performed by traditional mutation testing in terms of semantic similarity with the original bug, when applied at either system or class levels of granularity, and provides better, statistically significant, estimations of test effectiveness (fault detection). Additionally, when injecting 100 faults, IBIR injects faults that couple with the real ones in 36% of the cases, while mutants from mutation testing inject less than 1%. Overall, IBIR targets real functionality and injects realistic and diverse faults.

扫码加入交流群

加入微信交流群

微信交流群二维码

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