Program Repair

AI-generated keywords: Automated Program Repair Search-Based Repair Constraint-Based Repair Learning-Based Repair Patch Overfitting

AI-generated Key Points

  • Automated program repair (APR) is a technology that automatically fixes bugs or vulnerabilities in programs.
  • Different techniques used in APR include search-based repair, constraint-based repair, and learning-based repair.
  • One of the main challenges in program repair is patch overfitting which can be addressed by certain techniques.
  • There are different classes of program repair tools and their applications and uses in industry.
  • Evidence for generated patches should be presented to enable developers to select the best candidate efficiently.
  • APR side-products can be helpful even when APR tools cannot generate patches themselves.
  • More research is needed to improve general capabilities of APR and incorporate aspects that enable efficient patch review.
  • User studies are required to identify workflows that can work and be accepted in practice.
  • The interaction between repair tools and software developers will need more focus in the future.
  • Language model-based code generation using transformer-based large-scale language models like Codex and AlphaCode is discussed as an AI-based system for automatically solving programming tasks.
Also access our AI generated: Comprehensive summary, Lay summary, Blog-like article; or ask questions about this paper to our AI assistant.

Authors: Xiang Gao, Yannic Noller, Abhik Roychoudhury

arXiv admin note: text overlap with arXiv:2012.06824 by other authors
License: CC BY 4.0

Abstract: Automated program repair is an emerging technology which consists of a suite of techniques to automatically fix bugs or vulnerabilities in programs. In this paper, we present a comprehensive survey of the state of the art in program repair. We first study the different suite of techniques used including search based repair, constraint based repair and learning based repair. We then discuss one of the main challenges in program repair namely patch overfitting, by distilling a class of techniques which can alleviate patch overfitting. We then discuss classes of program repair tools, applications of program repair as well as uses of program repair in industry. We conclude the survey with a forward looking outlook on future usages of program repair, as well as research opportunities arising from work on code from large language models.

Submitted to arXiv on 23 Nov. 2022

Ask questions about this paper to our AI assistant

You can also chat with multiple papers at once here.

AI assistant instructions?

Results of the summarizing process for the arXiv paper: 2211.12787v1

Automated program repair (APR) is an emerging technology that utilizes a suite of techniques to automatically fix bugs or vulnerabilities in programs. In this comprehensive survey, Xiang Gao, Yannic Noller, and Abhik Roychoudhury explore the state of the art in program repair. They begin by examining the different techniques used in APR including search-based repair, constraint-based repair and learning-based repair. One of the main challenges in program repair is patch overfitting which they address by discussing a class of techniques that can alleviate this issue. The authors also delve into classes of program repair tools and their applications and uses in industry. They emphasize the importance of presenting evidence for generated patches to enable developers to select the best candidate efficiently. Additionally, APR side-products can be helpful even when APR tools cannot generate patches themselves. However, developers are not yet ready to trust APR completely; therefore more research is needed to improve its general capabilities and incorporate aspects that enable efficient patch review. Beyond this survey more user studies are required to identify workflows that can work and be accepted in practice. The interaction between repair tools and software developers will need more focus in the future. The authors also discuss language model-based code generation as an AI-based system for automatically solving programming tasks using transformer-based large-scale language models like Codex and AlphaCode. Overall this survey provides valuable insights into the current state of automated program repair while highlighting areas for improvement and future research opportunities.
Created on 12 Jun. 2023

Assess the quality of the AI-generated content by voting

Score: 0

Why do we need votes?

Votes are used to determine whether we need to re-run our summarizing tools. If the count reaches -10, our tools can be restarted.

The previous summary was created more than a year ago and can be re-run (if necessary) by clicking on the Run button below.

Similar papers summarized with our AI tools

Navigate through even more similar papers through a

tree representation

Look for similar papers (in beta version)

By clicking on the button above, our algorithm will scan all papers in our database to find the closest based on the contents of the full papers and not just on metadata. Please note that it only works for papers that we have generated summaries for and you can rerun it from time to time to get a more accurate result while our database grows.

Disclaimer: The AI-based summarization tool and virtual assistant provided on this website may not always provide accurate and complete summaries or responses. We encourage you to carefully review and evaluate the generated content to ensure its quality and relevance to your needs.