SEMar 20, 2019

TBar: Revisiting Template-based Automated Program Repair

arXiv:1903.08409v2413 citations
AI Analysis

This work addresses the problem of improving automated program repair for software developers by demonstrating that template-based methods can achieve state-of-the-art results, though it is incremental as it builds on existing fix patterns.

The authors revisited template-based automated program repair (APR) by building TBar, a tool that systematically applies known fix patterns to program bugs, and evaluated it on the Defects4J benchmark. They found that with perfect fault localization, TBar correctly or plausibly fixes 74/101 bugs, and in a standard assessment pipeline, it correctly fixes 43 bugs, setting a new performance record in the literature.

We revisit the performance of template-based APR to build comprehensive knowledge about the effectiveness of fix patterns, and to highlight the importance of complementary steps such as fault localization or donor code retrieval. To that end, we first investigate the literature to collect, summarize and label recurrently-used fix patterns. Based on the investigation, we build TBar, a straightforward APR tool that systematically attempts to apply these fix patterns to program bugs. We thoroughly evaluate TBar on the Defects4J benchmark. In particular, we assess the actual qualitative and quantitative diversity of fix patterns, as well as their effectiveness in yielding plausible or correct patches. Eventually, we find that, assuming a perfect fault localization, TBar correctly/plausibly fixes 74/101 bugs. Replicating a standard and practical pipeline of APR assessment, we demonstrate that TBar correctly fixes 43 bugs from Defects4J, an unprecedented performance in the literature (including all approaches, i.e., template-based, stochastic mutation-based or synthesis-based APR).

Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes