用于模糊测试筛选测试用例的方法、装置、电子设备和介质制造方法及图纸

技术编号:37977268 阅读:6 留言:0更新日期:2023-06-30 09:52
本申请公开了一种用于模糊测试筛选测试用例的方法、装置、电子设备和介质,所述方法利用神经网络判断种子库中经过变异的种子是否为有效测试用例;将判断为有效测试用例的对应的所述种子加入种子库中。根据上述方法可以解决现有测试技术中种子冗余、模糊测试效率不高的问题。的问题。的问题。

【技术实现步骤摘要】
用于模糊测试筛选测试用例的方法、装置、电子设备和介质


[0001]本申请涉及网络安全
,尤其涉及一种用于模糊测试筛选测试用例的方法、装置、储存介质和处理器。

技术介绍

[0002]模糊测试是一种自动化软件测试技术,用于找到程序或软件中的未发现的漏洞。模糊测试的核心算法是进化算法,由种子预料库通过变异产生大量的随机的、畸形的测试用例,将这些测试用例输入到程序中执行,监控程序执行的过程,记录执行过程中会产生异常情况,如崩溃等。由于漏洞的数量是稀少的,随机测试用例是大量的,怎么从大量的测试用例中选出能触发漏洞的测试用例,是模糊测试要解决的关键问题。
[0003]按照内部结构分析,模糊测试主要分为三种:黑盒模糊测试(black

box fuzzing)、白盒模糊测试(grey

box fuzzing)、灰盒模糊测试(white

box fuzzing)。黑盒模糊测试是将程序作为黑盒子,不知道程序内部代码的逻辑和流程的情况下进行测试。白盒模糊测试是对程序内部代码的分析的基础上进行测试。灰盒测试介于白盒和黑盒模糊测试之间,它通过对被测程序轻量级的分析后指导测试用例的生成,以便更好地发现程序中的漏洞。其中,AFL(AmericanFuzzy Lop)是最经典的基于变异的灰盒模糊测试工具之一,其工作流程大致如下:
[0004]选择一些种子文件,作为初始种子加入种子队列;
[0005]将这些种子文件进行变异,获得变异种子;
[0006]将这些变异种子输入到程序中执行,AFL的插桩模块记录种子路径覆盖率;
[0007]如果种子触发了代码路径覆盖或触发程序崩溃,则将其保留到种子队列;
[0008]上述步骤循环,找到更多的能触发程序崩溃的种子。
[0009]为了提高模糊测试的效率,可以从种子筛选,种子变异,种子调度等几个方面进行改进,但是目前模糊测试方法依然依赖于路径覆盖增长的筛选条件,而路径覆盖增长筛选条件会导致种子冗余和模糊测试效率不高等问题。

技术实现思路

