On Reliability of Patch Correctness Assessment
Not on the map. Why?
Abstract (arXiv)
Current state-of-the-art automatic software repair (ASR) techniques rely heavily on incomplete specifications, e.g., test suites, to generate repairs. This, however, may render ASR tools to generate incorrect repairs that do not generalize. To assess patch correctness, researchers have been following two typical ways separately: (1) Automated annotation, wherein patches are automatically labeled by an independent test suite (ITS) - a patch passing the ITS is regarded as correct or generalizable, and incorrect otherwise, (2) Author annotation, wherein authors of ASR techniques annotate correctness labels of patches generated by their and competing tools by themselves. While automated annotation fails to prove that a patch is actually correct, author annotation is prone to subjectivity. This concern has caused an on-going debate on appropriate ways to assess the effectiveness of numerous ASR techniques proposed recently. To address this concern, we propose to assess reliability of author and automated annotations on patch correctness assessment. We do this by first constructing a gold set of correctness labels for 189 randomly selected patches generated by 8 state-of-the-art ASR techniques through a user study involving 35 professional developers as independent annotators. By measuring inter-rater agreement as a proxy for annotation quality - as commonly done in the literature - we demonstrate that our constructed gold set is on par with other high-quality gold sets. We then compare labels generated by author and automated annotations with this gold set to assess reliability of the patch assessment methodologies. We subsequently report several findings and highlight implications for future studies.
Key facts. Cited by 9 papers in the map (data through 14 Oct 2026). First posted on arXiv 15 May 2018.
Builds on
No reference list yet.
Built on by
Citing papers per year: 2021: 2; 2022: 0; 2023: 4; 2024: 1; 2025: 1; 2026: 1.
9 papers.
- 2023Towards Generating Functionally Correct Code Edits from Natural Language Issue Descriptionscited by 14
- 2023Invalidator: Automated Patch Correctness Assessment via Semantic and Syntactic Reasoningcited by 11
- 2023RunBugRun -- An Executable Dataset for Automated Program Repaircited by 11
- 2024Towards Reliable Evaluation of Neural Program Repair with Natural Robustness Testingcited by 5
- 2021Predicting Patch Correctness Based on the Similarity of Failing Test Casescited by 4
- 2023Multi-Granularity Detector for Vulnerability Fixescited by 4
- 2025Codehacks: A Dataset of Adversarial Tests for Competitive Programming Problems Obtained from Codeforcescited by 2
- 2021Exploring Plausible Patches Using Source Code Embeddings in JavaScriptcited by 0
- 2026P2Patch: Exploit-Guided Vulnerability Repaircited by 0
- 2026P2Patch: Exploit-Guided Vulnerability Repair14 Oct 2026
- 2025Codehacks: A Dataset of Adversarial Tests for Competitive Programming Problems Obtained from Codeforces30 Mar 2025
- 2024Towards Reliable Evaluation of Neural Program Repair with Natural Robustness Testing19 Feb 2024
- 2023Multi-Granularity Detector for Vulnerability Fixes23 May 2023
- 2023Towards Generating Functionally Correct Code Edits from Natural Language Issue Descriptions7 Apr 2023
- 2023RunBugRun -- An Executable Dataset for Automated Program Repair3 Apr 2023
- 2023Invalidator: Automated Patch Correctness Assessment via Semantic and Syntactic Reasoning3 Jan 2023
- 2021Predicting Patch Correctness Based on the Similarity of Failing Test Cases28 Jul 2021
- 2021Exploring Plausible Patches Using Source Code Embeddings in JavaScript31 Mar 2021