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.
翻译:错误本地化是软件维护的一个重要方面, 因为它可以定位需要修改的模块以修复特定的错误。 虽然方法级错误本地化对开发者有用, 但方法级错误本地化对开发者来说只有帮助, 但只有为数不多的工具和技术来完成这项任务; 此外, 没有大规模框架来进行评估。 在本文中, 我们介绍 Finerbench4BBL, 一个方法级信息级信息检索错误本地化技术的评价框架, 以及使用这个框架进行比较研究。 这个框架是半自动地从文件级错误本地化评价框架Phack4BL 中建立起来的。 我们通过存储器转换, 将Phack4BL 提供的原始文件级版本存储器转换为方法级的存储器。 方法级的数据组件, 如操作器式方法等数据组件也可以通过使用错误组合将Phack4BL 连接到生成的方法存储器库中来自动衍生出来。 此外, 我们用方法级的错误本地化技术在方法级上实施。 我们通过合并生成的数据集和实施, 创建了方法级评价框架。 比较结果显示方法级技术降低了准确性, 而将降低了文件级的精确性。</s>