SEDec 18, 2018

AVATAR : Fixing Semantic Bugs with Fix Patterns of Static Analysis Violations

arXiv:1812.07270v3195 citations
Originality Incremental advance
AI Analysis

This addresses the problem of improving automated program repair efficiency for software developers by leveraging existing static analysis tools, though it is incremental as it builds on prior pattern-based approaches.

The paper tackles the challenge of collecting reliable bug fixes for automated program repair by proposing AVATAR, a system that uses fix patterns from static analysis violations as ingredients for patch generation, achieving correct patches for 34 out of 39 bugs on the Defects4J benchmark with perfect fault localization.

Fix pattern-based patch generation is a promising direction in Automated Program Repair (APR). Notably, it has been demonstrated to produce more acceptable and correct patches than the patches obtained with mutation operators through genetic programming. The performance of pattern-based APR systems, however, depends on the fix ingredients mined from fix changes in development histories. Unfortunately, collecting a reliable set of bug fixes in repositories can be challenging. In this paper, we propose to investigate the possibility in an APR scenario of leveraging code changes that address violations by static bug detection tools. To that end, we build the AVATAR APR system, which exploits fix patterns of static analysis violations as ingredients for patch generation. Evaluated on the Defects4J benchmark, we show that, assuming a perfect localization of faults, AVATAR can generate correct patches to fix 34/39 bugs. We further find that AVATAR yields performance metrics that are comparable to that of the closely-related approaches in the literature. While AVATAR outperforms many of the state-of-the-art pattern-based APR systems, it is mostly complementary to current approaches. Overall, our study highlights the relevance of static bug finding tools as indirect contributors of fix ingredients for addressing code defects identified with functional test cases.

Code Implementations1 repo
Foundations

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

Your Notes