中文

基于失败测试用例相似性预测补丁正确性

软件工程 2022-03-17 v2 人工智能

摘要

为预测自动程序修复(APR)中的补丁正确性,我们提出一个关于如何建立补丁行为与失败测试规范之间联系的简单而新颖的假设:相似的失败测试用例应需要相似的补丁。随后我们提出 BATS,一个基于无监督学习的系统,通过检查补丁行为对抗失败测试规范(BATS)来预测补丁正确性。BATS 利用代码与补丁的深度表示学习模型:对给定失败测试用例,所得嵌入用于计算相似性度量,以搜索历史相似测试用例,从而识别相关联的已应用补丁,并将其作为评估生成补丁正确性的代理。实验上,我们首先通过评估真实开发者补丁是否以其关联失败测试用例的聚类方式相同聚类来验证假设。然后,在收集了 1278 个合理补丁(由开发者编写或由 32 个 APR 工具生成)的大型数据集后,我们用 BATS 预测正确性:BATS 在识别正确补丁上达到 0.557 至 0.718 的 AUC 和 0.562 至 0.854 的召回率。与先前工作相比,我们证明该方法在补丁正确性预测上优于最先进性能,且不同于先前基于机器学习的方法,无需大型标注补丁数据集。尽管 BATS 受相似测试用例可用性的限制,我们表明它仍可与现有方法互补:与近期实现监督学习的方法结合使用时,BATS 提升了检测正确补丁的整体召回率。我们最后表明 BATS 可与最先进的 PATCH-SIM 动态方法互补,以识别 APR 工具的正确补丁。

关键词

引用

@article{arxiv.2107.13296,
  title  = {Predicting Patch Correctness Based on the Similarity of Failing Test Cases},
  author = {Haoye Tian and Yinghua Li and Weiguo Pian and Abdoul Kader Kaboré and Kui Liu and Andrew Habib and Jacques Klein and Tegawendé F. Bissyande},
  journal= {arXiv preprint arXiv:2107.13296},
  year   = {2022}
}