为能正确高效地生成修复补丁,针对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 pro-gram 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 accu-racy.