VFix: Value-Flow-Guided Precise Program Repair for Null Pointer Dereferences

Publication Type:
Conference Proceeding
Proceedings - International Conference on Software Engineering, 2019, 2019-May pp. 512 - 523
Issue Date:
Filename Description Size
Binder1.pdfAccepted Manuscript867.67 kB
Adobe PDF
Full metadata record
© 2019 IEEE. Automated Program Repair (APR) faces a key challenge in efficiently generating correct patches from a potentially infinite solution space. Existing approaches, which attempt to reason about the entire solution space, can be ineffective (by often producing no plausible patches at all) and imprecise (by often producing plausible but incorrect patches). We present VFIX, a new value-flow-guided APR approach, to fix null pointer exception (NPE) bugs by considering a substantially reduced solution space in order to greatly increase the number of correct patches generated. By reasoning about the data and control dependences in the program, VFIX can identify bug-relevant repair statements more accurately and generate more correct repairs than before. VFIX outperforms a set of 8 state-of-the-art APR tools in fixing the NPE bugs in Defects4j in terms of both precision (by correctly fixing 3 times as many bugs as the most precise one and 50% more than all the bugs correctly fixed by these 8 tools altogether) and efficiency (by producing a correct patch in minutes instead of hours).
Please use this identifier to cite or link to this item: