TY - GEN
T1 - A closer look at real-world patches
AU - Liu, Kui
AU - Kim, Dongsun
AU - Koyuncu, Anil
AU - Li, Li
AU - Bissyande, Tegawende F.
AU - Le Traon, Yves
N1 - Publisher Copyright:
© 2018 IEEE.
PY - 2018/11/9
Y1 - 2018/11/9
N2 - Bug fixing is a time-consuming and tedious task. To reduce the manual efforts in bug fixing, researchers have presented automated approaches to software repair. Unfortunately, recent studies have shown that the state-of-The-Art techniques in automated repair tend to generate patches only for a small number of bugs even with quality issues (e.g., incorrect behavior and nonsensical changes). To improve automated program repair (APR) techniques, the community should deepen its knowledge on repair actions from real-world patches since most of the techniques rely on patches written by human developers. Previous investigations on real-world patches are limited to statement level that is not sufficiently fine-grained to build this knowledge. In this work, we contribute to building this knowledge via a systematic and fine-grained study of 16,450 bug fix commits from seven Java open-source projects. We find that there are opportunities for APR techniques to improve their effectiveness by looking at code elements that have not yet been investigated. We also discuss nine insights into tuning automated repair tools. For example, a small number of statement and expression types are recurrently impacted by real-world patches, and expression-level granularity could reduce search space of finding fix ingredients, where previous studies never explored.
AB - Bug fixing is a time-consuming and tedious task. To reduce the manual efforts in bug fixing, researchers have presented automated approaches to software repair. Unfortunately, recent studies have shown that the state-of-The-Art techniques in automated repair tend to generate patches only for a small number of bugs even with quality issues (e.g., incorrect behavior and nonsensical changes). To improve automated program repair (APR) techniques, the community should deepen its knowledge on repair actions from real-world patches since most of the techniques rely on patches written by human developers. Previous investigations on real-world patches are limited to statement level that is not sufficiently fine-grained to build this knowledge. In this work, we contribute to building this knowledge via a systematic and fine-grained study of 16,450 bug fix commits from seven Java open-source projects. We find that there are opportunities for APR techniques to improve their effectiveness by looking at code elements that have not yet been investigated. We also discuss nine insights into tuning automated repair tools. For example, a small number of statement and expression types are recurrently impacted by real-world patches, and expression-level granularity could reduce search space of finding fix ingredients, where previous studies never explored.
KW - Abstract syntax tree
KW - Fix pattern
KW - Program patch
UR - http://www.scopus.com/inward/record.url?scp=85058333823&partnerID=8YFLogxK
U2 - 10.1109/ICSME.2018.00037
DO - 10.1109/ICSME.2018.00037
M3 - Conference contribution
AN - SCOPUS:85058333823
T3 - Proceedings - 2018 IEEE International Conference on Software Maintenance and Evolution, ICSME 2018
SP - 275
EP - 286
BT - Proceedings - 2018 IEEE International Conference on Software Maintenance and Evolution, ICSME 2018
PB - Institute of Electrical and Electronics Engineers Inc.
T2 - 34th IEEE International Conference on Software Maintenance and Evolution, ICSME 2018
Y2 - 23 September 2018 through 29 September 2018
ER -