[发明专利]一种面向版本缺陷的基于修复模式的修复推荐方法有效
| 申请号: | 201910071219.3 | 申请日: | 2019-01-25 |
| 公开(公告)号: | CN109918100B | 公开(公告)日: | 2022-05-17 |
| 发明(设计)人: | 孙小兵;周威;李斌;张正华 | 申请(专利权)人: | 扬州大学 |
| 主分类号: | G06F8/65 | 分类号: | G06F8/65;G06F8/71;G06F11/36 |
| 代理公司: | 南京理工大学专利中心 32203 | 代理人: | 马鲁晋 |
| 地址: | 225009*** | 国省代码: | 江苏;32 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 面向 版本 缺陷 基于 修复 模式 推荐 方法 | ||
本发明公开了一种面向版本缺陷的基于修复模式的修复推荐方法,包括步骤:首先提取与版本相关的已修复的bug,分析修复前后的代码片段,确定bug的错误类型和修复模式;其次确定待推荐修复的版本bug的错误类型;之后计算待推荐修复的版本bug报告与历史bug报告的相似度,提取历史bug报告的修复模式;然后根据相似度对修复模式进行排序,并提取修复模式所需的变量;之后结合源文件,分别从候选代码、待推荐修复的版本bug报告、历史修复记录中提取变量;最后通过匹配提取的变量与修复模式所需的变量,推荐修复模式推荐给开发人员。本发明的方法通过推荐修复模式,减少了修复的时间和成本,提高了开发人员缺陷修复的效率,且不受程序语言约束,普适性强。
技术领域
本发明属于软件缺陷修复领域,特别是一种面向版本缺陷的基于修复模式的修复推荐方法。
背景技术
随着科技的逐步发展,手机,电脑成为人们生活中必不可少的通讯与工作工具。目前,人们的需求不断地增多,存在于手机、电脑上的软件的规模也变得越来越大,软件的产品结构也随之变得越来越复杂,软件故障也变得越来越普遍和复杂。作为计算机的灵魂,高可靠和复杂的系统依赖于软件的可靠性,软件故障难以修复,软件的可靠性就得不到保证。一个未能及时修复的软件故障可能导致整个系统的失效、瘫痪,甚至导致灾难性后果。比如,2005年4月软件失灵、继而导航失误,导致耗资1.1亿美元的nasa自主交会任务dart实验失败。美国国家标准与技术研究所的一项研究表明“软件故障如此普遍并且危害巨大,每年损失美国经济的595亿美元或国民生产总值的0.6%”。最近的一项研究表明,软件调试的全球成本是每年3,120亿美元,软件开发人员将50%的时间花在修复上。软件版本bug是在软件不断的更新换代中产生的,目前很多软件不断开发新版本,很多服务器都是在以前的接口逻辑上进行修改,版本升级后会产生不兼容旧版本的问题,以及很多不同的应用需要用到不同的软件版本,比如空间数据处理和算法应用需要用到不同的Python版本:Python2和Python3,此时多个版本共存时会产生不兼容的问题。版本bug的直接影响是软件不能及时的升级和更新,软件不能在所有设备上运行,导致用户无法体验新的功能,且体验效果差等。近年来,自动程序修复已经获得了先进性,因为它可以通过自动建议针对给定缺陷的补丁来减少手工调试工作。事实上,最先进的程序修复系统已经被证明能够解决现实软件中的缺陷。
自动程序修复的主要目标是修复有bug的软件,生成的修复通常是对展示缺陷的软件系统进行增量修改,以便以自动方式修复错误,并减少手工修复bug所需的人工劳动。然而,自动生成的补丁的低质量仍然是软件开发人员在实践中采用该技术的一个巨大障碍。自动生成的补丁质量低的主要原因是缺少预期行为的规范。大多数程序修复系统将测试作为正确标准,但是测试是一个不完整的规范,生成的补丁通常与开发人员的意图不符。为了增加自动生成补丁的质量,研究者提出补丁优先级,反模式等技术。虽然这些技术增加了正确补丁的概率,但是,这些技术没有针对版本缺陷进行修复,并且版本缺陷有自己的错误类型的同时也有特定的修复模式。对于版本缺陷,它们并不提供任何正确性保证。
发明内容
本发明所要解决的技术问题在于提供一种针对软件开发过程中的与版本相关的bug进行修复推荐的方法,从而减少版本缺陷修复所需的时间和精力。
实现本发明目的的技术解决方案为:一种面向版本缺陷的基于修复模式的修复推荐方法,包括以下步骤:
步骤1、从bug存储库中提取与版本相关的已修复的bug,分析对比bug修复前后的代码片段,确定bug的错误类型和修复模式;
步骤2、针对待推荐修复的版本bug对应的候选代码,提取所述候选代码的变量信息,并将变量信息与错误类型进行匹配,确定待推荐修复的版本bug的错误类型;
步骤3、求取待推荐修复的版本bug报告与历史每个bug报告的相似度,之后对相似度进行降序排列,并依次提取前n个相似度对应的历史bug对应的修复模式;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于扬州大学,未经扬州大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910071219.3/2.html,转载请声明来源钻瓜专利网。





