[发明专利]基于神经机器翻译的软件缺陷自动修复方法及装置有效
申请号: | 202110151609.9 | 申请日: | 2021-02-03 |
公开(公告)号: | CN112764784B | 公开(公告)日: | 2022-10-11 |
发明(设计)人: | 曹鹤玲;刘昱;赵晨阳;贾俊亮;李磊;吕鹏涛;王盼盼;苗建雨;崔洪章;王玉华;左志斌 | 申请(专利权)人: | 河南工业大学 |
主分类号: | G06F8/65 | 分类号: | G06F8/65;G06F11/36;G06F40/58;G06N3/04 |
代理公司: | 河南豫龙律师事务所 41177 | 代理人: | 王长坤 |
地址: | 450001 河南省郑*** | 国省代码: | 河南;41 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 神经 机器翻译 软件 缺陷 自动 修复 方法 装置 | ||
本发明提供一种基于神经机器翻译的软件缺陷自动修复方法及处理装置,属于软件测试技术领域,该方法包括修复模型训练阶段:将从数据集中选取的缺陷程序、缺陷程序的上下文和修复程序作为训练数据送与基于BiRNN且具有双编码器的神经机器翻译模型,对模型进行训练和调整后得到多个修复不同种类缺陷的专用模型,再利用Random Forest算法将多个模型集合为一个修复效果显著的组合模型;修复模型应用阶段:利用Jaccard缺陷定位技术进行缺陷定位得到怀疑数据表,将怀疑语句及其上下文按照怀疑值从大到小依次送与修复模型并得到相应的候选补丁列表;本发明可在极少的手动操作下进行跨编程语言的软件缺陷自动修复,且能显著提高缺陷修复成功率和修复速度。
技术领域
本申请涉及软件测试技术领域,尤其涉及一种基于神经机器翻译的软件缺陷自动修复方法及装置。
背景技术
软件应用于各行各业,但由于需求理解的偏差、算法和语法错误、开发过程的不合理或开发人员的经验不足等原因,使得在软件开发过程中的各个阶段都会产生软件缺陷,且随着软件复杂度和规模的上升,软件缺陷的数量也逐年上升。有研究表明,软件缺陷的修复成本通常占软件产品总开发成本的50%,在运用传统方法维护软件时,通常面临极大挑战,修复程序难:代码复杂,修复易出错,依赖专家级程序员;人力成本高:时间长,成本消耗巨大;引入错误多:不成熟的补丁引入新错误;不可控条件下无法维护:由于软件逻辑设计复杂性和运行环境的限制,当软件发生错误时,维护人员可能无法远程修复该类错误。诸多的问题使得程序错误修复这一问题上升到新的高度,程序自动修 复方法应运而生并成为研究热点,如果程序自动修复方法能够修复一部分缺陷,那么它将为人类和社会带来显著的价值。
有研究提出了基于搜索的软件缺陷自动修复方法,该方法将修复问题看成是组合优化问题,为了修复程序,将程序中若干位置的代码更新(修改、删除、添加代码)视为个体,即把更新的内容作为程序补丁,并以所有可能更新得到的程序补丁作为一个庞大的搜索空间,在这个补丁搜索空间中寻找最优可行解。基于搜索的软件缺陷自动修复方法面临着搜索空间过大、正确率低和过拟合的问题;另一些研究提出了基于语义的软件缺陷自动修复方法,该方法往往能够获得精确的结果,即正确性要高于基于搜索的方法。该方法在对可能有缺陷的实体进行可疑度排序后,先记录含有缺陷的实体的输入以及输出期望值,并将输入以及输出期望值作为输出补丁的约束,然后将修复约束转化成合成程序补丁的规约,最后用约束求解器合成补丁,利用约束求解器生成的补丁满足输出补丁的所有约束。基于语义的软件缺陷自动修复方法需要更多的程序信息,算法执行的时间较长,其部属和实现也更加困难,并且其同样存在过拟合问题。
经典的软件缺陷自动修复方法如基于搜索的和基于语义的方法,针对不同编程语言的缺陷,这些方法需要大量的手动操作来重新实现修复模式,且普遍存在浪费人力物力,耗时较多和修复效率低的问题。
发明内容
本申请实施例的目的在于提出一种基于神经机器翻译的软件缺陷自动修复方法及装置,以解决现有技术中缺陷修复方法需要大量的手动操作来重新实现修复模式,且普遍存在浪费人力物力,耗时较多和修复效率低的问题。
为了解决上述技术问题,本申请实施例提供一种基于神经机器翻译的软件缺陷自动修复方法,采用了如下所述的技术方案:
一种基于神经机器翻译的软件缺陷自动修复方法,包括:
从数据集中获取不同种类编程语言的若干个缺陷程序、所述缺陷程序上下文和与所述缺陷程序相适配的修复程序共同构成训练数据;
基于自然语言处理技术,对训练数据进行预处理,并将经预处理后的训练数据发送到预设神经机器翻译模型中;
对所述神经机器翻译模型进行超参数调整,并在每次超参数调整完成后,使用预处理后的训练数据对所述模型进行训练,最后获得修复不同类型缺陷的多个专用模型;
基于Random Forest算法对所述多个专用模型进行集成学习,获得一个可修复不同类型缺陷的组合模型;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于河南工业大学,未经河南工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110151609.9/2.html,转载请声明来源钻瓜专利网。