[0010]本申请目的在于提出一种用于模糊测试筛选测试用例的方法、装置、电子设备和介质,用于解决现有技术中的测试方法导致种子冗余和模糊测试效率不高的问题。
[0011]本申请的第一个方面,提出一种用于模糊测试筛选测试用例的方法,包括:
[0012]利用神经网络判断种子库中经过变异的种子是否为有效测试用例;
[0013]将判断为有效测试用例的对应的所述种子加入种子库中。
[0014]进一步的,所述利用神经网络判断种子库中经过变异的种子是否为有效测试用例之前,包括:
[0015]采用多组数据训练所述神经网络,所述多组数据中的每组数据包括历史测试用例及标记该历史测试用例有效性的标签。
[0016]进一步的,所述历史测试用例及标记该历史测试用例有效性的标签通过以下方法产生:
[0017]进行模糊测试获得变异种子及其对应的测试结果;
[0018]将所述变异种子及其对应的测试结果分别作为历史测试用例及标记该历史测试用例有效性的标签,所述测试结果提示为有效测试用例的则所述标签标记指示为有效标签,所述测试结果提示为无效测试用例的则所述标签标记指示为无效标签。
[0019]进一步的,所述采用多组数据训练神经网络,包括:所述神经网络为卷积神经网络。
[0020]进一步的,所述神经网络采用3*3、4*4和5*5的卷积核。
[0021]进一步的,所述模糊测试为AFL测试。
[0022]本申请的第二个方面,提供一种用于模糊测试筛选测试用例的装置,包括:
[0023]判断模块,用于利用神经网络判断种子库中经过变异的种子是否为有效测试用例;
[0024]入库模块,用于将判断为有效测试用例的对应的所述种子加入种子库中。
[0025]进一步的,所述装置还包括:
[0026]训练模块,用于采用多组数据训练所述神经网络,所述多组数据中的每组数据包括历史测试用例及标记该历史测试用例有效性的标签。
[0027]本申请的第三个方面,提供一种电子设备,包括处理器和存储器,所述存储器中存储有计算机程序,所述计算机程序被配置为被所述处理器执行以实现上述第一个方面所述的一种用于模糊测试筛选测试用例的方法。
[0028]本申请的第四个方面,提供一种计算机可读介质,所述计算机可读介质内存储有计算机程序,所述计算机程序用于实现上述第一个方面所述的一种用于模糊测试筛选测试用例的方法。
[0029]本申请所达到的有益效果:
[0030]由以上技术方案可知,本申请的技术方案提供了一种用于模糊测试筛选测试用例的方法,利用神经网络判断种子库中经过变异的种子是否为有效测试用例,将判断为有效测试用例的对应的所述种子加入种子库中。通过上述方法优化传统模糊测试中种子的筛选条件,解决了现有测试技术中种子冗余的问题,提高了模糊测试的效率。
[0031]应当理解,前述构思以及在下面更加详细地描述的额外构思的所有组合只要在这样的构思不相互矛盾的情况下都可以被视为本公开的申请主题的一部分。
[0032]结合附图从下面的描述中可以更加全面地理解本申请教导的前述和其他方面、实施例和特征。本申请的其他附加方面例如示例性实施方式的特征和/或有益效果将在下面的描述中显见,或通过根据本申请教导的具体实施方式的实践中得知。
附图说明
[0033]以下附图仅为本申请中部分实施例的对应附图,附图不意在按比例绘制。在附图中,在各个图中示出的每个相同或近似相同的组成部分可以用相同的标号表示。为了清晰起见,在每个图中,并非每个组成部分均被标记。现在,将通过例子并参考附图来描述本申请的各个方面的实施例,其中:
[0034]图1是本申请实施例中一种用于模糊测试筛选测试用例的方法流程图。
具体实施方式
[0035]需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
[0036]需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
[0037]本申请实施例针对现有技术中种子冗余和模糊测试效率不高的问题,通过训练深度学习模型,筛选出有效测试用例加入种子序列,等待下一次变异执行及模糊测试,放弃无效测试用例,从而解决种子冗余的问题,提高模糊测试的效率。
[0038]实施例一
[0039]本实施例仅仅作为本申请实施方式的一种具体实施例,以下结合附图和具体实施例对本申请作进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
[0040]如图1所示,为本申请的具体实施例的一种用于模糊测试筛选测试用例的方法的流程示意本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于模糊测试筛选测试用例的方法,其特征在于,包括:利用神经网络判断种子库中经过变异的种子是否为有效测试用例;将判断为有效测试用例的对应的所述种子加入种子库中。2.如权利要求1所述的方法,其特征在于,所述利用神经网络判断种子库中经过变异的种子是否为有效测试用例之前,包括:采用多组数据训练所述神经网络,所述多组数据中的每组数据包括历史测试用例及标记该历史测试用例有效性的标签。3.如权利要求2所述的方法,其特征在于,所述历史测试用例及标记该历史测试用例有效性的标签通过以下方法产生:进行模糊测试获得变异种子及其对应的测试结果;将所述变异种子及其对应的测试结果分别作为历史测试用例及标记该历史测试用例有效性的标签,所述测试结果提示为有效测试用例的则所述标签标记指示为有效标签,所述测试结果提示为无效测试用例的则所述标签标记指示为无效标签。4.如权利要求2所述的方法,其特征在于,所述采用多组数据训练神经网络,包括:所述神经网络为卷积神经网络。5.如权利要求4所述的方法,其特征在于,所述神经网络采用3*3、4*4和...

【专利技术属性】
技术研发人员:藕先文吴宣够陈波
申请(专利权)人:安徽工业大学
类型:发明
国别省市:

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

1