中文

SZZ 算法与特征的问题:缺陷预测数据收集实践现状的实证研究

软件工程 2022-01-24 v3

摘要

背景:SZZ 算法是为缺陷预测数据标注缺陷修复提交并查找引入变更的事实标准。近期研究揭示了 SZZ 算法不同部分存在的潜在问题。大多数缺陷预测数据集仅提供静态代码度量作为特征,而研究表明其他特征也很重要。目标:我们对使用 SZZ 算法创建的缺陷标签以及常用特征对结果的影响提供实证分析。方法:我们结合手动验证并采用或改进启发式方法来收集缺陷数据。我们对 38 个 Apache 项目的 398 个发布版本进行了实证研究。结果:我们发现 SZZ 确定的缺陷修复提交中仅有一半确实是缺陷修复。若在使用 SZZ 确定影响某发布的缺陷时采用六个月时间窗,则每有一个被正确标注为缺陷的文件,就有一个文件被错误标注为缺陷,此外还会漏掉两个缺陷文件。我们还探讨了大多数缺陷预测数据集中可用的相对较小的特征集的影响,因为已有多篇文献指出例如与代码变动相关的特征对缺陷预测十分重要。我们发现使用更多特征的差异并不显著。结论:不准确的缺陷标签问题对缺陷预测技术现状的有效性构成严重威胁。较小的特征集似乎是较不严重的威胁。

关键词

引用

@article{arxiv.1911.08938,
  title  = {Problems with SZZ and Features: An empirical study of the state of practice of defect prediction data collection},
  author = {Steffen Herbold and Alexander Trautsch and Fabian Trautsch and Benjamin Ledel},
  journal= {arXiv preprint arXiv:1911.08938},
  year   = {2022}
}

备注

Accepted at Empirical Software Engineering, Springer. First three authors are equally contributing