• DocumentCode
    1341115
  • Title

    GenProg: A Generic Method for Automatic Software Repair

  • Author

    Goues, Claire Le ; Nguyen, ThanhVu ; Forrest, Stephanie ; Weimer, Westley

  • Author_Institution
    Dept. of Comput. Sci., Univ. of Virginia, Charlottesville, VA, USA
  • Volume
    38
  • Issue
    1
  • fYear
    2012
  • Firstpage
    54
  • Lastpage
    72
  • Abstract
    This paper describes GenProg, an automated method for repairing defects in off-the-shelf, legacy programs without formal specifications, program annotations, or special coding practices. GenProg uses an extended form of genetic programming to evolve a program variant that retains required functionality but is not susceptible to a given defect, using existing test suites to encode both the defect and required functionality. Structural differencing algorithms and delta debugging reduce the difference between this variant and the original program to a minimal repair. We describe the algorithm and report experimental results of its success on 16 programs totaling 1.25 M lines of C code and 120K lines of module code, spanning eight classes of defects, in 357 seconds, on average. We analyze the generated repairs qualitatively and quantitatively to demonstrate that the process efficiently produces evolved programs that repair the defect, are not fragile input memorizations, and do not lead to serious degradation in functionality.
  • Keywords
    formal specification; genetic algorithms; software maintenance; GenProg; automatic software repair; defects repair; formal specifications; genetic programming; legacy programs; program annotations; special coding practices; Automatic programming; Computer bugs; Debugging; Encoding; Maintenance engineering; Syntactics; Automatic programming; corrections; testing and debugging.;
  • fLanguage
    English
  • Journal_Title
    Software Engineering, IEEE Transactions on
  • Publisher
    ieee
  • ISSN
    0098-5589
  • Type

    jour

  • DOI
    10.1109/TSE.2011.104
  • Filename
    6035728