On the Effectiveness of Code Representation in Deep Learning-Based Automated Patch Correctness Assessment
Quanjun Zhang, Haichuan Hu, Chunrong Fang, Ye Shang, Tao Zheng, Zhenyu Chen, Yun Yang, Liang Xiao

TL;DR
This study systematically evaluates various code representations for predicting patch correctness in automated program repair, finding graph-based methods outperform others and improve over existing approaches.
Contribution
First comprehensive analysis of code representations in patch correctness prediction, demonstrating the superiority of graph-based approaches and their integration benefits.
Findings
Graph-based code representations outperform others with 82.6% accuracy.
Graph representations can match or surpass previous APCA approaches.
Integrating sequence-based with heuristic representations improves performance by 13.5%.
Abstract
Automated program repair (APR) attempts to generate correct patches and has drawn wide attention from both academia and industry in the past decades. However, APR is continuously struggling with the patch overfitting issue due to the weak test suites. Thus, to address the overfitting problem, the community has proposed an increasing number of approaches to predict patch correctness (APCA approaches). Among them, locally deep learning approaches aimed at automatically match designs has been emerging strongly. Such approaches typically encode input code snippets into well-designed representations and build a binary model for correctness prediction. Despite being fundamental in reason about patch correctness, code representation has not been systematically investigated. To bridge this gap, we perform the first extensive study to evaluate the performance of different code representations on…
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.
