• DocumentCode
    1994389
  • Title

    Automatically finding patches using genetic programming

  • Author

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

  • Author_Institution
    Univ. of Virginia, Charlottesville, VA
  • fYear
    2009
  • fDate
    16-24 May 2009
  • Firstpage
    364
  • Lastpage
    374
  • Abstract
    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 are 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.
  • Keywords
    genetic algorithms; program debugging; software engineering; C programs; automatic program repair; delta debugging; genetic programming; off-the-shelf legacy applications; patches; program fault discovery; software engineering; structural differencing algorithms; Biological information theory; Biology computing; Computer bugs; Costs; Debugging; Formal specifications; Genetic mutations; Genetic programming; Software maintenance; Testing;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Software Engineering, 2009. ICSE 2009. IEEE 31st International Conference on
  • Conference_Location
    Vancouver, BC
  • ISSN
    0270-5257
  • Print_ISBN
    978-1-4244-3453-4
  • Type

    conf

  • DOI
    10.1109/ICSE.2009.5070536
  • Filename
    5070536