Rete: Learning Namespace Representation for Program Repair

被引:5
作者
Parasaram, Nikhil [1 ]
Barr, Earl T. [1 ]
Mechtaev, Sergey [1 ]
机构
[1] UCL, London, England
来源
2023 IEEE/ACM 45TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, ICSE | 2023年
关键词
Program Repair; Deep Learning; Patch Prioritisation; Variable Representation; AUTOMATED REPAIR;
D O I
10.1109/ICSE48619.2023.00112
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
A key challenge of automated program repair is finding correct patches in the vast search space of candidate patches. Real-world programs define large namespaces of variables that considerably contributes to the search space explosion. Existing program repair approaches neglect information about the program namespace, which makes them inefficient and increases the chance of test-overfitting. We propose RETE, a new program repair technique, that learns project-independent information about program namespace and uses it to navigate the search space of patches. RETE uses a neural network to extract project-independent information about variable CDU chains, defuse chains augmented with control flow. Then, it ranks patches by jointly ranking variables and the patch templates into which the variables are inserted. We evaluated RETE on 142 bugs extracted from two datasets, ManyBugs and BugsInPy. Our experiments demonstrate that RETE generates six new correct patches that fix bugs that previous tools did not repair, an improvement of 31% and 59% over the existing state of the art.
引用
收藏
页码:1264 / 1276
页数:13
相关论文
共 72 条
  • [21] Gyimóthy T, 1999, LECT NOTES COMPUT SC, V1687, P303, DOI 10.1145/318774.319248
  • [22] Nguyen HDT, 2013, PROCEEDINGS OF THE 35TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE 2013), P772, DOI 10.1109/ICSE.2013.6606623
  • [23] Hochbaum Dorit S, 1996, Approximation Algorithms for NP-Hard Problems, P94
  • [24] Coherent clusters in source code
    Islam, Syed
    Krinke, Jens
    Binkley, David
    Harman, Mark
    [J]. JOURNAL OF SYSTEMS AND SOFTWARE, 2014, 88 : 1 - 24
  • [25] CURE: Code-Aware Neural Machine Translation for Automatic Program Repair
    Jiang, Nan
    Lutellier, Thibaud
    Tan, Lin
    [J]. 2021 IEEE/ACM 43RD INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE 2021), 2021, : 1161 - 1173
  • [26] Sarker MK, 2021, Arxiv, DOI arXiv:2105.05330
  • [27] Karp Richard M., 1972, COMPLEXITY COMPUTER, P85
  • [28] Kim D, 2013, PROCEEDINGS OF THE 35TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE 2013), P802, DOI 10.1109/ICSE.2013.6606626
  • [29] Automatic patch generation with context-based change application
    Kim, Jindae
    Kim, Sunghun
    [J]. EMPIRICAL SOFTWARE ENGINEERING, 2019, 24 (06) : 4071 - 4106
  • [30] FixMiner: Mining relevant fix patterns for automated program repair
    Koyuncu, Anil
    Liu, Kui
    Bissyande, Tegawende F.
    Kim, Dongsun
    Klein, Jacques
    Monperrus, Martin
    Le Traon, Yves
    [J]. EMPIRICAL SOFTWARE ENGINEERING, 2020, 25 (03) : 1980 - 2024