[1]韩俊璇、孙伟峰、赵瑞莲、王微微.基于模板挖掘的程序自动修复方法[J].郑州大学学报(工学版),2021,42(02):62-67.[doi:10.13705/j.issn.1671-6833.2021.02.009]
 HAN Junxuan,SUN Weifeng,ZHAO Ruilian,et al.Automatic Program Repair Method Based on Template Mining[J].Journal of Zhengzhou University (Engineering Science),2021,42(02):62-67.[doi:10.13705/j.issn.1671-6833.2021.02.009]
点击复制

基于模板挖掘的程序自动修复方法()
分享到:

《郑州大学学报(工学版)》[ISSN:1671-6833/CN:41-1339/T]

卷:
42
期数:
2021年02期
页码:
62-67
栏目:
出版日期:
2021-04-12

文章信息/Info

Title:
Automatic Program Repair Method Based on Template Mining
作者:
韩俊璇、孙伟峰、赵瑞莲、王微微
北京化工大学信息科学与技术学院;
Author(s):
HAN Junxuan SUN Weifeng ZHAO Ruilian WANG Weiwei
School of Information Science and Engineering, Beijing University of Chemical Technology, Beijing 100029, China
关键词:
Keywords:
automatic repair template program defect mining
DOI:
10.13705/j.issn.1671-6833.2021.02.009
文献标志码:
A
摘要:
基于模板挖掘的程序自动修复是近年来的研究热点,然而,由于修复信息存在一定的干扰,导致挖掘出的修复模板可用性不强,程序修复效果不佳。再者,如何利用修复模板对程序进行修复是程序自动修复的关键,但目前对此问题的研究较少。因此,本文从修复模板挖掘和程序自动修复两方面出发,提出了一种改进的程序自动修复方法,称为APRMT(Automatic Program Repair Method ba<x>sed on Template mining)。APRMT通过正则匹配消除修复信息中的无用信息,提高修复模板的准确性;依据程序缺陷代码位置与类型,采用最近最相关策略搜索针对程序缺陷的修复信息,利用修复模板对程序缺陷进行修复。实验表明:相较于现有的程序修复工具,APRMT能在更短时间内修复更多的程序缺陷,提升了程序自动修复的效果及效率。
Abstract:
In the process of program repair template mining, due to the noise interference in the historical repair information, the availability of the mined repair template was not strong, and the program repair effect is not good. In order to improve the efficiency of automatic repair. It was an important method use repair templates to repair the program. Therefore, from the perspective of repair template mining and automatic program repair, an improved program automatic repair method is proposed, called APRMT (automatic program repair method based on template mining). APRMT can eliminate the noise of repair information through regular matching, and the accuracy of repair information. According to the location and type of the program defect code to search and repair the information of the defect, the most recent strategy was proposed, which could efficiently use the repair template to repair the program defect. In order to verify the effectiveness of this method, APRMT experimented on 4 open source projects, and the experimental results showed that APRMT successfully fixed 26 defects, with an average time of 3.1 minutes per defect. It can be seen that APRMT can fix more program defects in a shorter time, and therefore improved the effect and efficiency of automatic program repaired.

参考文献/References:

[1] WEIMER W,NGUYEN T,LE GOUES C,et al.Automatically finding patches using genetic programming[C]//2009 IEEE 31st International Conference on Software Engineering.New York:IEEE,2009:364-374.

[2] MARTINEZ M,MONPERRUS M.Astor:exploring the design space of generate-and-validate program repair beyond GenProg[J].Journal of systems and software,2019,151:65-80.
[3] KIM D S,NAM J C, SONG J, et al. Automatic patch generation learned from human-written patches[C] //Proceedings of the 2013 International Conference on Software Engineering. New York:ACM, 2013:802-811.
[4] LIU X L,ZHONG H.Mining stackoverflow for program repair[C]//2018 IEEE 25th International Conference on Software Analysis,Evolution and Reengineering (SANER).New York:IEEE,2018:118-129.
[5] LE X B D,LO D,LE GOUES C.History driven program repair[C]//2016 IEEE 23rd International Conference on Software Analysis,Evolution,and Reengineering (SANER).New York:IEEE,2016:213-224.
[6] XUAN J F,MARTINEZ M,DEMARCO F,et al.Nopol:automatic repair of conditional statement bugs in Java programs[J].IEEE transactions on software engineering,2017,43(1):34-55.
[7] MARTINEZ M,MONPERRUS M.Mining software repair models for reasoning on the search space of automated program fixing[J].Empirical software engineering,2015,20(1):176-205.
[8] FALLERI J R,MORANDAT F,BLANC X,et al.Fine-grained and accurate source code differencing[C]//Proceedings of the 29th ACM/IEEE International Conference on Automated Software Engineering.New York:ACM,2014:313-324.
[9] CAMPOS J,RIBOIRA A,PEREZ A,et al.GZoltar:an eclipse plug-in for testing and debugging[C]//2012 Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering.New York:IEEE,2012:378-381.
[10] SOBREIRA V,DURIEUX T,MADEIRAL F,et al.Dissection of a bug dataset:anatomy of 395 patches from Defects4J[C]//2018 IEEE 25th International Conference on Software Analysis,Evolution and Reengineering (SANER).New York:IEEE,2018:130-140.
[11] PAWLAK R,MONPERRUS M,PETITPREZ N,et al.SPOON:a library for implementing analyses and transformations of Java source code[J].Software:practice and experience,2016,46(9):1155-1179.
[12] MARTINEZ M, MONPERRUS M. ASTOR: a program repair library for Java(demo)[C]//Proceedings of the 25th International Symposium on Software Testing and Analysis. New York: ACM, 2016:441-444.
[13] HASSAN F,WANG X Y.HireBuild:an automatic approach to history-driven repair of build scripts[C]//Proceedings of the 40th International Conference on Software Engineering.New York:ACM,2018:1078-1089.
[14] JUST R,JALALI D,ERNST M D.Defects4J:a database of existing faults to enable controlled testing studies for Java programs[C]//Proceedings of the 2014 International Symposium on Software Testing and Analysis.New York:ACM,2014:437-440.
[15] TANG J W,LI R X,WANG K P,et al.A novel hybrid method to analyze security vulnerabilities in Android applications[J].Tsinghua science and technology,2020,25(5):589-603.
[16] 张茂清,汪镭,崔志华,等.基于混合策略的快速非支配排序算法Ⅱ[J].郑州大学学报(工学版),2020,41(4):23-27.

相似文献/References:

[1]王华、马亚丹、李绅绅、徐静、徐明亮、张旭、金保华.三维场景中基于模板的个性化蒙版擦除动画[J].郑州大学学报(工学版),2021,42(02):75.[doi:10.13705/j.issn.1671-6833.2020.01.010]
 Wang Hua,Ma Yadan,Li Shenli,et al.Template-based and Personalized Erasure Animation in Three-dimensional Scenes[J].Journal of Zhengzhou University (Engineering Science),2021,42(02):75.[doi:10.13705/j.issn.1671-6833.2020.01.010]
[2]肖永庆.叶轮渐开线外型几何尺寸计算[J].郑州大学学报(工学版),1995,16(01):98.
 Xiao Yongqing.Leaf wheel gradually opens the shape of geometric size calculation[J].Journal of Zhengzhou University (Engineering Science),1995,16(02):98.

更新日期/Last Update: 2021-05-30