[发明专利]一种用于提升模糊测试的覆盖率的方法和系统有效
| 申请号: | 202110000642.1 | 申请日: | 2021-01-04 |
| 公开(公告)号: | CN112328505B | 公开(公告)日: | 2021-04-02 |
| 发明(设计)人: | 于璐;沈毅;陆余良;潘祖烈;杨国正;赵军;赵家振;黄晖 | 申请(专利权)人: | 中国人民解放军国防科技大学 |
| 主分类号: | G06F11/36 | 分类号: | G06F11/36;G06N3/08 |
| 代理公司: | 中国和平利用军工技术协会专利中心 11215 | 代理人: | 刘光德 |
| 地址: | 410073 湖*** | 国省代码: | 湖南;43 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 用于 提升 模糊 测试 覆盖率 方法 系统 | ||
1.一种用于提升模糊测试的覆盖率的方法,其特征在于,所述方法包括:
步骤S1、对作为测试用例的目标程序进行预处理,以获得所述目标程序中函数的调用图;
步骤S2、基于所述调用图确定所述目标程序中用于模糊测试的锚节点,所述锚节点包括基于复杂网络的第一锚节点和基于神经网络的第二锚节点;
步骤S3、根据锚节点,利用插桩工具来确定种子节点到所述锚节点的距离;
步骤S4、基于所述距离来计算所述种子节点的能量,选取所述能量高于阈值的种子节点作为评估变异测试用例的依据;
其中,在所述步骤S2中:
利用如下方法确定所述第一锚节点:
步骤S2-a1、获取所述调用图的节点和边作为函数调用关系;
步骤S2-a2、基于所述调用关系,使用walktrap方法对所述函数进行功能分类,以生成互不相交的多个函数子集;
步骤S2-a3、通过迭代确定所述调用图中的节点的权重,从每一个所述函数子集中选出关键节点数量,并构建所述第一锚节点;
利用如下方法确定所述第二锚节点:
步骤S2-b1、提取所述目标程序中的函数特征作为第一特征,提取漏洞库中的函数特征作为第二特征;
步骤S2-b2、利用神经网络对所述第一特征和所述第二特征进行嵌入,以分别获得第一特征向量和第二特征向量;
步骤S2-b3、计算所述第一特征向量和第二特征向量的相似度,并基于所述相似度构建所述第二锚节点。
2.根据权利要求1所述的用于提升模糊测试的覆盖率的方法,其特征在于,在步骤S3中,根据所述种子节点在进行所述模糊测试时的执行轨迹来确定所述距离。
3.一种用于提升模糊测试的覆盖率的系统,其特征在于,所述系统包括:
预处理单元,被配置为,对作为测试用例的目标程序进行预处理,以获得所述目标程序中函数的调用图;
锚节点确定单元,被配置为,基于所述调用图确定所述目标程序中用于模糊测试的锚节点,所述锚节点包括基于复杂网络的第一锚节点和基于神经网络的第二锚节点;
距离计算单元,被配置为,根据锚节点,利用插桩工具来确定种子节点到所述锚节点的距离;
能量计算单元,被配置为,基于所述距离来计算所述种子节点的能量,选取所述能量高于阈值的种子节点作为评估变异测试用例的依据;
其中,所述锚节点确定单元具体被配置为:
利用如下方式确定所述第一锚节点:
获取所述调用图的节点和边作为函数调用关系;
基于所述调用关系,使用walktrap方法对所述函数进行功能分类,以生成互不相交的多个函数子集;
通过迭代确定所述调用图中的节点的权重,从每一个所述函数子集中选出关键节点数量,并构建所述第一锚节点;
利用如下方式确定所述第二锚节点:
提取所述目标程序中的函数特征作为第一特征,提取漏洞库中的函数特征作为第二特征;
利用神经网络对所述第一特征和所述第二特征进行嵌入,以分别获得第一特征向量和第二特征向量;
计算所述第一特征向量和第二特征向量的相似度,并基于所述相似度构建所述第二锚节点。
4.根据权利要求3所述的用于提升模糊测试的覆盖率的系统,其特征在于,所述距离计算单元具体被配置为:根据所述种子节点在进行所述模糊测试时的执行轨迹来确定所述距离。
5.一种存储有指令的非暂时性计算机可读介质,当所述指令由处理器执行时,执行根据权利要求1-2中任一项所述的用于提升模糊测试的覆盖率的方法中的步骤。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军国防科技大学,未经中国人民解放军国防科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110000642.1/1.html,转载请声明来源钻瓜专利网。





