Program repair involves identifying and fixing issues in a program's source code, encompassing error correction, performance improvement, code optimization, and even addressing security problems. However, this process can address issues beyond errors, such as code readability, elimination of duplicated code, and more. Generally, code repair activities are carried out during the software construction and maintenance process. This work presents an analysis of Machine Learning (ML) techniques used in automatic program repair (APR) processes to identify the benefits and challenges of their use. For this purpose, guidelines for conducting systematic literature reviews in software engineering were followed. Four databases were explored, yielding a total of 21 studies. It was found that the most frequently addressed automatic program repair approaches using ML techniques involve syntax, semantic, and logical errors; security aspects have been addressed to a lesser extent. The ML techniques used for this purpose include decision trees and deep learning techniques such as convolutional and recurrent neural networks, long short-term memory models, and others combined with code languages models. Finally, according to the analysis, the main advantage of using these techniques is their ability to handle large volumes of data and learn from their environment. However, in many cases, manual verification of the solutions generated by these techniques is still necessary.

错误:搜索内容不能为空,请输入英文关键词
错误:关键词超出字数限制,请精简
高级检索

Machine Learning Techniques for Automatic Program Repair: A Systematic Literature Mapping

  • Saúl Domínguez-Isidro,
  • Ángel J. Sánchez-García,
  • Axel Jordano Morales-Utrera,
  • Xavier Limón

摘要

Program repair involves identifying and fixing issues in a program's source code, encompassing error correction, performance improvement, code optimization, and even addressing security problems. However, this process can address issues beyond errors, such as code readability, elimination of duplicated code, and more. Generally, code repair activities are carried out during the software construction and maintenance process. This work presents an analysis of Machine Learning (ML) techniques used in automatic program repair (APR) processes to identify the benefits and challenges of their use. For this purpose, guidelines for conducting systematic literature reviews in software engineering were followed. Four databases were explored, yielding a total of 21 studies. It was found that the most frequently addressed automatic program repair approaches using ML techniques involve syntax, semantic, and logical errors; security aspects have been addressed to a lesser extent. The ML techniques used for this purpose include decision trees and deep learning techniques such as convolutional and recurrent neural networks, long short-term memory models, and others combined with code languages models. Finally, according to the analysis, the main advantage of using these techniques is their ability to handle large volumes of data and learn from their environment. However, in many cases, manual verification of the solutions generated by these techniques is still necessary.