[发明专利]一种基于梯度下降优化的模糊测试方法有效
| 申请号: | 202110217923.2 | 申请日: | 2021-02-26 |
| 公开(公告)号: | CN112925710B | 公开(公告)日: | 2022-05-20 |
| 发明(设计)人: | 谢盈 | 申请(专利权)人: | 西南民族大学 |
| 主分类号: | G06F11/36 | 分类号: | G06F11/36;G06N3/04;G06N3/08;G06N7/04 |
| 代理公司: | 北京正华智诚专利代理事务所(普通合伙) 11870 | 代理人: | 李梦蝶 |
| 地址: | 610041 四川*** | 国省代码: | 四川;51 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 梯度 下降 优化 模糊 测试 方法 | ||
1.一种基于梯度下降优化的模糊测试方法,其特征在于,包括以下步骤:
S1、采用模糊测试工具对待测试系统生成初始测试用例;
S2、构建初始神经网络模型,将初始测试用例的特征向量作为初始神经网络模型的输入,获取初始神经网络模型输出的边覆盖数据;
S3、采用初始测试用例对待测试系统进行测试,通过插桩获取待测试系统的控制流信息,进而得到与待测试系统对应的边覆盖数据;
S4、分别基于初始神经网络模型输出的边覆盖数据和与待测试系统对应的边覆盖数据获取对应的位图,获取并根据两个位图的差异的欧式距离构造损失函数;
S5、根据极大似然估计法和损失函数更新初始神经网络模型的权值,得到训练后的神经网络模型;
S6、根据至少需要改变多少个测试用例字节会导致训练后的神经网络模型的输出发生改变对输入训练后的神经网络模型的每一个测试用例进行梯度计算,对计算结果进行降序排序后选出前k个测试用例;即将导致训练后的神经网络模型的输出发生改变的测试用例的字节改变数量作为测试用例对应的梯度计算结果;
S7、采用截断函数对选出的k个测试用例的梯度进行过滤,并将选出的k个测试用例朝着过滤后的梯度方向进行变异产生新的测试用例;
S8、设立梯度阈值,对于小于梯度阈值的新的测试用例进行邻近搜索,将空间内欧氏距离小于梯度阈值的新的测试用例进行基于密度的聚类并选取一个代表测试用例;
S9、将新的测试用例的特征向量输入训练后的神经网络模型,将新的测试用例输入待测试系统,判断训练后的神经网络模型和待测试系统的输出差异是否大于阈值,若是则放弃对应的变异后的测试用例、保留对应的变异前的测试用例并降低变异速率;否则保留对应的变异后的测试用例;
S10、判断是否完成对待测试系统的全部边覆盖,若是则结束测试;否则剔除代表测试用例并基于当前保留的测试用例返回步骤S6。
2.根据权利要求1所述的基于梯度下降优化的模糊测试方法,其特征在于,步骤S1中模糊测试工具为AFL。
3.根据权利要求1所述的基于梯度下降优化的模糊测试方法,其特征在于,步骤S2中初始神经网络模型包括输入层、隐层和输出层;隐层包括一层卷积层和两层全连接层;
隐层中卷积层用于对测试用例的输入输出进行平滑以及特征提取,隐层中卷积层的参数包括卷积核大小和滑动步长,激活函数为线性整流函数;
隐层中全连接层用于对卷积层提取的特征进行整合,隐层中全连接层的参数包括神经元数量;
初始神经网络模型输出的边覆盖数据为以边为单位的边覆盖位图y,边覆盖位图y中第i个数据yi∈{0,1},i=1,2,...,n,其中n为系统中的边数,y为n维数组,数组元素的取值为0或1,边为两个相邻的逻辑模块的跳转。
4.根据权利要求3所述的基于梯度下降优化的模糊测试方法,其特征在于,步骤S4中根据两个位图的差异的欧式距离构造损失函数的具体方法为:
根据公式:
构造损失函数L(y,f(x,θ));其中yi为待测试系统输入为x时对应的边覆盖数据;f(x,θ)为初始神经网络模型在输入为x、权值为θ时得到的边覆盖位图。
5.根据权利要求4所述的基于梯度下降优化的模糊测试方法,其特征在于,步骤S5的具体方法为:
根据公式:
更新初始神经网络模型的权值,得到更新后的权值θ';其中X为测试用例集合;Y为与X对应的边覆盖位图集合。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西南民族大学,未经西南民族大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110217923.2/1.html,转载请声明来源钻瓜专利网。





