#131 RAP-Gen: Retrieval-Augmented Patch Generation with CodeT5 for Automatic Program Repair


More

  • Michael Lyu
  • Shin Hwei Tan
  • Ting Su
  • Yi Li

Accepted

[PDF] Submission (1.8MB) Feb 1, 2023, 5:40:29 PM AoE · d048343fc91b783b419a2a28bbfd2932322222e139a836885145b433ae1b66ffd048343f

Automatic program repair (APR) is crucial to reduce manual debugging efforts for developers and improve software reliability. While conventional search-based techniques typically rely on heuristic rules or a redundancy assumption to mine fix patterns, recent years have witnessed the surge of deep learning (DL) based approaches to automate the program repair process in a data-driven manner. However, their performance is often limited by a fixed set of parameters to model the highly complex search space of APR. To ease such burden on the parametric models, in this work, we propose a novel Retrieval-Augmented Patch Generation framework (RAP-Gen) by explicitly leveraging relevant fix patterns retrieved from a codebase of previous bug-fix pairs Specifically, we build a hybrid patch retriever to account for both lexical and semantic matching based on the raw source code in a language-agnostic manner, which does not rely on any code-specific features. In addition, we adapt a code-aware language model CodeT5 as our founda tion model to facilitate both patch retrieval and generation tasks in a unified manner. We adopt a stage-wise approach where the patch retriever first retrieves a relevant external bug-fix pair to augment the buggy input for the CodeT5 patch generator, which synthesizes a ranked list of repair patch candidates. Notably, RAP-Gen is a generic APR framework that can flexibly integrate different patch retrievers and generators to repair various types of bugs. We thoroughly evaluate RAP-Gen on three benchmarks in two programming languages, including the TFix benchmark in JavaScript, and Code Refinement and Defects4J benchmarks in Java, where the bug localization information may or may not be provided. Experimental results show that RAP-Gen significantly outperforms previous state-of-the-art (SoTA) approaches on all benchmarks, e.g., boosting the accuracy of T5-large on TFix from 49.70% to 54.15% (repairing 478 more bugs) and repairing 15 more bugs on 818 Defects4J bugs. Further analysis reveals that our patch retriever can search for relevant fix patterns to guide the APR systems.

W. Wang, Y. Wang, S. Joty, S. Hoi

  • 1. Topics: Artificial intelligence and machine learning for software engineering
  • 1. Topics: Program repair
  • 2. Methods: Data Science
Compliance with Double Anonymous Submission Policy
Compliance with Open Science Policy
Compliance with ACM Policies
Compliance with ACM Publications Policy on Research Involving Human Participants and Subjects

To edit this submission, sign in using your email and password.