【技术实现步骤摘要】
一种面向对象程序中的方法调用缺陷自动修复方法
[0001]本专利技术属于软件工程中的软件调试领域,尤其涉及一种面向对象程序中的方法调用缺陷自动修复方法
。
技术介绍
[0002]在软件开发和软件维护过程中,当发现缺陷以后需要通过软件调试来定位和修复缺陷,以提升软件的质量
。
但软件缺陷修复需要花费大量的人力成本,随着现代软件规模和复杂度逐渐增加,传统的人工调试方法面临挑战
。
为了降低开发人员的调试压力,减少软件缺陷修复的成本,研究人员提出了软件缺陷自动修复方法,得到了广泛的关注和应用
。
[0003]软件缺陷自动修复技术,包括基于搜索
、
修复模板
、
语义驱动和深度学习等修复技术
。
现有的软件缺陷自动修复技术大多探讨通用的解决方案,缺少对不同缺陷类型的具体分析,导致缺陷修复的针对性不强,缺陷修复率较低,修复效果不佳
。
技术实现思路
[0004]为了提高缺陷修复效果,本专利技术针对面向对象程序 ...
【技术保护点】
【技术特征摘要】
1.
一种面向对象程序中的方法调用缺陷自动修复方法,其特征在于,包括以下步骤:步骤1,基于深度学习训练方法调用缺陷修复模型,所述步骤1包含以下步骤:步骤1‑1,收集方法调用缺陷数据并进行预处理;步骤1‑2,选择基于
CNN
的神经机器翻译模型;步骤1‑3,训练和评估方法调用缺陷修复模型;步骤2,利用步骤1生成的缺陷修复模型,生成候选补丁并验证,所述步骤2包含以下步骤:步骤2‑1,预处理待修复程序的缺陷行代码和缺陷上下文;步骤2‑2,加载缺陷修复模型,生成候选补丁;步骤2‑3,验证候选补丁,若候选补丁有效,输出补丁,缺陷修复成功,若候选补丁无效,执行步骤3;步骤3,基于遗传算法生成候选补丁,所述步骤3包含以下步骤:步骤3‑1,用步骤2中的无效候选补丁替换待修复程序中的缺陷语句形成初始种群;步骤3‑2,计算种群中每个变体的适应度;步骤3‑3,若存在适应度为1的变体,则输出该变体对应的候选补丁,缺陷修复成功;否则,如果达...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。