[发明专利]面向bug报告的自动化修复方法有效
| 申请号: | 201910757075.7 | 申请日: | 2019-08-16 |
| 公开(公告)号: | CN110442527B | 公开(公告)日: | 2023-07-18 |
| 发明(设计)人: | 孙小兵;马荧炜;曹琛;谢昊;杨硕;张婧玉 | 申请(专利权)人: | 扬州大学 |
| 主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F11/07 |
| 代理公司: | 南京苏科专利代理有限责任公司 32102 | 代理人: | 董旭东;陈栋智 |
| 地址: | 225000 江*** | 国省代码: | 江苏;32 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 面向 bug 报告 自动化 修复 方法 | ||
本发明提出了一种面向bug报告的自动化修复方法,属于软件维护领域。该方法首先在bug报告中使用缺陷定位技术,定位得到可疑bug语句块,根据其所在的函数提取函数关键信息,并使用DSL(领域特定语言)构造函数特征规约;接着抽取bug报告关键信息,使用DSL构造报告规约;然后构造一个“草案”,“草案”内包括可疑bug语句块所在的函数、函数特征规约以及报告规约;再基于“草案”搜索补丁数据库,返回相似度高的候选函数,抽取候选函数内代码片段作为候选补丁,将候选补丁替换可疑bug语句块并统一“草案”内函数变量的命名;最后基于报告规约中的输入输出测试集,单元测试“草案”中的函数,根据输出结果验证修复正确性。
技术领域
本发明涉及一种软件修复方法,特别涉及一种面向bug报告的自动化修复方法。
背景技术
软件自动修复(Automated Software Repair)技术近来得到学术界广泛的关注,并得到很快的发展。软件自动修复是使用自动的方法修复软件产品中的错误,从而将开发人员从繁重的软件修复工作中脱离出来;其主要步骤包括:1)缺陷定位;2)生成候选补丁;3)验证候选补丁的正确性。
已有的补丁生成方法可以简单分为三类:基于搜索的方法(例如GenProg、CodePhage和SPR)、基于语义的方法(例如SemFix、Nopol和DirectFix)和其他类型的方法(例如SearchRepair、Relifix和Minthint);其中基于搜索的方法在搜索空间内通过搜索生成补丁,并借助配套测试用例集对该补丁进行验证;基于语义的方法则借助语义信息(通过符号执行和约束求解)来合成补丁,而不属于上述两类方法的研究工作被归于其他类型的方法。
在基于搜索的软件错误修复技术中,通过复用产生候选修复的方法正在得到广泛的关注与研究;而这类方法又可以细分为复用修复操作的错误修复技术和复用已有代码的错误修复技术。现有的复用已有代码的错误修复技术还处于起步阶段,存在着诸多限制;例如,1)现有缺陷修复技术只能修复关于给定限制条件下的很小一部分类型的缺陷修复,例如CodePhage复用了其他程序的IF检查代码,只针对除零错、数组越界和整型溢出等错误进行了修复;2)现有缺陷修复需要给定严格的验证约束条件,如给定某个测试失败场景,才能进行自动验证;3)现有技术都是细粒度的代码和测试层次的输入,使用软件错误修复技术要求比较高,适用范围比较小;而本发明能够不限缺陷类型,可以根据缺陷报告自动抽取有效信息,形成“草案”;基于“草案”实现搜索补丁、合并程序、验证结果一体化,基于测试用例验证补丁,验证约束条件较低,使用要求比较低,补丁修复范围较广,实现自动的缺陷修复。
发明内容
本发明的目的是提供一种面向bug报告的自动化修复方法,使其能够不限缺陷类型,可以根据缺陷报告自动抽取验证。
本发明的目的是这样实现的:一种面向bug报告的自动化修复方法,包括以下步骤:
步骤1)利用缺陷定位技术定位到bug报告,得到具体文件中的具体类中函数的可疑bug语句块;
步骤2)根据bug语句块所在的函数提取函数关键信息,并使用领域特定语言构造函数特征规约;
步骤3)提取bug报告中的产品信息、组件信息、软件版本信息、平台信息以及bug报告内配套输入输出测试集,并使用领域特定语言将这些信息构造为报告规约;
步骤4)构造 “草案”,“草案”包括可疑bug语句块所在的函数,以及分别在步骤2和步骤3中构造的规约;
步骤5)基于“草案”搜索补丁数据库,比较补丁数据库内各个补丁规约与“草案”中规约相似度大小,返回一组与“草案”中的函数相似度较高的候选函数,构成候选函数列表;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于扬州大学,未经扬州大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910757075.7/2.html,转载请声明来源钻瓜专利网。





