Automatically Finding Patches Using Genetic Programming

被引:412
作者
Weimer, Westley [1 ]
Nguyen, ThanhVu [2 ]
Le Goues, Claire [1 ]
Forrest, Stephanie [2 ]
机构
[1] Univ Virginia, Charlottesville, VA 22903 USA
[2] Univ New Mexico, Albuquerque, NM 87131 USA
来源
2009 31ST INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, PROCEEDINGS | 2009年
基金
美国国家科学基金会;
关键词
D O I
10.1109/ICSE.2009.5070536
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Automatic program repair has been a longstanding goal in software engineering, yet debugging remains a largely manual process. We introduce a fully automated method for locating and repairing bugs in software. The approach works on off-the-shelf legacy applications and does not require formal specifications, program annotations or special coding practices. Once a program fault is discovered, an extended form of genetic programming is used to evolve program variants until one is found that both retains required functionality and also avoids the defect in question. Standard test cases art, used to exercise the fault and to encode program requirements. After a successful repair has been discovered, it is minimized using structural differencing algorithms and delta debugging. We describe the proposed method and report experimental results demonstrating that it can successfully repair ten different C programs totaling 63,000 lines in under 200 seconds, on average.
引用
收藏
页码:364 / +
页数:2
相关论文
共 32 条
  • [1] Al-Ekram Raihan., 2005, C CTR ADV STUDIES CO, P1
  • [2] Alba E, 2007, GECCO 2007: GENETIC AND EVOLUTIONARY COMPUTATION CONFERENCE, VOL 1 AND 2, P1066
  • [3] [Anonymous], 2001, Proceedings of the 18th ACM Symposium on Operating Systems Principles
  • [4] [Anonymous], 2003, Genetic programming IV: routine human-competitive machine intelligence
  • [5] Anvik J., 2005, P 2005 OOPSLA WORKSH, P35, DOI [10.1145/1117696, 10.1145/1117696.1117704, DOI 10.1145/1117696]
  • [6] Anvik J., 2006, P 28 INT C SOFTW ENG, P361, DOI [DOI 10.1145/1134285.1134336, 10.1145/1134285.1134336]
  • [7] Arcuri A, 2008, P DOCT S IEEE INT C
  • [8] A Novel Co-evolutionary Approach to Automatic Software Bug Fixing
    Arcuri, Andrea
    Yao, Xin
    [J]. 2008 IEEE CONGRESS ON EVOLUTIONARY COMPUTATION, VOLS 1-8, 2008, : 162 - 168
  • [9] From symptom to cause: Localizing errors in counterexample traces
    Ball, T
    Naik, M
    Rajamani, SK
    [J]. ACM SIGPLAN NOTICES, 2003, 38 (01) : 97 - 105
  • [10] Staffing a software project: A constraint satisfaction and optimization-based approach
    Barreto, Ahilton
    Barros, Marcio de O.
    Werner, Claudia M. L.
    [J]. COMPUTERS & OPERATIONS RESEARCH, 2008, 35 (10) : 3073 - 3089