摘要
为能正确高效地生成修复补丁,针对Java程序中出现频率较高的条件语句相关缺陷修复问题,将启发式搜索方法与语义约束求解方法相结合,提出一个有针对性、更高效的解决方案。针对条件语句缺失错误,采用基于组件的程序合成技术,合成满足约束的候选条件语句;针对条件语句逻辑表达式错误,采用变异技术,生成候选逻辑表达式;针对条件语句逻辑表达式错误中,不能用变异技术修复的缺陷,使用基于组件的约束求解方法生成候选补丁。实验结果表明,所提方法有更高的补丁召回率和准确率。
To generate repair patches correctly and efficiently,a targeted and more efficient method was proposed by combining the heuristic search method with the semantic constraint solving method for automatic repair of buggy conditional statements with high frequency in Java programs.Aiming at the missing precondition bugs of conditional statements,the component-based program synthesis technology was used to generate candidate conditional statements that satisfied the constraints.At the same time,for the buggy conditional statements,mutation technology was used to generate candidate logical expressions.For the buggy conditional statements that could not be repaired using mutation techniques,component-based constraint solving method was used to generate candidate patches.Experimental results demonstrate that the proposed method has higher patch recall and accuracy.
作者
董兰
洪玫
伍佳
DONG Lan;HONG Mei;WU Jia(College of Computer Science(College of Software),Sichuan University,Chengdu 610065,China)
出处
《计算机工程与设计》
北大核心
2024年第1期88-94,共7页
Computer Engineering and Design
基金
国家重点研发计划基金项目(2020YFB1711801)。
关键词
程序自动修复
变异分析
约束求解
程序合成
条件语句缺陷
补丁生成
软件调试
automatic program repair
mutation analysis
constraint solving
program synthesis
conditional statement bugs
patch generation
software debugging