Self-Supervised Bug Detection and Repair

Self-Supervised Bug Detection and Repair
复制标题

DOI:
--
复制
发表时间:
2021-05
期刊:
--
影响因子:
--
通讯作者:
Miltiadis Allamanis;Henry Jackson-Flux;Marc Brockschmidt
Miltiadis Allamanis;Henry Jackson-Flux;Marc Brockschmidt
中科院分区:
其他
文献类型:
--
作者:
Miltiadis Allamanis;Henry Jackson-Flux;Marc Brockschmidt

文献摘要

被引文献

相似文献

基于机器学习的程序分析最近显示出集成形式和概率推理以辅助软件开发的前景。然而,在没有大型注释语料库的情况下,训练这些分析是具有挑战性的。为了解决这个问题,我们提出了BugLab,一种自我监督学习的错误检测和修复方法。BugLab联合训练两个模型:(1)学习检测和修复代码中的错误的检测器模型,(2)学习创建错误代码以供检测器用作训练数据的选择器模型。BugLab的Python实现在2374个真实bug的测试数据集上的基线方法上提高了30%,并在开源软件中发现了19个以前未知的bug。
Machine learning-based program analyses have recently shown the promise of integrating formal and probabilistic reasoning towards aiding software development. However, in the absence of large annotated corpora, training these analyses is challenging. Towards addressing this, we present BugLab, an approach for self-supervised learning of bug detection and repair. BugLab co-trains two models: (1) a detector model that learns to detect and repair bugs in code, (2) a selector model that learns to create buggy code for the detector to use as training data. A Python implementation of BugLab improves by up to 30% upon baseline methods on a test dataset of 2374 real-life bugs and finds 19 previously unknown bugs in open-source software.