[发明专利]一种基于最小集合覆盖的模糊测试方法和装置有效
申请号: | 202010790762.1 | 申请日: | 2020-08-07 |
公开(公告)号: | CN111897733B | 公开(公告)日: | 2023-04-07 |
发明(设计)人: | 胡昌振;马锐;王夏菁;王雪霏;李斌斌 | 申请(专利权)人: | 北京理工大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F21/57;G06N3/006;G06N3/043;G06N3/0442;G06N3/126 |
代理公司: | 北京理工大学专利中心 11120 | 代理人: | 温子云 |
地址: | 100081 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 最小 集合 覆盖 模糊 测试 方法 装置 | ||
1.一种基于最小集合覆盖的模糊测试方法,其特征在于,包括:
利用深度神经网络为处理结构化或非结构化输入的目标二进制程序产生测试用例集,并加入测试用例队列;
利用最小集合覆盖理论,从所述测试用例队列中筛选出具有最大化路径覆盖率且测试用例数量最少的最小用例集合,以减少执行效果相同的重复测试用例的数量;具体为:采用执行目标二进制程序的方式,确定测试用例对应的基本块覆盖信息、路径深度信息和崩溃信息;确定最小用例集合时,确定每个测试用例所覆盖的基本块;将基本块转换为相应的唯一标识形式,构造每个测试用例所覆盖的基本块集合;将所有测试用例所覆盖的基本块集合取并集,获得基本块总覆盖集合;以最大化覆盖基本块总覆盖集合、最小化测试用例数量为准则,确定符合准则的测试用例组,作为所述最小用例集合;
以崩溃数量和最大路径执行深度作为测试用例选择标准,对所述最小用例集合中的测试用例进行排序,选择最优测试用例进行后续变异,继而实现模糊测试;
将模糊测试过程中产生的覆盖新路径的有效测试用例加入深度神经网络测试用例训练集,离线地指导深度神经网络进行优化训练。
2.如权利要求1所述的方法,其特征在于,所述以崩溃数量和最大路径执行深度作为测试用例选择标准,对所述最小用例集合中的测试用例进行排序,选择最优测试用例进行后续变异为:
采用崩溃数量和最大路径执行深度对所述最小用例集合中的测试用例进行排序,先按照崩溃数量从大到小的顺序进行排序,在崩溃数量相同的情况下,按照最大路径执行深度从大到小的顺序进行排序;对排序后的第一个测试用例进行后续变异。
3.如权利要求1所述的方法,其特征在于,采用智能优化算法求解所述符合准则的测试用例组。
4.如权利要求3所述的方法,其特征在于,所述智能优化算法为遗传算法、粒子群优化算法、蚁群优化算法或模拟退火算法。
5.如权利要求1所述的方法,其特征在于,所述深度神经网络采用具有长短期记忆模型的循环神经网络模型实现,并引入注意力机制以提高模糊测试生成的质量,同时离线地接收模糊测试反馈的有效测试用例以加入测试用例训练集进行调优。
6.一种基于最小集合覆盖的模糊测试装置,其特征在于,包括:测试用例生成模块、测试用例选择模块、测试用例变异模块和目标程序执行模块;
测试用例生成模块,用于利用深度神经网络为处理结构化或非结构化输入的目标二进制程序产生测试用例集,并加入测试用例队列;
测试用例选择模块,用于利用最小集合覆盖理论,从所述测试用例队列中筛选出具有最大化路径覆盖率且测试用例数量最少的最小用例集合,以减少执行效果相同的重复测试用例的数量;以崩溃数量和最大路径执行深度作为测试用例选择标准,对所述最小用例集合中的测试用例进行排序,获得最优测试用例;
测试用例变异模块,用于对所述最优测试用例进行变异;
目标程序执行模块,用于使用测试用例变异模块生成的测试用例执行目标二进制程序,将覆盖新路径的有效测试用例添加到所述测试用例队列中,同时发送至测试用例生成模块,加入深度神经网络测试用例训练集,用以离线地指导深度神经网络进行优化训练;
所述测试用例选择模块包括去重子模块和择优子模块;
所述去重子模块,用于利用通过执行目标二进制程序获取的测试用例对应的基本块覆盖信息,确定每个测试用例所覆盖的基本块;将基本块转换为相应的唯一标识形式,构造每个测试用例所覆盖的基本块集合;将所有测试用例所覆盖的基本块集合取并集,获得基本块总覆盖集合;以最大化覆盖基本块总覆盖集合、最小化测试用例数量为准则,确定符合准则的测试用例组,作为所述最小用例集合;
所述择优子模块,用于以设定的一个以上的测试用例选择标准,对所述最小用例集合中的测试用例进行排序,获得最优测试用例。
7.如权利要求6所述的装置,其特征在于,所述择优子模块采用崩溃数量和最大路径执行深度对所述最小用例集合中的测试用例进行排序,先按照崩溃数量从大到小的顺序进行排序,在崩溃数量相同的情况下,按照最大路径执行深度从大到小的顺序进行排序;对排序后的第一个测试用例进行后续变异。
8.如权利要求6所述的装置,其特征在于,所述测试用例生成模块所采用的深度神经网络为具有长短期记忆模型的循环神经网络,通过引入注意力机制以提高模糊测试生成的质量,同时接收模糊测试反馈的有效测试用例以加入测试用例训练集进行离线调优。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京理工大学,未经北京理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010790762.1/1.html,转载请声明来源钻瓜专利网。