Large-Scale Evaluation of Method-Level Bug Localization with FinerBench4BL

Large-Scale Evaluation of Method-Level Bug Localization with FinerBench4BL
复制标题

DOI:
10.1109/saner56733.2023.00094
复制
发表时间:
2023-02
期刊:
2023 IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER)
影响因子:
--
通讯作者:
S. Tsumita;Shinpei Hayashi;S. Amasaki
S. Tsumita;Shinpei Hayashi;S. Amasaki
中科院分区:
其他
文献类型:
--
作者:
S. Tsumita;Shinpei Hayashi;S. Amasaki

文献摘要

相似文献

错误定位是软件维护的一个重要方面,因为它可以定位需要修改以修复特定错误的模块。虽然方法级的bug定位对开发人员很有帮助,但是只有少数工具和技术可以完成这项任务;此外,还没有大规模的框架来评估它们。在本文中,我们提出了FinerBench4BL,方法级的信息检索为基础的错误定位技术的评估框架,并使用此框架进行比较研究。这个框架是从Bench4BL(一个文件级的bug本地化评估框架)使用存储库转换方法半自动构建的。我们通过仓库转换将Bench4BL提供的原始文件级版本仓库转换为方法级仓库。方法级数据组件(如Oracle方法)也可以通过Bench4BL中的bug-commit链接应用Oracle生成方法自动派生到生成的方法存储库。此外,我们在方法级定制了现有的文件级错误定位技术实现。我们通过合并生成的数据集和实现创建了一个方法级评估的框架。结果表明,方法级技术与文件级技术相比,在提高调试效率的同时降低了调试精度。
Bug localization is an important aspect of software maintenance because it can locate modules that need to be changed to fix a specific bug. Although method-level bug localization is helpful for developers, there are only a few tools and techniques for this task; moreover, there is no large-scale framework for their evaluation. In this paper, we present FinerBench4BL, an evaluation framework for method-level information retrieval-based bug localization techniques, and a comparative study using this framework. This framework was semi-automatically constructed from Bench4BL, a file-level bug localization evaluation framework, using a repository transformation approach. We converted the original file-level version repositories provided by Bench4BL into method-level repositories by repository transformation. Method-level data components such as oracle methods can also be automatically derived by applying the oracle generation approach via bug-commit linking in Bench4BL to the generated method repositories. Furthermore, we tailored existing file-level bug localization technique implementations at the method level. We created a framework for method-level evaluation by merging the generated dataset and implementations. The comparison results show that the method-level techniques decreased accuracy whereas improved debugging efficiency compared to file-level techniques.