A Novel Fitness Function for Automated Program Repair Based on Source Code Checkpoints

被引:15
作者
de Souza, Eduardo Faria [1 ]
Le Goues, Claire [2 ]
Camilo, Celso Goncalves [1 ]
机构
[1] Univ Fed Goias, Inst Informat, Goiania, Go, Brazil
[2] Carnegie Mellon Univ, Sch Comp Sci, Pittsburgh, PA 15213 USA
来源
GECCO'18: PROCEEDINGS OF THE 2018 GENETIC AND EVOLUTIONARY COMPUTATION CONFERENCE | 2018年
关键词
genetic programming; software engineering; program repair; fitness function;
D O I
10.1145/3205455.3205566
中图分类号
TP18 [人工智能理论];
学科分类号
081104 ; 0812 ; 0835 ; 1405 ;
摘要
Software maintenance, especially bug fixing, is one of the most expensive problems in software practice. Bugs have global impact in terms of cost and time, and they also reflect negatively on a company's brand. GenProg is a method for Automated Program Repair based on an evolutionary approach. It aims to generate bug repairs without human intervention or a need for special instrumentation or source code annotations. Its canonical fitness function evaluates each variant as the weighted sum of the test cases that a modified program passes. However, it evaluates distinct individuals with the same fitness score (plateaus). We propose a fitness function that minimizes these plateaus using dynamic analysis to increase the granularity of the fitness information that can be gleaned from test case execution, increasing the diversity of the population, the number of repairs found (expressiveness), and the efficiency of the search. We evaluate the proposed fitness functions on two standard benchmarks for Automated Program Repair: IntroClass and ManyBugs. We find that our proposed fitness function minimizes plateaus, increases expressiveness, and the efficiency of the search.
引用
收藏
页码:1443 / 1450
页数:8
相关论文
共 28 条
  • [1] Abreu R, 2006, 12TH PACIFIC RIM INTERNATIONAL SYMPOSIUM ON DEPENDABLE COMPUTING, PROCEEDINGS, P39
  • [2] [Anonymous], 2018, COMM VULN EXP CVE
  • [3] Banzhaf Wolfgang, 1998, Genetic programming: an introduction on the automatic evolution of computer programs and its applications
  • [4] DeMarco Favio, 2014, P 6 INT WORKSHOP CON, P30
  • [5] Fast E., 2010, Conference on Genetic and Evolutionary Computation, P965
  • [6] Forrest Stephanie, 2009, P 11 ANN C GEN EV CO, P947
  • [7] Kim D, 2013, PROCEEDINGS OF THE 35TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE 2013), P802, DOI 10.1109/ICSE.2013.6606626
  • [8] GenProg: A Generic Method for Automatic Software Repair
    Le Goues, Claire
    ThanhVu Nguyen
    Forrest, Stephanie
    Weimer, Westley
    [J]. IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2012, 38 (01) : 54 - 72
  • [9] The ManyBugs and IntroClass Benchmarks for Automated Repair of C Programs
    Le Goues, Claire
    Holtschulte, Neal
    Smith, Edward K.
    Brun, Yuriy
    Devanbu, Premkumar
    Forrest, Stephanie
    Weimer, Westley
    [J]. IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2015, 41 (12) : 1236 - 1256
  • [10] Current challenges in automatic software repair
    Le Goues, Claire
    Forrest, Stephanie
    Weimer, Westley
    [J]. SOFTWARE QUALITY JOURNAL, 2013, 21 (03) : 421 - 443