🔥🔥🔥[2024-05-03] We have released a new paper about LLM4APR, A Systematic Literature Review on Large Language Models for Automated Program Repair. Please refer to and
A collection of academic publications, methodology, metrics and datasets on the subject of automated program repair enhanced with deep/machine learning techniques.
We welcome all researchers to contribute to this repository and further contribute to the knowledge of the learning-based APR field. Please feel free to contact us if you have any related references by Github issue or pull request.
Please read and cite our paper:
@article{zhang2023survey,
title = {A Survey of Learning-Based Automated Program Repair},
author = {Zhang, Quanjun and Fang, Chunrong and Ma, Yuxiang and Sun, Weisong and Chen, Zhenyu},
journal={ACM Transactions on Software Engineering and Methodology},
volume={33},
number={2},
pages={1--69},
year={2023},
publisher={ACM New York, NY}
}
- Some datasets are named after the model or author because these datasets do not have names
Dataset | Language | #Items | Test Case | #Papers Used |
---|---|---|---|---|
Bears | Java | 251 | yes | 2+ papers |
BFP medium | Java | 65454 | no | 9+ papers |
BFP samll | Java | 58350 | no | 9+ papers |
BigFix | Java | 1.824 M | no | 2+ papers |
Bugs2Fix | Java | 92849 | no | 2+ papers |
Bugs.jar | Java | 1158 | yes | 3+ papers |
Code-Change-Data | Java | 44372 | no | 1+ papers |
CodeXGlue | Java | 122 K | no | 1+ papers |
CodRep | Java | 58069 | no | 2+ papers |
CPatMiner | Java | 44 K | no | 1+ papers |
DeepRepair | Java | 374 | no | 1+ papers |
Defects4J | Java | 835 | yes | 11+ papers |
Function-SStuBs4J | Java | 21047 | no | 1+ papers |
IntroClassJava | Java | 998 | yes | 2+ papers |
Java-med | Java | 7454 | no | 1+ papers |
ManySStuBs4J large | Java | 63923 | no | 1+ papers |
ManySStuBs4J small | Java | 10231 | no | 2+ papers |
MegaDiff | Java | 663029 | no | 1+ papers |
Ponta | Java | 624 | no | 1+ papers |
Pull-Request-Data | Java | 10666 | no | 2+ papers |
Ratchet | Java | 35 K | no | 1+ papers |
Recoder | Java | 103585 | no | 1+ papers |
TRANSFER | Java | 408091 | no | 1+ papers |
Mesbah | Java | 4.8 M | no | 1+ papers |
AOJ | C | 2482 | no | 1+ papers |
Big-Vul | C | 3745 | no | 1+ papers |
Code4Bench | C | 25 K | yes | 1+ papers |
CodeHunt | C | 195 K | yes | 1+ papers |
CVEFixes | C | 8482 | 2+ papers | |
DeepFix | C | 6971 | yes | 6+ papers |
ManyBugs | C | 185 | yes | 3+ papers |
Prophet | C | 69 | yes | 2+ papers |
Prutor | C | 6971 | yes | 2+ papers |
BugAID | JS | 105133 | no | 4+ papers |
BugsJS | JS | 453 | yes | 1+ papers |
HOPPITY | JS | 363 K | no | 1+ papers |
KATANA | JS | 114 K | no | 1+ papers |
REPTORY | JS | 407 K | no | 1+ papers |
TFix | JS | 100 K | no | 1+ papers |
ETH Py150 | Python | 150 K | no | 3+ papers |
GitHub-Python | Python | 3 M | no | 1+ papers |
Mester | Python | 13 K | no | 1+ papers |
PyPIBug | Python | 2374 | no | 2+ papers |
SSB-9M | Python | 9 M | no | 1+ papers |
VUDENC | Python | 10 K | no | 1+ papers |
Chhatbar | Python | 286 | yes | 1+ papers |
SPoC | C++ | 18356 | yes | 1+ papers |
QuixBugs | Java,Python | 40 | yes | 11+ papers |
DeepDebug | Java,Python | 523 | no | 2+ papers |
MSR20 | C,C++ | 188K | no | 1+ papers |
CoCoNut | Java,C,JS,Python | 24 M | yes | 4+ papers |
CodeFlaw | C,Python | 3902 | yes | 3+ papers |
ENCORE | Java,C++,JS,Python | 9.2 M | no | 1+ papers |
Metrics | Formula/Description |
---|---|
Accuracy | Accuracy measures the percentage of candidate patches in which the sequence predicted by the model equals the ground truth |
BLEU | BLUE score measures how similar the predicted candidate patch and the ground truth is |
Compilable Patch | Such a candidate patch makes the patched buggy program compile successfully |
Plausible Patch | Such a compilable patch fixes the buggy functionality without harming existing functionality (i.e., passing all available test suites) |
Correct Patch | Such a plausible patch is semantically or syntactically equivalent to the developer patch (i.e., generalizing the potential test suite) |