Version history, similar report, and structure: putting them together for improved bug localization

Version history, similar report, and structure: putting them together for improved bug localization
复制标题

DOI:
10.1145/2597008.2597148
复制
发表时间:
2014-06
期刊:
--
影响因子:
--
通讯作者:
Shaowei Wang;D. Lo
Shaowei Wang;D. Lo
中科院分区:
其他
文献类型:
--
作者:
Shaowei Wang;D. Lo

文献摘要

被引文献

相似文献

在软件系统的发展过程中,会有大量的bug报告被提交。定位需要修复以解决错误的源代码文件是一个具有挑战性的问题。因此,需要一种可以自动找出这些错误文件的技术。在文献中已经提出了许多错误定位解决方案,这些解决方案接受错误报告并输出基于其可能性被错误排序的文件的排名列表。然而,这些工具的准确性仍有待提高。在本文中,为了满足这一需求,我们提出了AmaLgam,一种新的方法来定位相关的错误文件,将版本历史,类似的报告和结构放在一起。为了做到这一点,AmaLgam集成了Google使用的分析版本历史的错误预测技术,与名为Buggram的分析来自错误报告系统的类似报告的错误定位技术,以及考虑结构的最先进的错误定位技术BLUiR。我们在四个开源项目上进行了大规模的实验,分别是ANOJ,Eclipse,SWT和ZXing,以本地化超过3,000个错误。与Sisman和Kak的历史感知错误定位解决方案相比,我们的方法在平均精度(MAP)方面实现了46.1%的改进。与Bugstrom相比,我们的方法在MAP方面实现了24.4%的改进。与BLUiR相比,我们的方法在MAP方面实现了16.4%的改进。
During the evolution of a software system, a large number of bug reports are submitted. Locating the source code files that need to be fixed to resolve the bugs is a challenging problem. Thus, there is a need for a technique that can automatically figure out these buggy files. A number of bug localization solutions that take in a bug report and output a ranked list of files sorted based on their likelihood to be buggy have been proposed in the literature. However, the accuracy of these tools still need to be improved. In this paper, to address this need, we propose AmaLgam, a new method for locating relevant buggy files that puts together version history, similar reports, and structure. To do this, AmaLgam integrates a bug prediction technique used in Google which analyzes version history, with a bug localization technique named BugLocator which analyzes similar reports from bug report system, and the state-of-the-art bug localization technique BLUiR which considers structure. We perform a large-scale experiment on four open source projects, namely AspectJ, Eclipse, SWT and ZXing to localize more than 3,000 bugs. Compared with a history-aware bug localization solution of Sisman and Kak, our approach achieves a 46.1% improvement in terms of mean average precision (MAP). Compared with BugLocator, our approach achieves a 24.4% improvement in terms of MAP. Compared with BLUiR, our approach achieves a 16.4% improvement in terms of MAP.