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

**Authors:** Kui Liu, Anil Koyuncu, Dongsun Kim, Tegawend\'e F. Bisyand\'e

arXiv: 1812.07270 · 2019-02-18

## TL;DR

This paper introduces AVATAR, an automated program repair system that uses fix patterns from static analysis violations to generate patches, demonstrating high effectiveness on the Defects4J benchmark and complementing existing approaches.

## Contribution

AVATAR leverages static analysis violation fix patterns for patch generation, expanding the sources of fix ingredients in pattern-based APR systems.

## Key findings

- AVATAR can fix 34 out of 39 bugs assuming perfect fault localization.
- Performance of AVATAR is comparable to existing pattern-based APR approaches.
- AVATAR is mostly complementary to current state-of-the-art APR systems.

## Abstract

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.

## Full text

_Full body text omitted from this summary view._ Fetch the complete paper as Markdown: https://tomesphere.com/paper/1812.07270/full.md

## Figures

17 figures with captions in the complete paper: https://tomesphere.com/paper/1812.07270/full.md

## References

69 references — full list in the complete paper: https://tomesphere.com/paper/1812.07270/full.md

---
Source: https://tomesphere.com/paper/1812.07270