中文

基于方法调用频率的软件缺陷定位平局打破策略

软件工程 2021-08-26 v1

摘要

在基于频谱的缺陷定位(SBFL)中,基于测试覆盖和测试结果为每个代码元素分配一个可疑度得分。然后利用这些得分对代码元素进行相对排序,以帮助程序员在调试过程中寻找故障源。然而,可能没有任何已知的 SBFL 公式能保证为所有程序元素产生不同的得分,因此代码元素之间会出现平局。根据我们的实验,SBFL 中的平局普遍存在:在 Defects4J 中,54-56% 的缺陷方法属于平局,即在这些情况下至少有一个其他方法具有相同的得分(但通常要多得多,平均为 6 个),这不可避免地降低了任何 SBFL 方法的有效性。在本研究中,我们提出了一种基于所谓方法调用频率的技术来打破此类情况下的平局。该技术计算在失败测试用例中方法调用(作为被调用者和调用者)的不同上下文数量。直觉是,如果一个方法在失败测试用例期间出现在许多不同的调用上下文中,与其他具有相同得分的方法相比,它将更可疑并获得更高的排名位置。该方法可应用于任何底层的 SBFL 公式,并且在许多情况下能够有利地打破平局中出现的排名。实验结果表明,我们新颖的平局打破策略在我们的基准测试中实现了关键平局大小和数量的显著减少。在 72-73% 的情况下,平局被完全消除,平均减少率超过 80%。

关键词

引用

@article{arxiv.2108.11031,
  title  = {Method Calls Frequency-Based Tie-Breaking Strategy For Software Fault Localization},
  author = {Qusay Idrees Sarhan and Bela Vancsics and Arpad Beszedes},
  journal= {arXiv preprint arXiv:2108.11031},
  year   = {2021}
}

备注

11 Pages