Elixir: Effective object-oriented program repair
Ripon K. Saha, Yingjun Lyu, Hiroaki Yoshida, Mukul R. Prasad

TL;DR
ELIXIR is a generate-and-validate approach for object-oriented program repair that leverages method calls and machine learning to improve repair effectiveness, significantly increasing correct bug fixes over state-of-the-art methods.
Contribution
This paper introduces ELIXIR, a novel repair technique that uses method calls extensively and employs a machine-learned model to rank repairs, enhancing bug fixing success.
Findings
Increased correct repairs in Defects4J by 85%.
Improved repairs in Bugs.jar by 57%.
Outperformed existing state-of-the-art repair techniques.
Abstract
This work is motivated by the pervasive use of method invocations in object-oriented (OO) programs, and indeed their prevalence in patches of OO-program bugs. We propose a generate-and-validate repair technique, called ELIXIR designed to be able to generate such patches. ELIXIR aggressively uses method calls, on par with local variables, fields, or constants, to construct more expressive repair-expressions, that go into synthesizing patches. The ensuing enlargement of the repair space, on account of the wider use of method calls, is effectively tackled by using a machine-learnt model to rank concrete repairs. The machine-learnt model relies on four features derived from the program context, i.e., the code surrounding the potential repair location, and the bug report. We implement ELIXIR and evaluate it on two datasets, the popular Defects4J dataset and a new dataset Bugs.jar created by…
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.
