🔥🔥🔥[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) |
