Automatic program repair: A systematic literature review
Main Article Content
Abstract
Automatic Program Repair works by generating patches automatically to fix software bugs. This domain is very popular among the software engineering researchers as it helps the developers to mitigate tiresome debugging effort and increase productivity. This domain mostly focuses on how to develop better program repair techniques. However, a systematic literature review is needed to help the researchers for getting specific and scientific overview of this domain. This paper conducts a systematic literature review on 324 papers for analyzing the trendiness and associated factors of this domain. After that, this paper considers 16 papers to thoroughly review and states the evolution of automatic program repair. Hopefully, this study will be a valuable resource for the researchers of this domain.
Metrics
Article Details
This work is licensed under a Creative Commons Attribution 4.0 International License.
References
Asad, M., Ganguly, K. K., & Sakib, K. (2019). Impact Analysis of Syntactic and Semantic Similarities on Patch Prioritization in Automated Program Repair. Proceedings - 2019 IEEE International Conference on Software Maintenance and Evolution, ICSME 2019, September, 328–332. https://doi.org/10.1109/ICSME.2019.00050 DOI: https://doi.org/10.1109/ICSME.2019.00050
Chen, Z., Kommrusch, S. J., Tufano, M., Pouchet, L.-N., Poshyvanyk, D., & Monperrus, M. (2021). SEQUENCER: Sequence-to-Sequence Learning for End-to-End Program Repair. IEEE Transactions on Software Engineering, 47(9), 1–1. https://doi.org/10.1109/TSE.2019.2940179 DOI: https://doi.org/10.1109/TSE.2019.2940179
Jiang, N., Lutellier, T., & Tan, L. (2021). CURE: Code-aware neural machine translation for automatic program repair. Proceedings - International Conference on Software Engineering, x, 1161–1173. https://doi.org/10.1109/ICSE43902.2021.00107 DOI: https://doi.org/10.1109/ICSE43902.2021.00107
Kim, D., Nam, J., Song, J., & Kim, S. (2013). Automatic patch generation learned from human-written patches. 2013 35th International Conference on Software Engineering (ICSE), (2013), 802-811 DOI: https://doi.org/10.1109/ICSE.2013.6606626
Kitchenham, B. A., & Charters, S. (2007). Guidelines for performing Systematic Literature Reviews in Software Engineering. EBSE Technical Report EBSE-2007-01. School of Computer Science and Mathematics, Keele University. January, 1–57.
Kitchenham, B., Pearl Brereton, O., Budgen, D., Turner, M., Bailey, J., & Linkman, S. (2009). Systematic literature reviews in software engineering - A systematic literature review. Information and Software Technology, 51(1), 7–15. https://doi.org/10.1016/j.infsof.2008.09.009 DOI: https://doi.org/10.1016/j.infsof.2008.09.009
Koyuncu, A., Liu, K., Bissyandé, T. F., Kim, D., Klein, J., Monperrus, M., & Le Traon, Y. (2020). FixMiner: Mining relevant fix patterns for automated program repair. Empirical Software Engineering, 25(3), 1980–2024. https://doi.org/10.1007/s10664-019-09780-z DOI: https://doi.org/10.1007/s10664-019-09780-z
Le Goues, C., Nguyen, T., Forrest, S., & Weimer, W. (2011). Genprog: A generic method for automatic software repair. IEEE Transactions on Software Engineering, 38(1), 54–72. DOI: https://doi.org/10.1109/TSE.2011.104
Li, Y., Wang, S., & Nguyen, T. N. (2020). Dlfix: Context-based code transformation learning for automated program repair. Proceedings of the ACM/IEEE 42nd International Conference on Software Engineering, (2020), 602-614. https://doi.org/10.1145/3377811.3380345 DOI: https://doi.org/10.1145/3377811.3380345
Liu, K., Koyuncu, A., Kim, D., & Bissyandé, T. F. (2019a). TBAR: Revisiting template-based automated program repair. ISSTA 2019 - Proceedings of the 28th ACM SIGSOFT International Symposium on Software Testing and Analysis, 43–54. https://doi.org/10.1145/3293882.3330577
Liu, K., Koyuncu, A., Kim, D., & Bissyandé, T. F. (2019b). TBar: Revisiting template-based automated program repair. Proceedings of the 28th ACM SIGSOFT International Symposium on Software Testing and Analysis, 31–42. DOI: https://doi.org/10.1145/3293882.3330577
Lutellier, T., Pang, L., Pham, V. H., Wei, M., & Tan, L. (2019). ENCORE: ensemble learning using convolution neural machine translation for automatic program repair. arXiv preprint arXiv:1906.08691, (2019)
Lutellier, T., Pham, H. V., Pang, L., Li, Y., Wei, M., & Tan, L. (2020). CoCoNuT: Combining context-aware neural translation models using ensemble for program repair. ISSTA 2020 - Proceedings of the 29th ACM SIGSOFT International Symposium on Software Testing and Analysis, 101–114. https://doi.org/10.1145/3395363.3397369 DOI: https://doi.org/10.1145/3395363.3397369
Monperrus, M. (2018). Automatic software repair: A bibliography. ACM Computing Surveys, 51(1), 1–26. https://doi.org/10.1145/3105906 DOI: https://doi.org/10.1145/3105906
Saha, R. K., Lyu, Y., Yoshida, H., & Prasad, M. R. (2017, October). Elixir: Effective object-oriented program repair. In 2017 32nd IEEE/ACM International Conference on Automated Software Engineering (ASE), (pp. 648-659). IEEE. DOI: 10.1109/ASE.2017.8115675 DOI: https://doi.org/10.1109/ASE.2017.8115675
Svensson, N., & Vrabac, D. (2019). Sequence to Sequence Machine Learning for Automatic Program Repair. diva-portal.org.
Vasic, M., Kanade, A., Maniatis, P., Bieber, D., & Singh, R (2019). Neural program repair by jointly learning to localize and repair. arXiv preprint arXiv:1904.01720, (2019). https://doi.org/10.48550/arXiv.1904.01720
Wang, S., Wen, M., Lin, B., Wu, H., Qin, Y., Zou, D., Mao, X., & Jin, H. (2020). Automated Patch Correctness Assessment: How Far are We? Proceedings - 2020 35th IEEE/ACM International Conference on Automated Software Engineering, ASE 2020, 968–980. https://doi.org/10.1145/3324884.3416590 DOI: https://doi.org/10.1145/3324884.3416590
Wen, M., Chen, J., Wu, R., Hao, D., & Cheung, S. C. (2018, May). Context-aware patch generation for better automated program repair. In Proceedings of the 40th international conference on software engineering (pp. 1-11). DOI: https://doi.org/10.1145/3180155.3180233
Ye, H., Gu, J., Martinez, M., Durieux, T., & Monperrus, M. (2021). Automated Classification of Overfitting Patches with Statically Extracted Code Features. IEEE Transactions on Software Engineering, 5589(c), 1–20. https://doi.org/10.1109/TSE.2021.3071750 DOI: https://doi.org/10.1109/TSE.2021.3071750