Towards More Reliable Automated Program Repair by Integrating Static Analysis Techniques
Omar I. Al-Bataineh, Anastasiia Grishina, Leon Moonen

TL;DR
This paper proposes integrating static analysis techniques with automated program repair to create stronger specifications, thereby improving repair quality and reducing search space for bugs like overflows and termination issues.
Contribution
It introduces a novel approach combining static bug detection with repair systems, enhancing specification strength and guiding patch generation for specific bug classes.
Findings
Effective integration of static analysis improves repair accuracy.
Static analysis narrows down candidate patches significantly.
Observations aid in prioritizing patch search order.
Abstract
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…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Testing and Debugging Techniques · Software Reliability and Analysis Research · Software System Performance and Reliability
