当前位置: 首页 > 专利查询>东南大学专利>正文

模糊测试用例生成方法技术

技术编号:39670865 阅读:7 留言:0更新日期:2023-12-11 18:36
本发明专利技术公开了一种模糊测试用例生成方法,涉及深度学习技术领域,用于解决现有训练样本数量少,长短不一,存在着较多低质量

【技术实现步骤摘要】
模糊测试用例生成方法、装置、设备及介质


[0001]本专利技术涉及深度学习
,尤其涉及一种面向二进制程序的模糊测试用例生成方法

装置

设备及介质


技术介绍

[0002]模糊测试
(Fuzz Testing)
是一种自动化的软件测试技术,其核心是自动或半自动的生成随机数据输入到应用程序中,同时监控程序的异常情况,如崩溃

代码断言失败,以此发现可能的程序错误,如内存泄漏

[0003]现有的模糊测试用例基于生成模型得到,不能准确地生成样本的格式结构,对于高度结构化的输入种子,生成的样本在尝试还原其格式结构时,在许多字节上易出现偏差

此外,目前主流的使用生成对抗网络的生成方法,在训练生成结构复杂的样本时,容易出现不收敛的情况

再次,当进行深度学习模型训练时,所使用的训练集大多来源于真实场景收集与模糊工具变异生成,此类训练样本往往数量较少,长短不一,存在着较多低质量

内容重复的样本,严重影响着模型的训练效果


技术实现思路

[0004]为了克服现有技术的不足,本专利技术的目的之一在于提供一种模糊测试用例生成方法,其通过对测试用例向量化,并进行线性插值处理,进而获取多样化的测试用例

[0005]本专利技术的目的之一采用以下技术方案实现:
[0006]一种模糊测试用例生成方法,包括以下步骤:
[0007]通过模糊测试工具生成初始模糊测试用例;
[0008]通过聚类对所述测试用例进行数据筛选;
[0009]将筛选后的所述测试用例读取为二进制流,并进行归一化处理得到测试用例向量;
[0010]对所述测试用例向量进行线性插值处理,得到合成向量;
[0011]将所述测试用例向量及所述合成向量输入生成对抗网络进行模型训练并生成多样化模糊测试用例

[0012]进一步地,所述模糊测试工具为
AFL++。
[0013]进一步地,所述聚类为
kmeans
聚类

[0014]进一步地,通过聚类对所述测试用例进行数据筛选,包括:
[0015]计算所述初始模糊测试用例字节数;
[0016]通过
kmeans
方法对所述测试用例字节数进行聚类,得到聚类簇;
[0017]选取所述聚类簇中测试用例数最多的簇
C
,若簇
C
的用例数量小于总用例数量的
70
%,则令聚类中心数减1,重新聚类直到簇
C
用例数大于等于总用例数量的
70
%;
[0018]丢弃其余用例,仅保留簇
C。
[0019]进一步地,将筛选后的所述测试用例读取为二进制流,并进行归一化处理得到测
试用例向量,包括:
[0020]将筛选后的所述测试用例读取为二进制流,并记录所述测试用例中最大字节长度
L

[0021]通过补0的方式将所有所述二进制流长度填充至
L

[0022]将所述二进制流中每4比特转化为
16
进制;
[0023]归一化得到测试用例向量
x
i
,i∈(1,N)
,其中,
N
为用例向量的总数

[0024]进一步地,对所述测试用例向量进行线性插值处理,得到合成向量,包括:
[0025]选取归一化得到的测试用例向量及随机测试用例向量,进行线性插值,得到合成向量

[0026]进一步地,所述生成对抗网络包括编码器

生成器及判别器;
[0027]所述编码器包括1个用于隐向量映射的全连接层
、2
个堆叠的
transformer
网络块及3个用于采样的全连接层;
[0028]所述生成器包括1个用于隐向量映射的全连接层
、2
个堆叠的
transformer
网络块
、2
个用于生成空间映射的全连接层及“Sigmoid”激活函数层;
[0029]所述判别器包括5个交替连接的全连接层

归一化
(LayerNormalization)
层及用于计算输出的全连接层

