中文

两全其美:结合学习嵌入与工程特征以准确预测正确补丁

软件工程 2022-11-15 v2

摘要

大量关于自动化程序修复的文献开发了这样的方法:自动生成补丁并用预言机(例如测试套件)进行验证。由于此类预言机可能不完美,所生成的补丁虽经预言机验证,实际上却可能是不正确的。我们的实证工作研究了用于代码变更的不同表示学习方法,以推导适于补丁正确性识别相似性计算中的嵌入,并评估通过结合学习嵌入与工程特征来准确分类正确补丁的可能性。实验结果表明,学习嵌入有潜力使Leopard(本工作中实现的补丁正确性预测框架)借助学习算法推理补丁正确性:BERT transformer-based学习嵌入与XGBoost关联的机器学习预测器在我们为实验收集的2147个标注补丁新数据集上取得了约0.803的AUC值。我们的研究表明,与依赖动态信息的state-of-the-art PATCH-SIM相比,深度学习的嵌入可带来互补/更优的性能。通过结合深度学习的嵌入与工程特征,Panther(本工作中实现的Leopard升级版)在AUC、+Recall和-Recall方面以更高分数优于Leopard,并能准确识别仅用学习嵌入或工程特征的分类器无法预测的更多(不)正确补丁。最后,我们使用可解释ML技术SHAP来实证解释学习嵌入与工程特征如何贡献于补丁正确性预测。

关键词

引用

@article{arxiv.2203.08912,
  title  = {The Best of Both Worlds: Combining Learned Embeddings with Engineered Features for Accurate Prediction of Correct Patches},
  author = {Haoye Tian and Kui Liu and Yinghua Li and Abdoul Kader Kaboré and Anil Koyuncu and Andrew Habib and Li Li and Junhao Wen and Jacques Klein and Tegawendé F. Bissyandé},
  journal= {arXiv preprint arXiv:2203.08912},
  year   = {2022}
}

备注

arXiv admin note: substantial text overlap with arXiv:2008.02944