模糊测试用例生成与选择方法、装置、设备及介质与流程

文档序号:36390872发布日期:2023-12-15 09:07阅读:26来源:国知局
模糊测试用例生成与选择方法

本发明涉及模糊测试,尤其涉及一种基于分支信息的模糊测试用例生成与选择方法、装置、设备及介质。


背景技术:

1、模糊测试,是一种通过向目标系统提供非预期的输入并监视异常结果来发现软件漏洞的方法,其是检测目标程序崩溃的最简单有效的方法之一。

2、现有的模糊测试工具及模糊测试方法不会考虑如何在待测程序中触发崩溃,其根据初始种子变异生成大量测试用例输入待测程序,并检测待测程序是否表现异常。对人工要求较高,需要测试人员熟练掌握测试用例格式;且现有的模糊测试工具的输入存在大量冗余、模糊测试方法生成的测试用例种类单一,无法全面高效地进行漏洞挖掘。

3、综上,亟需一种测试用例丰富多样且安全性更高的模糊测试用例生成与选择方法。


技术实现思路

1、为了克服现有技术的不足,本发明的目的之一在于提供一种模糊测试用例生成与选择方法,其结合测试用例的分支信息,优化模糊测试的初始种子,进而得到丰富多样且分支覆盖率较高的测试用例。

2、本发明的目的之一采用以下技术方案实现:

3、一种模糊测试用例生成与选择方法,包括以下步骤:

4、接收测试用例集,并获取所述测试用例集的测试用例分支信息;

5、将所述分支信息转换为分支向量;

6、对所述测试用例集进行预处理,将所述测试用例集转换为测试用例向量;

7、将所述分支向量及所述测试用例向量输入预设网络模型进行训练,根据分支信息,输入训练好的所述预设网络模型模型生成对应的测试用例;

8、通过蚁群算法对生成的所述测试用例进行筛选;

9、将筛选到的测试用例输入模糊测试工具进行模糊测试。

10、进一步地,获取所述测试用例集的测试用例分支信息,包括:

11、通过afl-showmap工具获取每个测试用例的分支覆盖率信息,并标记每个分支的被覆盖次数。

12、进一步地,将所述分支信息转换为分支向量,包括:

13、基于n-hot编码及所述分支信息,生成键值对形式的分支字典,所述分支为字典的key,所述分支覆盖次数为value值;

14、根据所述分支字典,将所述分支信息转换为分支向量,所述分支向量的维度等于所述分支字典的维度。

15、进一步地,将所述分支信息转换为分支向量后,还包括:通过神经网络对所述分支向量进行降维,所述神经网络为全连接层组成的编码器。

16、进一步地,对所述测试用例集进行预处理,将所述测试用例集转换为测试用例向量,包括:

17、以二进制形式读取所述测试用例集;

18、将每2位二进制形式的所述测试用例集数据转换为一位十进制数值;

19、通过归一化,将所述十进制数值转化为0-1范围内的实数,得到测试用例向量。

20、进一步地,所述预设网络模型为基于一维卷积的cwgan-gp模型,优化器为adam;

21、所述wgan-gp模型训练时的损失函数为wasserstein距离,满足:

22、

23、

24、

25、所述cwgan-gp模型的生成器及判别器损失函数满足:

26、

27、

28、

29、其中,g表示生成器,d表示判别器,lg表示生成器的损失,ld表示判别器的损失,gp表示梯度惩罚,λ表示梯度惩罚参数;c表示作为条件的分支向量,x表示真实的测试用例,表示生成的测试用例,为真实测试用例x与生成测试用例的线性插值,pz表示高斯分布,pr表示真实分布,pg表示生成分布。

30、进一步地,所述蚁群算法以schf函数作为启发信息以求解测试用例集最小化问题,满足:

31、

32、其中,p(si)是测试用例si的覆盖度,r(si)是测试用例si的必选度;

33、所述蚁群算法在每个蚂蚁选择一个测试用例si后,都会更新d=d∪|si|,x=x-si,s=s-si,ηi以及概率集合d是蚂蚁k寻找到的一个解,x初值为初始语料集覆盖的全部分支,s初值为初始语料集。