[0030]本专利技术的目的之二在于提供一种模糊测试用例生成装置,其通过对测试用例向量化,进而结合生成对抗网络输出多样化测试用例

[0031]本专利技术的目的之二采用以下技术方案实现:
[0032]一种模糊测试用例生成装置,其包括:
[0033]用例生成模块,用于通过模糊测试工具生成初始模糊测试用例;
[0034]数据处理模块,用于通过聚类对所述测试用例进行数据筛选;将筛选后的所述测试用例读取为二进制流,并进行归一化处理得到测试用例向量;并对所述测试用例向量进行线性插值处理,得到合成向量;
[0035]结果输出模块,用于将所述测试用例向量及所述合成向量输入生成对抗网络进行模型训练并生成多样化模糊测试用例

[0036]本专利技术的目的之三在于提供执行专利技术目的之一的电子设备,其包括处理器

存储介质以及计算机程序,所述计算机程序存储于存储介质中,所述计算机程序被处理器执行时实现上述的模糊测试用例生成方法

[0037]本专利技术的目的之四在于提供存储专利技术目的之一的计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的模糊测试用例生成方法

[0038]相比现有技术,本专利技术的有益效果在于:
[0039]本专利技术提出一种面向二进制程序的模糊测试用例生成方法,可实时收集测试用例,本专利技术将生成对抗网络的训练和生成过程同步进行,实现多样化测试用例的持续生成;生成对抗网络的训练集和输入数据结合本专利技术数据筛选及合成向量等数据与数理,一方面解决了深度学习模型易受到小数量

大差异的“异常样本”的干扰的问题,另一方面,可以丰富测试样本的多样性,扩充测试样本的变异点,有利于深度学习模型学习到更大的输入空间,可以提升深度学习模型的训练稳定性

不仅增加了训练样本的质量和数量,还使测试用例生成精度高

格式保留完整

附图说明
[0040]图1是实施例一模糊测试用例生成方法的流程图;
[0041]图2是实施例一聚类方法的流程图;
[0042]图3是实施例一的生成对抗网络结构示意图;
[0043]图4是实施例二的模糊测试用例生成装置的结构框图;
[0044]图5是实施例三的电子设备的结构框图

具体实本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种模糊测试用例生成方法,其特征在于,包括以下步骤:通过模糊测试工具实时生成初始模糊测试用例;通过聚类对所述测试用例进行数据筛选;将筛选后的所述测试用例读取为二进制流,并进行归一化处理得到测试用例向量;对所述测试用例向量进行线性插值处理,得到合成向量;将所述测试用例向量及所述合成向量输入生成对抗网络进行模型训练并生成多样化模糊测试用例
。2.
如权利要求1所述的模糊测试用例生成方法,其特征在于,所述模糊测试工具为
AFL++。3.
如权利要求1所述的模糊测试用例生成方法,其特征在于,所述聚类为
kmeans
聚类
。4.
如权利要求3所述的模糊测试用例生成方法,其特征在于,通过聚类对所述测试用例进行数据筛选,包括:计算所述初始模糊测试用例字节数;通过
kmeans
方法对所述测试用例字节数进行聚类,得到聚类簇;选取所述聚类簇中测试用例数最多的簇
C
,若簇
C
的用例数量小于总用例数量的
70
%,则令聚类中心数减1,重新聚类直到簇
C
用例数大于等于总用例数量的
70
%;丢弃其余用例,仅保留簇
C。5.
如权利要求1所述的模糊测试用例生成方法,其特征在于,将筛选后的所述测试用例读取为二进制流,并进行归一化处理得到测试用例向量,包括:将筛选后的所述测试用例读取为二进制流,并记录所述测试用例中最大字节长度
L
;通过补0的方式将所有所述二进制流长度填充至
L
;将所述二进制流中每4比特转化为
16
进制;归一化得到测试用例向量
x
i
,i∈(1,N)
,其中,
N
为用例向量的总数

【专利技术属性】
技术研发人员:王文李泽儒李沁园刘煦健孙歆汪自翔秦中元王译锋侯虎成
申请(专利权)人:东南大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1