中文

GloBug:在故障定位中使用全局数据

软件工程 2021-01-18 v1

摘要

故障定位(FL)是软件调试的重要第一步,在当前实践中大多为人工进行。多年来已提出许多自动化 FL 过程的方法,包括基于信息检索(IR)的技术。这些方法基于所报告缺陷报告与源代码之间的相似性进行故障定位。基于 IR 的 FL(IRFL)技术的较新变体还考察缺陷报告的历史,并在定位中加以利用。然而,所有现有 IRFL 技术都将自身限制在当前项目的数据(局部数据)内。在本研究中,我们引入 Globug,这是一个由使用在全局数据(从开源基准项目提取)上预训练模型的方法构成的 IRFL 框架。在 Globug 中,我们考察两种启发式: a) 全局数据对一种最先进 IR-FL 技术(即 BugLocator)的影响; b) 将词嵌入技术(Doc2Vec)与全局数据结合应用。我们在 51 个软件项目上的大规模实验表明,使用全局数据在 MRR(平均倒数排名)与 MAP(平均精度均值)上分别平均提升 BugLocator 6.6% 与 4.8%,且在多数情况(按 MRR 与 MAP 分别为 64% 与 54%)下提升超过 14%。相较于其他五种最先进 IRFL 工具相对 BugLocator 提供的提升率,此提升幅度显著。此外,全局训练模型是一次性的离线任务,对 BugLocator 运行时故障定位无开销。但我们的研究表明,基于词嵌入的全局方案并未进一步改善结果。

关键词

引用

@article{arxiv.2101.05862,
  title  = {GloBug: Using Global Data in Fault Localization},
  author = {Nima Miryeganeh and Sepehr Hashtroudi and Hadi Hemmati},
  journal= {arXiv preprint arXiv:2101.05862},
  year   = {2021}
}