34、本发明的目的之二在于提供一种模糊测试用例生成与选择装置,其通过获取测试用例的分支信息,进而通过神经网络模型得到分支覆盖率高的测试用例。

35、本发明的目的之二采用以下技术方案实现:

36、一种模糊测试用例生成与选择装置,其包括:

37、接收模块,用于接收测试用例集,并获取所述测试用例集的测试用例分支信息;

38、转换模块,用于将所述分支信息转换为分支向量;并对所述测试用例集进行预处理,将所述测试用例集转换为测试用例向量;

39、将所述分支向量及所述测试用例向量输入预设网络模型进行训练,利用训练好的模型根据分支信息生成对应的测试用例;

40、选择模块,用于通过蚁群算法对生成的所述测试用例进行筛选;

41、测试模块,用于将筛选到的测试用例输入模糊测试工具进行模糊测试。

42、本发明的目的之三在于提供执行发明目的之一的电子设备,其包括处理器、存储介质以及计算机程序,所述计算机程序存储于存储介质中,所述计算机程序被处理器执行时实现上述的模糊测试用例生成与选择方法。

43、本发明的目的之四在于提供存储发明目的之一的计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的模糊测试用例生成与选择方法。

44、相比现有技术,本发明的有益效果在于:

45、本发明结合模糊测试用例的分支信息,使生成的测试用例可控,结合网络模型使得测试用例种类丰富,也避免了传统模糊测试生成方法需要测试人员熟练掌握测试用例格式信息,极大减轻了测试人员的负担;对测试用例的预处理,还增加了本发明的通用性,可以广泛应用于各类软件程序的模糊测试。此外,本发明通过蚁群算法求解给定测试用例集的最小覆盖集以进行测试用例筛选,提高了模糊测试的测试效率及测试效果。



技术特征:

1.一种模糊测试用例生成与选择方法,其特征在于,包括以下步骤:

2.如权利要求1所述的模糊测试用例生成与选择方法,其特征在于,获取所述测试用例集的测试用例分支信息,包括:

3.如权利要求2所述的模糊测试用例生成与选择方法,其特征在于,将所述分支信息转换为分支向量,包括:

4.如权利要求1所述的模糊测试用例生成与选择方法,其特征在于,将所述分支信息转换为分支向量后,还包括:通过神经网络对所述分支向量进行降维,所述神经网络为全连接层组成的编码器。

5.如权利要求1所述的模糊测试用例生成与选择方法,其特征在于,对所述测试用例集进行预处理,将所述测试用例集转换为测试用例向量,包括:

6.如权利要求1所述的模糊测试用例生成与选择方法,其特征在于,所述预设网络模型为基于一维卷积的cwgan-gp模型,优化器为adam;

7.如权利要求1所述的模糊测试用例生成与选择方法,其特征在于,其包括:

8.一种模糊测试用例生成与选择装置,其特征在于,其包括:

9.一种电子设备,其包括处理器、存储介质以及计算机程序,所述计算机程序存储于存储介质中,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7任一项所述的模糊测试用例生成与选择方法。

10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7任一项所述的模糊测试用例生成与选择方法。


技术总结
本发明公开了一种模糊测试用例生成与选择方法,涉及模糊测试技术领域,用于解决生成的测试用例单一的问题,该方法包括以下步骤:接收测试用例集,并获取测试用例集的测试用例分支信息;将分支信息转换为分支向量;对所述测试用例集进行预处理,将所述测试用例集转换为测试用例向量;将分支向量及测试用例向量输入预设网络模型进行训练,利用训练好的模型根据分支信息生成对应的测试用例;通过蚁群算法对生成的测试用例进行筛选;将筛选保留的测试用例输入模糊测试工具进行模糊测试。本发明还公开了一种模糊测试用例生成与选择装置、电子设备和计算机存储介质。本发明通过对测试用例分支信息进行分析学习,进而获取丰富多样的测试用例。

技术研发人员:汪自翔,范家荣,孙歆,李沁园,刘煦健,王文,秦中元,侯虎成
受保护的技术使用者:国网浙江省电力有限公司电力科学研究院
技术研发日:
技术公布日:2024/1/15
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1