@inproceedings{ed59190b61d4425c8f946c0d5e0252a0,
title = "PraPR: Practical Program Repair via Bytecode Mutation",
abstract = "Automated program repair (APR) is one of the recent advances in automated software engineering aiming for reducing the burden of debugging by suggesting high-quality patches that either directly fix the bugs, or help the programmers in the course of manual debugging. We believe scalability, applicability, and accurate patch validation are the main design objectives for a practical APR technique. In this paper, we present PraPR, our implementation of a practical APR technique that operates at the level of JVM bytecode. We discuss design decisions made in the development of PraPR, and argue that the technique is a viable baseline toward attaining aforementioned objectives. Our experimental results show that: (1) PraPR can fix more bugs than state-of-the-art APR techniques and can be over 10X faster, (2) state-of-the-art APR techniques suffer from dataset overfitting, while the simplistic template-based PraPR performs more consistently on different datasets, and (3) PraPR can fix bugs for other JVM languages, such as Kotlin. PraPR is publicly available at https://github.com/prapr/prapr.",
keywords = "JVM Bytecode, Mutation Testing, Program Repair",
author = "Ali Ghanbari and Lingming Zhang",
note = "Publisher Copyright: {\textcopyright} 2019 IEEE.; 34th IEEE/ACM International Conference on Automated Software Engineering, ASE 2019 ; Conference date: 10-11-2019 Through 15-11-2019",
year = "2019",
month = nov,
doi = "10.1109/ASE.2019.00116",
language = "English (US)",
series = "Proceedings - 2019 34th IEEE/ACM International Conference on Automated Software Engineering, ASE 2019",
publisher = "Institute of Electrical and Electronics Engineers Inc.",
pages = "1118--1121",
booktitle = "Proceedings - 2019 34th IEEE/ACM International Conference on Automated Software Engineering, ASE 2019",
address = "United States",
}