[发明专利]一种基于自适应搜索的程序自动修复方法在审

专利信息
申请号: 202110447621.4 申请日: 2021-04-25
公开(公告)号: CN113282485A 公开(公告)日: 2021-08-20
发明(设计)人: 郭荣勋;姚远;徐锋;吕建 申请(专利权)人: 南京大学
主分类号: G06F11/36 分类号: G06F11/36;G06F11/07
代理公司: 南京乐羽知行专利代理事务所(普通合伙) 32326 代理人: 李玉平
地址: 210023 江苏*** 国省代码: 江苏;32
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 基于 自适应 搜索 程序 自动 修复 方法
【权利要求书】:

1.一种基于自适应搜索的程序自动修复方法,其特征在于,通过补丁的疏密程度,推测出当前搜索空间是否过小或者过大,并且通过分析得到影响搜索空间大小的因素,根据这些因素设定了一系列策略,自适应调整搜索空间的大小,在搜索空间中随机生成补丁,最终给出缺陷程序的修复结果;具体包括以下两个部分:

(1)通过补丁生成缓存记录修复过程中生成过的补丁,通过设定数量补丁的窗口内缓存命中数来获取补丁疏密程度;

(2)通过影响搜索空间的各因素设定策略,在修复过程中以自适应方式调整动态搜索空间大小。

2.根据权利要求1所述的基于自适应搜索的程序自动修复方法,其特征在于,影响搜索空间大小的因素包括缺陷语句、修改算子、可重用代码元素和最多修改位置。

3.根据权利要求1所述的基于自适应搜索的程序自动修复方法,其特征在于,首先,输入缺陷程序和测试用例集,经过预处理阶段得到缺陷语句集合、修改算子集合以及可重用代码元素集合;在补丁生成阶段,根据上面得到的这些集合共同构成补丁搜索空间,在搜索空间中随机搜索生成候选补丁,通过补丁生成缓存的命中次数来表示当前搜索空间的疏密程度,据此来调整搜索空间的大小;最后通过补丁验证阶段来验证候选补丁的正确性。

4.根据权利要求1所述的基于自适应搜索的程序自动修复方法,其特征在于,所述通过补丁生成缓存记录修复过程中生成过的补丁,通过设定数量补丁的窗口内缓存命中数来获取补丁疏密程度的部分中:

缺陷程序P以及配套的测试用例集T作为输入,通过测试的正确补丁R为输出;修复过程中会对缺陷程序P进行随机修改得到候选补丁Pd,修改动作d表示为三元组(f,o,u)的形式,f为修改的语句位置,o为采用的修改算子,u为选择的可重用代码元素;修复过程中连续生成的设定数量补丁组成一个补丁生成窗口Pd1,Pd2,Pd3…PdL,L为窗口长度,即窗口内的补丁数量;维护一个补丁生成缓存,每个候选补丁Pd在生成时都会去判断是否已经存在于缓存中;如果存在那么说明之前已经生成同样的补丁,该补丁对应的缓存命中次数hcp自增并且舍弃该补丁,重新生成新的补丁;如果不存在则将该补丁个体添加到补丁缓存;补丁窗口内缓存命中数hcw为窗口内所有补丁缓存命中数之和,通过下面的公式来进行更新:

hcw=hcw+hcpn-hcpo

其中,hcpn表示最新生成的补丁对应的缓存命中数,hcpo表示窗口中最早生成的补丁对应的缓存命中数。

5.根据权利要求3所述的基于自适应搜索的程序自动修复方法,其特征在于,根据补丁生成窗口内缓存命中次数hcw来判断当前是否需要调整搜索空间的大小;若hcw大于上限阈值ΦH,则扩大搜索空间;若hcw小于下限阈值ΦL,则缩小搜索空间;不同规模的搜索空间对应的缓存命中阈值也不同,缓存命中阈值和实际搜索空间大小呈正相关关系;按照如下公式计算缓存命中阈值:

其中NF表示缺陷语句集合F的基数,NO表示修改算子集合O的基数,NU表示可重用代码元素集合U的基数,α表示更新系数,范围取(0,1]。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京大学,未经南京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/202110447621.4/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top