IBIR:基于缺陷报告的故障注入
软件工程
2022-08-15 v1
摘要
大量软件工程与软件测试的研究依赖于基于故障注入的实验研究。然而,故障注入通常不足以逼真地模拟现实世界软件故障,因为它“盲目地”注入大量故障。注入少量但逼真的、针对程序中特定功能的故障仍然是一项挑战。在本工作中,我们引入 IBIR,一种通过探索与用户报告故障相关的变更模式来应对该挑战的故障注入工具。为注入逼真故障,我们通过重定向一个由缺陷报告驱动的自动化程序修复系统(即反转其代码变换模板)来创建变异体。IBIR 在实践中还具有吸引力,因为它既不需要对代码也不需要对抗测试有深入了解,仅需了解程序相关的缺陷报告。因此,我们的方法将故障注入聚焦于缺陷报告所针对的特性。我们通过考虑 Defects4J 数据集来评估 IBIR。实验结果表明,无论在系统级还是类级粒度上应用,我们的方法在传统变异测试所执行的故障注入方面,就与原始缺陷的语义相似性而言表现更优,并且提供了更好且统计显著的测试有效性(故障检测)估计。此外,当注入 100 个故障时,IBIR 注入的故障在 36% 的情况下与真实故障耦合,而来自变异测试的变异体注入耦合率低于 1%。总体而言,IBIR 针对真实功能并注入逼真且多样的故障。
引用
@article{arxiv.2012.06506,
title = {IBIR: Bug Report driven Fault Injection},
author = {Ahmed Khanfir and Anil Koyuncu and Mike Papadakis and Maxime Cordy and Tegawendé F. Bissyandé and Jacques Klein and Yves Le Traon},
journal= {arXiv preprint arXiv:2012.06506},
year = {2022}
}