Sharmin Moosavi, Mojtaba Vahidi-Asl, Hassan Haghighi, Mohammad Rezaalipour
{"title":"医生代码:基于机器学习的程序修复方法","authors":"Sharmin Moosavi, Mojtaba Vahidi-Asl, Hassan Haghighi, Mohammad Rezaalipour","doi":"10.24200/sci.2023.54718.3884","DOIUrl":null,"url":null,"abstract":"To address the problems of automatic repair techniques, we present Doctor Code, a new APR technique that chooses repair operators by systematically learning from the features of the most common bugs in different programs, using machine learning. The wise selection of repair operators reduces the number of candidate patches. We compare our technique against Mutation repair, a test suite-based APR technique, using the Siemens suite. The experiment results indicate that our technique can fix 41 bugs while the baseline only repairs 22. In addition, Doctor Code can produce patches that do not exist in the search space of the three test suite-based techniques called SPR, Prophet, and SemFix. We also experiment with Doctor Code utilizing three buggy versions of a program called Space (9K LOC), to indicate its capability of repairing large-sized programs. In addition, we compare Doctor Code against 7 state-of-the-art APR tools like Elixir, using the Defects4j dataset. The experiment results indicate that our technique outperforms the other tools regarding the number of fixed bugs and overfitted patches.Comparing Doctor Code with RAPR as the baseline indicates that using machine learning reduces the number of overfitted patches and the time of patch production by 33.33% and 82.68%, respectively.","PeriodicalId":21605,"journal":{"name":"Scientia Iranica","volume":null,"pages":null},"PeriodicalIF":1.4000,"publicationDate":"2023-08-08","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":"{\"title\":\"Doctor Code: A Machine Learning-Based Approach to Program Repair\",\"authors\":\"Sharmin Moosavi, Mojtaba Vahidi-Asl, Hassan Haghighi, Mohammad Rezaalipour\",\"doi\":\"10.24200/sci.2023.54718.3884\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"To address the problems of automatic repair techniques, we present Doctor Code, a new APR technique that chooses repair operators by systematically learning from the features of the most common bugs in different programs, using machine learning. The wise selection of repair operators reduces the number of candidate patches. We compare our technique against Mutation repair, a test suite-based APR technique, using the Siemens suite. The experiment results indicate that our technique can fix 41 bugs while the baseline only repairs 22. In addition, Doctor Code can produce patches that do not exist in the search space of the three test suite-based techniques called SPR, Prophet, and SemFix. We also experiment with Doctor Code utilizing three buggy versions of a program called Space (9K LOC), to indicate its capability of repairing large-sized programs. In addition, we compare Doctor Code against 7 state-of-the-art APR tools like Elixir, using the Defects4j dataset. The experiment results indicate that our technique outperforms the other tools regarding the number of fixed bugs and overfitted patches.Comparing Doctor Code with RAPR as the baseline indicates that using machine learning reduces the number of overfitted patches and the time of patch production by 33.33% and 82.68%, respectively.\",\"PeriodicalId\":21605,\"journal\":{\"name\":\"Scientia Iranica\",\"volume\":null,\"pages\":null},\"PeriodicalIF\":1.4000,\"publicationDate\":\"2023-08-08\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"0\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"Scientia Iranica\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.24200/sci.2023.54718.3884\",\"RegionNum\":4,\"RegionCategory\":\"工程技术\",\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"Q2\",\"JCRName\":\"ENGINEERING, MULTIDISCIPLINARY\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"Scientia Iranica","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.24200/sci.2023.54718.3884","RegionNum":4,"RegionCategory":"工程技术","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"Q2","JCRName":"ENGINEERING, MULTIDISCIPLINARY","Score":null,"Total":0}
Doctor Code: A Machine Learning-Based Approach to Program Repair
To address the problems of automatic repair techniques, we present Doctor Code, a new APR technique that chooses repair operators by systematically learning from the features of the most common bugs in different programs, using machine learning. The wise selection of repair operators reduces the number of candidate patches. We compare our technique against Mutation repair, a test suite-based APR technique, using the Siemens suite. The experiment results indicate that our technique can fix 41 bugs while the baseline only repairs 22. In addition, Doctor Code can produce patches that do not exist in the search space of the three test suite-based techniques called SPR, Prophet, and SemFix. We also experiment with Doctor Code utilizing three buggy versions of a program called Space (9K LOC), to indicate its capability of repairing large-sized programs. In addition, we compare Doctor Code against 7 state-of-the-art APR tools like Elixir, using the Defects4j dataset. The experiment results indicate that our technique outperforms the other tools regarding the number of fixed bugs and overfitted patches.Comparing Doctor Code with RAPR as the baseline indicates that using machine learning reduces the number of overfitted patches and the time of patch production by 33.33% and 82.68%, respectively.
期刊介绍:
The objectives of Scientia Iranica are two-fold. The first is to provide a forum for the presentation of original works by scientists and engineers from around the world. The second is to open an effective channel to enhance the level of communication between scientists and engineers and the exchange of state-of-the-art research and ideas.
The scope of the journal is broad and multidisciplinary in technical sciences and engineering. It encompasses theoretical and experimental research. Specific areas include but not limited to chemistry, chemical engineering, civil engineering, control and computer engineering, electrical engineering, material, manufacturing and industrial management, mathematics, mechanical engineering, nuclear engineering, petroleum engineering, physics, nanotechnology.