中文

WIA-SZZ:感知工作项的 SZZ

软件工程 2024-11-20 v1

摘要

许多软件工程维护任务需要将引发缺陷的提交与后来修复该缺陷的提交关联起来。现有的几种 SZZ 算法提供了一种方法,在给定修复提交作为输入时,识别出可能引发缺陷的提交。先前的工作引入了“工作项”的概念,即提交的逻辑分组,它可以是一个单一的工作单元。我们在本研究中的关键洞察是认识到,缺陷引发提交及其修复共同代表一个“工作项”。目前尚不清楚这些作为处理单一问题或特性的修订逻辑组的工作项,会如何影响诸如 SZZ 等算法的性能。在本文中,我们提出了一种启发式方法,在给定输入提交时,利用有关已更改方法的信息来识别与输入提交构成工作项的相关提交。我们假设,给定这样一种工作项识别启发式方法,我们能够比现有的 SZZ 方法更准确地识别缺陷引发提交。然后,我们构建了一种新的 SZZ 变体,称为感知工作项的 SZZ (WIA-SZZ),它利用我们的工作项检测启发式方法首先建议缺陷引发提交。如果我们的启发式方法未能找到任何候选者,我们将退回到 SZZ 的基线变体。我们进行了人工评估,以评估我们的启发式方法识别工作项的准确性。我们的评估显示,该启发式方法在查找工作项方面的准确率为 64%,但最重要的是,它能够找到许多缺陷引发提交。然后,我们在 821 个先前用于研究 SZZ 性能的代码库上评估了我们的方法,将我们的工作与六种 SZZ 变体进行了比较。该评估显示 F1 分数提高了 2% 到 9%,或者仅查看发现工作项的案例子集时提高了 3% 到 14%。

关键词

引用

@article{arxiv.2411.12740,
  title  = {WIA-SZZ: Work Item Aware SZZ},
  author = {Salomé Perez-Rosero and Robert Dyer and Samuel W. Flint and Shane McIntosh and Witawas Srisa-an},
  journal= {arXiv preprint arXiv:2411.12740},
  year   = {2024}
}