中文

SampleFix:学习生成功能多样的修复补丁

软件工程 2021-09-24 v3 机器学习 编程语言 机器学习

摘要

自动程序修复在软件开发过程中具有显著提升程序员生产力及普遍改善软件正确性的潜力。机器学习、深度学习与 NLP 的最新进展重燃了最终完全自动化程序修复过程的希望。然而,先前旨在预测单一修复的方法因对程序员真实意图的不确定性而易于失败。因此,我们提出一种学习潜在修复分布上的生成模型。我们的模型表述为深度条件变分自编码器,可高效地对给定错误程序采样修复。为保障多样解,我们提出一种新颖正则化器,在语义嵌入空间上鼓励多样性。我们对常见编程错误的评估首次展示了多样修复的生成,并以修复多达 45% 的错误程序大幅优于最先进方法。我们进一步表明,对 65% 的已修复程序,我们的方法能生成具有多样功能性的多个程序。

关键词

引用

@article{arxiv.1906.10502,
  title  = {SampleFix: Learning to Generate Functionally Diverse Fixes},
  author = {Hossein Hajipour and Apratim Bhattacharyya and Cristian-Alexandru Staicu and Mario Fritz},
  journal= {arXiv preprint arXiv:1906.10502},
  year   = {2021}
}

备注

15 pages, 6 figures