SENov 10, 2021

Towards More Reliable Automated Program Repair by Integrating Static Analysis Techniques

arXiv:2111.05713v14 citations
Originality Incremental advance
AI Analysis

This work addresses a key challenge in automated program repair for software developers, but it is incremental as it builds on existing methods.

The paper tackles the overfitting problem in automated program repair by integrating static analysis techniques to strengthen specifications, resulting in improved patch generation for arithmetic and logical bugs.

A long-standing open challenge for automated program repair is the overfitting problem, which is caused by having insufficient or incomplete specifications to validate whether a generated patch is correct or not. Most available repair systems rely on weak specifications (i.e., specifications that are synthesized from test cases) which limits the quality of generated repairs. To strengthen specifications and improve the quality of repairs, we propose to closer integrate static bug detection techniques with automated program repair. The integration combines automated program repair with static analysis techniques in such a way that bug detection patterns can be synthesized into specifications that the repair system can use. We explore the feasibility of such integration using two types of bugs: arithmetic bugs, such as integer overflow, and logical bugs, such as termination bugs. As part of our analysis, we make several observations that help to improve patch generation for these classes of bugs. Moreover, these observations assist with narrowing down the candidate patch search space, and inferring an effective search order.

Foundations

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

Your Notes