中文

SBEST:无需触发故障测试的基于频谱的故障定位

软件工程 2025-10-28 v2

摘要

故障定位是软件维护中的关键步骤。然而,许多现有技术,例如基于频谱的故障定位(SBFL),在很大程度上依赖于触发故障测试的可用性才能有效。在实践中,特别是对于与崩溃相关的错误,此类测试通常不可用。与此同时,包含堆栈跟踪的错误报告通常是运行时失败的唯一可用证据,并为调试提供了有价值的上下文。本研究调查了在SBFL中使用崩溃报告中的堆栈跟踪作为触发故障测试替代品的可行性。我们对Defects4J中60个崩溃报告错误的实证分析显示,在创建错误报告时,只有3.33%的这些错误具有可用的触发故障测试。然而,98.3%的错误修复直接解决了堆栈跟踪中观察到的异常,并且78.3%的错误方法在平均距离堆栈跟踪0.34个方法调用内可达。这些发现强调了在缺乏失败测试的情况下堆栈跟踪的诊断价值。受这些发现的启发,我们提出了SBEST,一种新颖的方法,它集成堆栈跟踪信息与测试覆盖率数据,以在缺少触发故障测试时执行故障定位。与在缺少触发故障测试场景下的基线方法相比,SBEST显示出改进,平均精度均值(MAP)提高了32.22%,平均倒数排名(MRR)提高了17.43%。

关键词

引用

@article{arxiv.2405.00565,
  title  = {SBEST: Spectrum-Based Fault Localization Without Fault-Triggering Tests},
  author = {Md Nakhla Rafi and Lorena Barreto Simedo Pacheco and An Ran Chen and Jinqiu Yang and Tse-Hsun and Chen},
  journal= {arXiv preprint arXiv:2405.00565},
  year   = {2025}
}

备注

Empirical Software Engineering (EMSE) journal