A Just-In-Time (JIT) defect prediction model is a classifier to predict if a commit is defect-introducing. Recently, CC2Vec -- a deep learning approach for Just-In-Time defect prediction -- has been proposed. However, CC2Vec requires the whole dataset (i.e., training + testing) for model training, assuming that all unlabelled testing datasets would be available beforehand, which does not follow the key principles of just-in-time defect predictions. Our replication study shows that, after excluding the testing dataset for model training, the F-measure of CC2Vec is decreased by 38.5% for OpenStack and 45.7% for Qt, highlighting the negative impact of excluding the testing dataset for Just-In-Time defect prediction. In addition, CC2Vec cannot perform fine-grained predictions at the line level (i.e., which lines are most risky for a given commit). In this paper, we propose JITLine -- a Just-In-Time defect prediction approach for predicting defect-introducing commits and identifying lines that are associated with that defect-introducing commit (i.e., defective lines). Through a case study of 37,524 commits from OpenStack and Qt, we find that our JITLine approach is 8%-10% more accurate (AUC), 17%-51% more cost-effective (PCI@20%LOC), 70-100 times faster than the state-of-the-art approaches (i.e., CC2Vec and DeepJIT) and the fine-grained predictions at the line level by our approach are 133%-150% more accurate (Top-10 Accuracy) than the baseline NLP approach. Therefore, our JITLine approach may help practitioners to better prioritize defect-introducing commits and better identify defective lines.
翻译:公正时时( JIT) 缺陷预测模型是一个分类器, 用来预测一个承诺是否正在引入缺陷。 最近, 提出了 CC2Vec, CC2Vec -- -- 一个用于在时间里进行缺陷预测的深层次学习方法。 然而, CC2Vec 要求为模式培训提供整个数据集( 即培训+测试), 假设所有未贴标签的测试数据集都事先可用, 这不符合在时间里进行缺陷预测的关键原则 。 我们的复制研究表明, 在排除用于模型培训的测试数据集之后, CC2Vec F 的测量方法( OpenStack ) 减少了38.5%, 而 Qt 减少了45.7%。 但是, CC2Vec 要求将测试数据集排除在时间里( 培训+测试) 用于模型培训的负面影响。 此外, CC2Vec 无法在线级一级进行精确的预测( 例如, 最危险的是, 直线是, 直线 JJ51 和直线 直径( 直径) 直线 直径( 直径) 直径) 直线 直线 直线 直线 直线 直线 直线 直线 直达 直达 直达