中文

JITLine:一种更简单、更优、更快、更细粒度的即时缺陷预测方法

软件工程 2021-03-17 v2

摘要

即时(JIT)缺陷预测模型是用于预测某次提交是否引入缺陷的分类器。近来,CC2Vec——一种用于即时缺陷预测的深度学习方案——被提出。然而,CC2Vec 需要整个数据集(即训练+测试)进行模型训练,假设所有未标注测试数据集事先可用,这违背了即时缺陷预测的关键原则。我们的复现研究表明,在排除测试数据集用于模型训练后,CC2Vec 的 F-measure 在 OpenStack 上下降 38.5%,在 Qt 上下降 45.7%,凸显了排除测试数据集对即时缺陷预测的负面影响。此外,CC2Vec 无法在行级别进行细粒度预测(即给定提交中哪些行风险最高)。本文中,我们提出 JITLine——一种用于预测引入缺陷的提交并识别与该引入缺陷提交相关行(即缺陷行)的即时缺陷预测方法。通过对来自 OpenStack 和 Qt 的 37,524 次提交案例研究,我们发现 JITLine 方法在准确率(F-measure)上至少高出 26%-38%,在成本效益(PCI@20%LOC)上高出 17%-51%,比最先进方法(即 CC2Vec 与 DeepJIT)快 70-100 倍,且我们方法在行级别的细粒度预测比基线 NLP 方法准确(Top-10 Accuracy)133%-150%。因此,我们的 JITLine 方法可帮助从业者更好地优先处理引入缺陷的提交并更好地识别缺陷行。

关键词

引用

@article{arxiv.2103.07068,
  title  = {JITLine: A Simpler, Better, Faster, Finer-grained Just-In-Time Defect Prediction},
  author = {Chanathip Pornprasit and Chakkrit Tantithamthavorn},
  journal= {arXiv preprint arXiv:2103.07068},
  year   = {2021}
}

备注

11 pages, accepted at 2021 International Conference on Mining Software Repositories (MSR'21)