[发明专利]一种面向软件版本一致性缺陷的自动修复方法有效
申请号: | 201710848984.2 | 申请日: | 2017-09-13 |
公开(公告)号: | CN107643905B | 公开(公告)日: | 2021-01-12 |
发明(设计)人: | 孙小兵;王璐;李斌;朱俊武 | 申请(专利权)人: | 扬州大学 |
主分类号: | G06F8/71 | 分类号: | G06F8/71 |
代理公司: | 南京中新达专利代理有限公司 32226 | 代理人: | 孙鸥;朱杰 |
地址: | 225009 *** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 面向 软件 版本 一致性 缺陷 自动 修复 方法 | ||
本发明涉及一种面向软件版本一致性缺陷的自动修复方法。本发明将bug描述、源代码、相关配置文件作为输入数据,并提取bug描述中的关键信息,用自然语言处理工具转化为特征向量,然后在bug的源代码中进行向前切片,再用基于统计计算的程序谱故障定位方法对源代码进行定位,再分析定位好的源代码与提取的信息对bug进行修复。本发明克服了对于软件产品版本问题的修复大多由开发人员手动修改与更新,耗时又耗力的缺陷。本发明实行程序语言版本问题修复和系统所属的配置版本问题修复,有效地提高软件维护的效率,减少了成本与人力。
技术领域
本发明涉及软件缺陷修复领域,特别涉及一种面向软件版本一致性缺陷的自动修复方法。
背景技术
随着软件规模的日益增长,软件升级越来越频繁,程序bug是软件开发中不可避免的产物,其中软件版本不一致的问题越来越突出。其产生的原因可以追溯到软件开发的每个阶段,包括维护阶段,演化阶段等。为了尽快地修复软件bug,程序员必须花费大量的时间和精力查找导致软件失效的原因,并发布补丁。大量的历史数据表明,超过45%的软件开发成本用于定位和修复bug的过程中,且定位和修复程序bug是软件工程问题的核心内容。为了降低修复过程中的时间和人力成本,自动程序修复方法应运而生。
自动程序修复方法依据给定的程序问题,自动生成程序补丁,进而修复程序中的错误。修复中产生的程序补丁既可以自动添加到程序中,也可以用于指导开发者继续改进代码。根据自动程序修复方法的依据,产生了很多该领域的技术。
在本发明之前,这些技术没有从版本一致性角度来修复与版本相关的bug,目前软件产品不断的更新换代,对软件的编写语言和产品中的配置版本的要求不断提高,对于软件产品版本问题的修复大多由开发人员手动修改与更新,耗时又耗力。
随着软件产品的不断更新,软件版本问题越来越突出需要解决。基于面向版本一致性的自动修复方法从bug描述、bug源代码、bug所属系统的相关配置文件出发,将版本修复问题主要分为两类:修复程序语言版本和修复系统中的配置版本这两个问题。该方法从新的方向--软件产品中出现的版本不一致问题出发,对这些bug进行自动修复,减少开发人员的时间和精力。
发明内容
本发明的目的就在于克服上述缺陷,研制一种面向软件版本一致性缺陷的自动修复方法。
本发明的技术方案是:
一种面向版本一致性的自动修复方法,其主要技术特征在于如下步骤:
(1)对于一个与版本相关的bug,将该bug的描述,源代码以及包含版本号说明的相关配置文件作为本发明的输入数据;
(2)分析bug描述,提取关键信息,如配置名、文件名、变量名等,并将提取的关键信息用自然语言处理工具转化成特征向量;
(3)根据步骤(2)提取的关键信息,在bug的源代码中进行向前切片,再用基于统计计算的程序谱故障定位方法对源代码进行定位。
(4)分析已经定位的源代码上下文,这里分为两种修复可能:程序语言版本修复和配置版本修复;bug所属的系统的程序语言的版本出错,查看输入数据中的相关配置文件,读取配置文件,提取关键信息“versionName”对应的版本号,根据文件中配置的版本号进行修复;bug所属系统的其他配置版本出错:若bug描述中涉及到配置的局部变量在分配前引用,则将该配置变量设置为null,并修改配置的版本至最新;若bug描述涉及到配置的改进,则将该配置模块加载重定向到新版本;
(5)用测试用例对修复结束的软件进行测试;若测试成功,则修复成功,输出bug修复片段;若测试失败,则回到步骤(2)重新进行修复。
本发明的优点和效果在于从bug的版本问题出发,分析bug的描述和源代码,将版本问题的bug分为两类:程序语言版本问题修复和系统所属的配置版本问题修复,该方法可有效地提高软件维护的效率,减少了成本与人力。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于扬州大学,未经扬州大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710848984.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种用于淬火机的锥齿轮淬火辅助装置
- 下一篇:一种锻轧钢球回火用球筐