一种基于多参数输入的模糊测试方法及装置与流程



1.本发明实施例涉及模糊测试技术领域,特别是涉及一种基于多参数输入的模糊测试方法及装置。


背景技术:



2.模糊测试是一种通过向目标系统提供非预期的输入并监视异常结果来发现软件漏洞的方法。申请号为cn201810082824.6,名称为“一种用于灰盒模糊测试的样本格式保护方法及装置”的发明专利,公开了一种用于灰盒模糊测试的样本格式保护方法及装置,包括:训练机器学习模型以使该模型可以识别测试语料的格式的正确性;对程序进行模糊测试时,从语料集中获取初始语料,对初始语料变异得到测试语料;应用测试语料对程序进行模糊测试,在模糊测试的过程中通过该模型确定测试语料的格式是否正确。当测试语料的格式正确且覆盖了已有测试语料没有覆盖的程序代码时,将该测试语料添加到语料集中,并重复这个过程。然而这种模糊测试方法只能通过对单一输入参数变异进行模糊测试,测试效率不高。
3.因此,有必要提供一种基于多参数输入的模糊测试方法及装置,可以有效解决上述问题。


技术实现要素:



4.本发明提供一种基于多参数输入的模糊测试方法,可以支持多个参数同时进行模糊测试,对测试效率有显著的提升。
5.本发明实施例提供一种基于多参数输入的模糊测试方法,包括:
6.获取多参数语料,对所述多参数语料进行检测;
7.检测通过后对所述多参数语料进行语料解析,得到解析出的多个参数;
8.对所述解析出的多个参数进行参数变异调度,对所述解析出的多个参数进行变异,得到测试语料;
9.使用所述测试语料对被测程序进行运行测试,获得反馈的覆盖率与异常数据。
10.优选地,所述对所述多参数语料进行检测包括判断所述多参数语料是否满足标准语料格式,若满足所述标准语料格式则检测通过,若不满足所述标准语料格式则检测不通过,丢弃所述多参数语料;
11.所述标准语料格式包括语料头部和语料参数,所述语料头部包括参数个数,所述语料参数包括参数类型、参数值、依赖参数、是否保留以及取值范围,所述参数类型包括定长、不定长、结构体。
12.优选地,所述检测通过后对所述多参数语料进行语料解析,得到解析出的多个参数包括:
13.如所述语料参数中存在结构体,则将所述结构体中的所有参数提取至第一层;
14.如所述语料参数中存在多个名字相同的参数,则将所述多个名字相同的参数名称
后增加本次操作序号;
15.如所述语料参数中无结构体,则完成所述语料解析,得到所述解析出的多个参数。
16.优选地,所述对所述解析出的多个参数进行参数变异调度,对所述解析出的多个参数进行变异,得到测试语料包括:
17.读取所述解析出的多个参数、用户保留项和变异保留项,所述用户保留项为所述语料参数中的是否保留字段标记为式是的语料参数,所述变异保留项为进入当前路径的保留参数;
18.读取当前的测试进度以及当前的测试阶段,所述测试阶段包括第一测试阶段、第二测试阶段和第三测试阶段。
19.优选地,所述第一测试阶段、第二测试阶段和第三测试阶段包括:
20.所述第一测试阶段为普通阶段,用于当前代码块的错误探索。
21.所述第二测试阶段为拓展保留阶段,针对新路径的条件参数侦测,通过对所述多个参数进行变异,从而探索新路径的变异保留项;
22.所述第三测试阶段为拓展挖掘阶段,针对变异保留项变异阶段,用于新路径的分支探索。
23.优选地,所述第一测试阶段对所述用户保留项以及所述变异保留项以外的所述多个参数进行全部或部分随机变异;所述第二测试阶段根据所述当前的测试进度与当前的变异保留项,依次对所述用户保留项以及所述变异保留项以外的所述多个参数进行随机变异;所述第三测试阶段对当前的变异保留参数进行全部或部分随机变异。
24.优选地,根据调度器给定的参数,依据参数类型、依赖参数、取值范围的要求,对参数中的每个参数进行变异,在全部参数变异完成后将变异后的参数写入测试参数中。
25.本发明实施例还提供一种基于多参数输入的模糊测试装置,包括:
26.多参数语料获取模块,其用于获取多参数语料,对所述多参数语料进行检测;
27.语料解析模块,其用于检测通过后对所述多参数语料进行语料解析,得到解析出的多个参数;
28.参数变异调度模块,其用于对所述解析出的多个参数进行参数变异调度,对所述解析出的多个参数进行变异,得到测试语料;
29.运行测试模块,其用于使用所述测试语料对被测程序进行运行测试,获得反馈的覆盖率与异常数据。
30.优选地,所述多参数语料获取模块包括标准语料检测单元,其用于判断所述多参数语料是否满足标准语料格式,若满足所述标准语料格式则检测通过,若不满足所述标准语料格式则检测不通过,丢弃所述多参数语料;
31.所述标准语料格式包括语料头部和语料参数,所述语料头部包括参数个数,所述语料参数包括参数类型、参数值、依赖参数、是否保留以及取值范围,所述参数类型包括定长、不定长、结构体。
32.优选地,所述语料解析模块包括语料参数检测单元,其用于判断如所述语料参数中存在结构体,则将所述结构体中的所有参数提取至第一层;如所述语料参数中存在多个名字相同的参数,则将所述多个名字相同的参数名称后增加本次操作序号;如所述语料参数中无结构体,则完成所述语料解析,得到所述解析出的多个参数。
33.与现有技术相比,本发明实施例的技术方案具有以下有益效果:
34.本发明实施例的基于多参数输入的模糊测试方法及装置,获取多参数语料,对所述多参数语料进行检测;检测通过后对所述多参数语料进行语料解析,得到解析出的多个参数;对所述解析出的多个参数进行参数变异调度,对所述解析出的多个参数进行变异,得到测试语料;使用所述测试语料对被测程序进行运行测试,获得反馈的覆盖率与异常数据,从而可以支持多个参数同时进行模糊测试,对测试效率有显著的提升。
附图说明
35.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,而不是全部实施例。对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
36.图1为本发明的一个实施例提供的基于多参数输入的模糊测试方法的流程示意图;
37.图2为本发明的另一个实施例提供的基于多参数输入的模糊测试方法的流程示意图;
38.图3为本发明的一个实施例提供的基于多参数输入的模糊测试装置的模块示意图;
39.图4为本发明的另一个实施例提供的基于多参数输入的模糊测试装置的模块示意图。
具体实施方式
40.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
41.下面以具体的实施例对本发明的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
42.基于现有技术存在的问题,本发明实施例提供一种基于多参数输入的模糊测试方法及装置,可以支持多个参数同时进行模糊测试,对测试效率有显著的提升。
43.图1为本发明的一个实施例提供的基于多参数输入的模糊测试方法的流程示意图。现在参看图1,本发明实施例提供一种基于多参数输入的模糊测试方法,包括:
44.步骤s101:获取多参数语料,对所述多参数语料进行检测;
45.步骤s102:检测通过后对所述多参数语料进行语料解析,得到解析出的多个参数;
46.步骤s103:对所述解析出的多个参数进行参数变异调度,对所述解析出的多个参数进行变异,得到测试语料;
47.步骤s104:使用所述测试语料对被测程序进行运行测试,获得反馈的覆盖率与异常数据。
48.在一些实施例中,所述对所述多参数语料进行检测包括判断所述多参数语料是否
满足标准语料格式,若满足所述标准语料格式则检测通过,若不满足所述标准语料格式则检测不通过,丢弃所述多参数语料;
49.所述标准语料格式包括语料头部和语料参数,所述语料头部包括参数个数,所述语料参数包括参数类型、参数值、依赖参数、是否保留以及取值范围,所述参数类型包括定长、不定长、结构体。
50.在一些实施例中,所述检测通过后对所述多参数语料进行语料解析,得到解析出的多个参数包括:
51.如所述语料参数中存在结构体,则将所述结构体中的所有参数提取至第一层;
52.如所述语料参数中存在多个名字相同的参数,则将所述多个名字相同的参数名称后增加本次操作序号;
53.如所述语料参数中无结构体,则完成所述语料解析,得到所述解析出的多个参数。
54.在具体实施中,所述语料参数包括第一层参数a、第一层参数b、第一层结构体、第二层参数c、第二层结构体、第三层参数d,所述第一层参数a和第二层参数b位于第一层,所述第一层结构体包括第二层参数c和第二层结构体,所述第二层结构体包括第三层参数d。首先将第一层结构体重的第二层参数c提取至第一层,然后将第二层结构体重的第三层参数d提取至第一层,使得第一层参数a、第一层参数b、第二层参数c以及第三层参数d都提取至第一层,也就是最外层。本领域技术人员应当理解语料参数可以包括更多层的结构体,在此不再赘述。
55.在一些实施例中,所述对所述解析出的多个参数进行参数变异调度,对所述解析出的多个参数进行变异,得到测试语料包括:
56.读取所述解析出的多个参数、用户保留项和变异保留项,所述用户保留项为所述语料参数中的是否保留字段标记为式是的语料参数,所述变异保留项为进入当前路径的保留参数;
57.读取当前的测试进度以及当前的测试阶段,所述测试阶段包括第一测试阶段、第二测试阶段和第三测试阶段。
58.在具体实施中,所述用户保留项为用户处于业务或测试目的自主设定的不希望变异的参数。所述变异保留项为变异算法本身判断出来不能变异的参数。所述变异保留项的存在是为了确保变异出来的参数更有效率。
59.在一些实施例中,所述第一测试阶段、第二测试阶段和第三测试阶段包括:
60.所述第一测试阶段为普通阶段,用于当前代码块的错误探索。
61.所述第二测试阶段为拓展保留阶段,针对新路径的条件参数侦测,通过对所述多个参数进行变异,从而探索新路径的变异保留项;
62.所述第三测试阶段为拓展挖掘阶段,针对变异保留项变异阶段,用于新路径的分支探索。
63.在一些实施例中,所述第一测试阶段对所述用户保留项以及所述变异保留项以外的所述多个参数进行全部或部分随机变异;所述第二测试阶段根据所述当前的测试进度与当前的变异保留项,依次对所述用户保留项以及所述变异保留项以外的所述多个参数进行随机变异;所述第三测试阶段对当前的变异保留参数进行全部或部分随机变异。
64.在一些实施例中,根据调度器给定的参数,依据参数类型、依赖参数、取值范围
的要求,对参数中的每个参数进行变异,在全部参数变异完成后将变异后的参数写入测试参数中。
65.图2为本发明的另一个实施例提供的基于多参数输入的模糊测试方法的流程示意图。现在参看图2,本发明实施例提供一种基于多参数输入的模糊测试方法,包括:
66.步骤s201:获取多参数语料,对所述多参数语料进行检测;
67.步骤s2011:判断所述多参数语料是否满足标准语料格式,若满足所述标准语料格式则检测通过,若不满足所述标准语料格式则检测不通过,丢弃所述多参数语料;
68.所述标准语料格式包括语料头部和语料参数,所述语料头部包括参数个数,所述语料参数包括参数类型、参数值、依赖参数、是否保留以及取值范围,所述参数类型包括定长、不定长、结构体;
69.步骤s202:所检测通过后对所述多参数语料进行语料解析,得到解析出的多个参数;
70.步骤s2021:所如所述语料参数中存在结构体,则将所述结构体中的所有参数提取至第一层;
71.如所述语料参数中存在多个名字相同的参数,则将所述多个名字相同的参数名称后增加本次操作序号;
72.如所述语料参数中无结构体,则完成所述语料解析,得到所述解析出的多个参数;
73.步骤s203:对所述解析出的多个参数进行参数变异调度,对所述解析出的多个参数进行变异,得到测试语料;
74.步骤s204:使用所述测试语料对被测程序进行运行测试,获得反馈的覆盖率与异常数据。
75.图3为本发明的一个实施例提供的基于多参数输入的模糊测试装置的模块示意图,现在参看图3,本发明实施例还提供一种基于多参数输入的模糊测试装置,包括:
76.多参数语料获取模块31,其用于获取多参数语料,对所述多参数语料进行检测;
77.语料解析模块32,其用于检测通过后对所述多参数语料进行语料解析,得到解析出的多个参数;
78.参数变异调度模块33,其用于对所述解析出的多个参数进行参数变异调度,对所述解析出的多个参数进行变异,得到测试语料;
79.运行测试模块34,其用于使用所述测试语料对被测程序进行运行测试,获得反馈的覆盖率与异常数据。
80.在一些实施例中,所述多参数语料获取模块31包括标准语料检测单元,其用于判断所述多参数语料是否满足标准语料格式,若满足所述标准语料格式则检测通过,若不满足所述标准语料格式则检测不通过,丢弃所述多参数语料;
81.所述标准语料格式包括语料头部和语料参数,所述语料头部包括参数个数,所述语料参数包括参数类型、参数值、依赖参数、是否保留以及取值范围,所述参数类型包括定长、不定长、结构体。
82.在一些实施例中,所述语料解析模块32包括语料参数检测单元,其用于判断如所述语料参数中存在结构体,则将所述结构体中的所有参数提取至第一层;如所述语料参数中存在多个名字相同的参数,则将所述多个名字相同的参数名称后增加本次操作序号;如
所述语料参数中无结构体,则完成所述语料解析,得到所述解析出的多个参数。
83.图4为本发明的另一个实施例提供的基于多参数输入的模糊测试装置的模块示意图,现在参看图4,本发明实施例还提供一种基于多参数输入的模糊测试装置,包括:
84.多参数语料获取模块41,其用于获取多参数语料,对所述多参数语料进行检测;
85.所述多参数语料获取模块31包括标准语料检测单元411,其用于判断所述多参数语料是否满足标准语料格式,若满足所述标准语料格式则检测通过,若不满足所述标准语料格式则检测不通过,丢弃所述多参数语料;
86.所述标准语料格式包括语料头部和语料参数,所述语料头部包括参数个数,所述语料参数包括参数类型、参数值、依赖参数、是否保留以及取值范围,所述参数类型包括定长、不定长、结构体。
87.语料解析模块42,其用于检测通过后对所述多参数语料进行语料解析,得到解析出的多个参数;所述语料解析模块32包括语料参数检测单元421,其用于判断如所述语料参数中存在结构体,则将所述结构体中的所有参数提取至第一层;如所述语料参数中存在多个名字相同的参数,则将所述多个名字相同的参数名称后增加本次操作序号;如所述语料参数中无结构体,则完成所述语料解析,得到所述解析出的多个参数。
88.参数变异调度模块43,其用于对所述解析出的多个参数进行参数变异调度,对所述解析出的多个参数进行变异,得到测试语料。
89.运行测试模块44,其用于使用所述测试语料对被测程序进行运行测试,获得反馈的覆盖率与异常数据。
90.综上所述,本发明实施例的基于多参数输入的模糊测试方法及装置,获取多参数语料,对所述多参数语料进行检测;检测通过后对所述多参数语料进行语料解析,得到解析出的多个参数;对所述解析出的多个参数进行参数变异调度,对所述解析出的多个参数进行变异,得到测试语料;使用所述测试语料对被测程序进行运行测试,获得反馈的覆盖率与异常数据,从而可以支持多个参数同时进行模糊测试,对测试效率有显著的提升。
91.最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

