时序在即时缺陷预测中是否重要?一项部分复制研究
软件工程
2021-03-08 v1 机器学习
摘要
即时(Just-In-Time, JIT)模型用于检测引发修复的变更(或引发缺陷的变更)。这些模型基于一个假设构建,即过去的代码变更属性与未来的相似。然而,随着系统演进,开发者的专业能力和/或系统的复杂性也会发生变化。本文旨在研究代码变更属性随时间对 JIT 模型的影响。我们还研究了使用近期数据以及所有可用数据对 JIT 模型性能的影响。此外,我们分析了加权采样对 JIT 模型引发修复属性性能的影响。为此,我们使用了来自 Eclipse JDT、Mozilla、Eclipse Platform 和 PostgreSQL 的数据集。我们使用了五类代码变更属性,如规模、扩散、历史、经验和目的。我们使用随机森林(Random Forest)来训练和测试 JIT 模型,并使用 Brier 分数和 ROC 曲线下面积进行性能度量。我们的论文表明,JIT 模型的预测能力不随时间变化。此外,我们观察到,在 JIT 缺陷预测模型中,数据的时序可通过考虑所有可用数据而忽略。另一方面,代码变更属性族的重要性分数被发现随时间振荡。为减轻代码变更属性演进的影响,建议使用加权采样方法,其中更强调发生在更接近当前时间的变更。此外,由于诸如“开发者经验”和“规模”等属性随时间演进,从旧数据获得的模型可能表现出与采用较新数据集的模型不同的特征。因此,实践者应不断重新训练 JIT 模型以纳入新数据。
引用
@article{arxiv.2103.03506,
title = {Does chronology matter in JIT defect prediction? A Partial Replication Study},
author = {Hadi Jahanshahi and Dhanya Jothimani and Ayşe Başar and Mucahit Cevik},
journal= {arXiv preprint arXiv:2103.03506},
year = {2021}
}