中文

Doric:统计故障定位的基础框架

软件工程 2018-10-02 v1

摘要

要修复软件缺陷,首先必须找到它。随着软件规模和复杂性的增长,寻找缺陷变得愈发困难。为解决此问题,已开发出多种度量方法,用于根据代码行存在缺陷的“可疑度”对其进行排序。工程师随后可按可疑度降序检查代码,直至发现故障。尽管已有进展,理想的度量方法——即同时具备轻量、有效且直观的方法——尚未被发现。我们提出 Doric,一种基于经典概率理论的统计故障定位新形式化基础。为展示 Doric 的通用性,我们推导出 cl,一种衡量某段代码导致错误的可能性的轻量度量。cl 返回概率,而基于频谱的启发式方法(sbhs)通常返回难以解释的分数。cl 能处理基于频谱的度量无法应对的基本故障场景,并也能确切地识别确定性成因。我们在据我们所知故障定位文献中最大规模的实验中展示了其有效性。对于 Defects4J 基准,cl 使开发人员在 41.18% 的情况下检查 6 行代码后即可发现故障。此外,cl 在定位故障方面比所有已知的 127 种 sbh 更准确。特别是在 Steimann 基准上,预计通过调查 5.02 个方法即可发现故障,而最佳 sbh 需 9.02 个。

关键词

引用

@article{arxiv.1810.00798,
  title  = {Doric: Foundations for Statistical Fault Localisation},
  author = {David Landsberg and Earl Barr},
  journal= {arXiv preprint arXiv:1810.00798},
  year   = {2018}
}