技术特征:


1.一种基于多参数输入的模糊测试方法,其特征在于,包括:获取多参数语料,对所述多参数语料进行检测;检测通过后对所述多参数语料进行语料解析,得到解析出的多个参数;对所述解析出的多个参数进行参数变异调度,对所述解析出的多个参数进行变异,得到测试语料;使用所述测试语料对被测程序进行运行测试,获得反馈的覆盖率与异常数据。2.根据权利要求1所述的基于多参数输入的模糊测试方法,其特征在于,所述对所述多参数语料进行检测包括判断所述多参数语料是否满足标准语料格式,若满足所述标准语料格式则检测通过,若不满足所述标准语料格式则检测不通过,丢弃所述多参数语料;所述标准语料格式包括语料头部和语料参数,所述语料头部包括参数个数,所述语料参数包括参数类型、参数值、依赖参数、是否保留以及取值范围,所述参数类型包括定长、不定长、结构体。3.根据权利要求2所述的基于多参数输入的模糊测试方法,其特征在于,所述检测通过后对所述多参数语料进行语料解析,得到解析出的多个参数包括:如所述语料参数中存在结构体,则将所述结构体中的所有参数提取至第一层;如所述语料参数中存在多个名字相同的参数,则将所述多个名字相同的参数名称后增加本次操作序号;如所述语料参数中无结构体,则完成所述语料解析,得到所述解析出的多个参数。4.根据权利要求2所述的基于多参数输入的模糊测试方法,其特征在于,所述对所述解析出的多个参数进行参数变异调度,对所述解析出的多个参数进行变异,得到测试语料包括:读取所述解析出的多个参数、用户保留项和变异保留项,所述用户保留项为所述语料参数中的是否保留字段标记为式是的语料参数,所述变异保留项为进入当前路径的保留参数;读取当前的测试进度以及当前的测试阶段,所述测试阶段包括第一测试阶段、第二测试阶段和第三测试阶段。5.根据权利要求4所述的基于多参数输入的模糊测试方法,其特征在于,所述第一测试阶段、第二测试阶段和第三测试阶段包括:所述第一测试阶段为普通阶段,用于当前代码块的错误探索。所述第二测试阶段为拓展保留阶段,针对新路径的条件参数侦测,通过对所述多个参数进行变异,从而探索新路径的变异保留项;所述第三测试阶段为拓展挖掘阶段,针对变异保留项变异阶段,用于新路径的分支探索。6.根据权利要求5所述的基于多参数输入的模糊测试方法,其特征在于,所述第一测试阶段对所述用户保留项以及所述变异保留项以外的所述多个参数进行全部或部分随机变异;所述第二测试阶段根据所述当前的测试进度与当前的变异保留项,依次对所述用户保留项以及所述变异保留项以外的所述多个参数进行随机变异;所述第三测试阶段对当前的变异保留参数进行全部或部分随机变异。7.根据权利要求1所述的基于多参数输入的模糊测试方法,其特征在于,根据调度器给
定的参数,依据参数类型、依赖参数、取值范围的要求,对参数中的每个参数进行变异,在全部参数变异完成后将变异后的参数写入测试参数中。8.一种基于多参数输入的模糊测试装置,其特征在于,包括:多参数语料获取模块,其用于获取多参数语料,对所述多参数语料进行检测;语料解析模块,其用于检测通过后对所述多参数语料进行语料解析,得到解析出的多个参数;参数变异调度模块,其用于对所述解析出的多个参数进行参数变异调度,对所述解析出的多个参数进行变异,得到测试语料;运行测试模块,其用于使用所述测试语料对被测程序进行运行测试,获得反馈的覆盖率与异常数据。9.根据权利要求8所述的基于多参数输入的模糊测试装置,其特征在于,所述多参数语料获取模块包括标准语料检测单元,其用于判断所述多参数语料是否满足标准语料格式,若满足所述标准语料格式则检测通过,若不满足所述标准语料格式则检测不通过,丢弃所述多参数语料;所述标准语料格式包括语料头部和语料参数,所述语料头部包括参数个数,所述语料参数包括参数类型、参数值、依赖参数、是否保留以及取值范围,所述参数类型包括定长、不定长、结构体。10.根据权利要求9所述的基于多参数输入的模糊测试装置,其特征在于,所述语料解析模块包括语料参数检测单元,其用于判断如所述语料参数中存在结构体,则将所述结构体中的所有参数提取至第一层;如所述语料参数中存在多个名字相同的参数,则将所述多个名字相同的参数名称后增加本次操作序号;如所述语料参数中无结构体,则完成所述语料解析,得到所述解析出的多个参数。

技术总结


本发明提供一种基于多参数输入的模糊测试方法及装置,包括:获取多参数语料,对所述多参数语料进行检测;检测通过后对所述多参数语料进行语料解析,得到解析出的多个参数;对所述解析出的多个参数进行参数变异调度,对所述解析出的多个参数进行变异,得到测试语料;使用所述测试语料对被测程序进行运行测试,获得反馈的覆盖率与异常数据。本发明提供的基于多参数输入的模糊测试方法及装置,可以支持多个参数同时进行模糊测试,对测试效率有显著的提升。升。升。


技术研发人员:

汪毅 贾鹏 周金良 强恺旻

受保护的技术使用者:

上海安般信息科技有限公司

技术研发日:

2022.12.20

技术公布日:

2023/3/10

本文发布于:2024-09-20 14:27:52,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/2/70717.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:语料   所述   参数   多个
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议