arXivDaily arXiv每日学术速递 周一至周五更新
arXiv 2012.06506cs.SE
收藏

IBIR:缺陷报告驱动的故障注入

IBIR: Bug Report driven Fault Injection

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

摘要:

软件工程和软件测试的许多研究依赖于基于故障注入的实验研究。然而,故障注入并不经常与模拟真实世界的软件故障相关,因为它“盲目地”注入大量的故障。它仍然确实具有挑战性,注入少数但现实的故障,目标是一个特定的功能,在一个程序。在这项工作中,我们引入IBIR,故障注入工具,通过探索与用户报告的故障相关的变化模式来解决这一挑战。为了注入真实的错误,我们通过重定向错误报告驱动的自动程序修复系统来创建突变体,即,反转其代码转换模板。IBIR在实践中更有吸引力,因为它既不需要深入了解代码也不需要深入了解测试,而只需要了解程序的相关错误报告。因此,我们的方法将故障注入的重点放在功能的缺陷报告。我们通过考虑Defects4J数据集来评估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.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