一句话:研究多位置缺陷下SBFL的触发时机,提出IFLM框架并用开源与工业数据集评估四种触发模式。
基于频谱的故障定位(SBFL)可辅助调试,但通常需要先执行大量测试才能应用,限制了其在工业界的实用性。已有关于提前触发模式的研究仅针对单位置缺陷,而多位置缺陷在真实场景(如作者所在公司 Cvent 的 CI/CD 流程)中十分普遍。本文面向多位置缺陷,提出 Instant Fault Localization for Multi-location Bugs(IFLM)框架,并在开源数据集 Defects4J 与工业数据集 Cvent 上比较评估四种触发模式。结果表明:无需执行全部测试即可应用 SBFL;但与单位置缺陷的已有结论相反,多位置缺陷下首次测试失败后立即触发 SBFL 的效果不如执行完全部测试后再触发;同时人工缺陷与真实缺陷上的表现存在差异。论文贡献包括 IFLM 框架与 Cvent 数据集的构建、多位置缺陷下 SBFL 有效性分析,以及面向工业环境集成 SBFL 的实践启示。
Spectrum-based fault localization (SBFL) techniques can aid in debugging, but their practicality in industrial settings has been limited due to the large number of tests needed to execute before applying SBFL. Previous research has explored different trigger modes for SBFL and found that applying it immediately after the first test failure is also effective. However, this study only considered single-location bugs, while multi-location bugs are prevalent in real-world scenarios and especially at our company Cvent, which is interested in integrating SBFL to its CI/CD workflow. In this work, we investigate the effectiveness of SBFL on multi-location bugs and propose a framework called Instant Fault Localization for Multi-location Bugs (IFLM). We compare and evaluate four trigger modes of IFLM using open-source (Defects4J) and close-source (Cvent) bug datasets. Our study showed that it is not necessary to execute all test cases before applying SBFL. However, we also found that that applying SBFL right after the first failed test is less effective than applying it after executing all tests for multi-location bugs, which is contrary to the single-location bug study. We also observe differences in performance between real and artificial bugs. Our contributions include the development of IFLM and CVent bug datasets, analysis of SBFL effectiveness for multi-location bugs, and practical implications for integrating SBFL in industrial environments.