一种模糊测试方法、装置、设备及介质制造方法及图纸

技术编号:27224785 阅读:39 留言:0更新日期:2021-02-04 11:46
本发明专利技术公开了一种模糊测试方法、装置、设备及介质,所述方法包括获取测试种子,生成测试随机参量序列;获取测试对象集;提取每个测试对象指向的测试资源,以构成测试对象集对应的测试资源集;基于所述测试随机参量序列和所述测试资源集生成变量池,所述变量池中存储有用于构建所述测试对象集中各个测试对象的测试用例所需的全部变量;基于所述测试随机参量序列和所述测试资源集生成测试语句,以构成所述测试资源集对应的测试语句集;基于所述变量池和所述测试语句集生成测试资源脚本,并将测试资源脚本中的各条语句进行乱序输出以得到记录有测试用例的模糊测试脚本;根据所述模糊测试脚本进行测试以得到测试结果。本发明专利技术能够大幅提升测试效率。大幅提升测试效率。大幅提升测试效率。

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


[0001]本专利技术涉及测试领域,尤其涉及一种模糊测试方法、装置、设备及介质。

技术介绍

[0002]模糊测试是发现被测试软件缺陷的一种有效策略。它显示了漏洞检测自动化的巨大潜力。同时,因为模糊测试的自动化程度较高,一旦配置好环境,就可以被应用于连续的漏洞发掘,对安全研究者或企业来说是显著的人力优化。模糊测试有多种形式,比如switch-case用例测试模式,其虽然可以串联出一个近似随机化的语句流,但是问题在于测试的函数以及传递给测试函数的内容都近似固定,虽然产生了大量随机值,但是实际代码覆盖度并不高,再比如现有的基于语法规则的用例测试模式,其虽然自动化程度有所提升,但是难以生成多层嵌套模式的测试用例,测试效果也相应受到影响。

技术实现思路

[0003]为了解决现有技术中无法提供高质量、高代码覆盖率的模糊测试方法的技术问题,本专利技术实施例提供一种模糊测试方法、装置、设备及介质。
[0004]一方面,本专利技术提供了一种模糊测试方法,所述方法包括:
[0005]获取测试种子,基于所述测试种子生成测试随机参量序列;
[0006]获取测试对象集,所述测试对象集中包括至少一个测试对象;
[0007]提取每个测试对象指向的测试资源,以构成所述测试对象集对应的测试资源集;
[0008]基于所述测试随机参量序列和所述测试资源集生成变量池,所述变量池中存储有用于构建所述测试对象集中各个测试对象的测试用例所需的全部变量;
[0009]基于所述测试随机参量序列和所述测试资源集生成测试语句,以构成所述测试资源集对应的测试语句集;
[0010]基于所述变量池和所述测试语句集生成测试资源脚本,并将所述测试资源脚本中的各条语句进行乱序输出以得到记录有测试用例的模糊测试脚本;
[0011]根据所述模糊测试脚本进行测试以得到测试结果。
[0012]另一方面,本专利技术提供了一种模糊测试装置,所述装置包括:
[0013]测试种子模块,用于获取测试种子,基于所述测试种子生成测试随机参量序列;
[0014]测试对象集获取模块,用于获取测试对象集,所述测试对象集中包括至少一个测试对象;
[0015]测试资源集获取模块,用于提取每个测试对象指向的测试资源,以构成所述测试对象集对应的测试资源集;
[0016]变量池生成模块,用于基于所述测试随机参量序列和所述测试资源集生成变量池,所述变量池中存储有用于构建所述测试对象集中各个测试对象的测试用例所需的全部变量;
[0017]测试语句集生成模块,用于基于所述测试随机参量序列和所述测试资源集生成测
试语句,以构成所述测试资源集对应的测试语句集;
[0018]模糊测试脚本生成模块,用于基于所述变量池和所述测试语句集生成测试资源脚本,并将所述测试资源脚本中的各条语句进行乱序输出以得到记录有测试用例的模糊测试脚本;
[0019]模糊测试模块,用于根据所述模糊测试脚本进行测试以得到测试结果。
[0020]另一方面,本专利技术提供了一种模糊测试设备,其特征在于,所述设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现一种模糊测试方法。
[0021]另一方面,本专利技术提供了一种计算机存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行一种模糊测试方法。
[0022]本专利技术提供了一种模糊测试方法、装置、设备及介质。本专利技术通过针对性地设计了函数定义语言支持、调用的层级嵌套、类型匹配机制,实现测试语句的自动生成,以得到有效的或无效的测试脚本,该脚本用于对测试对象进行模糊测试,从而发现目标软件中的稳定性问题和安全性问题。经过相关验证,本专利技术实施例在长期施行后,代码覆盖的期望值会比较高。同时因为此测试方案黑盒也可使用,解决了黑盒难以插桩又没有很好的方式提升代码覆盖率的问题,能够大幅提升测试效率。
附图说明
[0023]为了更清楚地说明本专利技术实施例或现有技术中的技术方案和优点,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。
[0024]图1是本专利技术提供的一种模糊测试方法的实施环境图;
[0025]图2是本专利技术提供的一种模糊测试方法流程图;
[0026]图3是本专利技术提供的基于所述测试随机参量序列和所述测试资源集生成变量池流程图;
[0027]图4是本专利技术提供的基于所述测试随机参量序列和所述测试资源集生成多个测试语句,以构成所述测试资源集对应的测试语句集流程图;
[0028]图5是本专利技术提供的调用所述测试资源中的简单语句生成函数并基于所述测试随机参量序列生成测试语句流程图;
[0029]图6是本专利技术提供的所述测试语句集的生成逻辑示意图;
[0030]图7是本专利技术提供的一种模糊测试方法在一种场景中的逻辑框架图;
[0031]图8是本专利技术提供的一种模糊测试框图;
[0032]图9是本专利技术提供的一种用于实现本专利技术实施例所提供的方法的设备的硬件结构示意图。
具体实施方式
[0033]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0034]需要说明的是,本专利技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本专利技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0035]为了使本专利技术实施例公开的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术实施例进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本专利技术实施例,并不用于限定本专利技术实施例。为了便于对本专利技术实施例进行详述,首先介绍本专利技术实施例的相关概念以及相关技术现状。
[0036]JavaScript:一种高级编程语言,是一门动态类型,面向对象(基于原型)的脚本语言。
[0037]突变测试:用于软件测试和评估现有软件的质量。突变测本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种模糊测试方法,其特征在于,所述方法包括:获取测试种子,基于所述测试种子生成测试随机参量序列;获取测试对象集,所述测试对象集中包括至少一个测试对象;提取每个测试对象指向的测试资源,以构成所述测试对象集对应的测试资源集;基于所述测试随机参量序列和所述测试资源集生成变量池,所述变量池中存储有用于构建所述测试对象集中各个测试对象的测试用例所需的全部变量;基于所述测试随机参量序列和所述测试资源集生成测试语句,以构成所述测试资源集对应的测试语句集;基于所述变量池和所述测试语句集生成测试资源脚本,并将所述测试资源脚本中的各条语句进行乱序输出以得到记录有测试用例的模糊测试脚本;根据所述模糊测试脚本进行测试以得到测试结果。2.根据权利要求1所述的方法,其特征在于,所述基于所述测试随机参量序列和所述测试资源集生成变量池,包括:获取测试资源集中的各个测试资源;加载所述测试资源中的初始化脚本,所述初始化脚本中定义有初始化函数与简单语句生成函数;执行各个测试资源中的初始化脚本,并将初始化脚本生成的变量汇总至变量池。3.根据权利要求1所述的方法,其特征在于:每个所述测试资源中的简单语句生成函数能够用于生成测试语句,所述基于所述测试随机参量序列和所述测试资源集生成多个测试语句,以构成所述测试资源集对应的测试语句集,包括;对于所述测试资源集中的各个测试资源,均调用所述测试资源中的简单语句生成函数并基于所述测试随机参量序列生成测试语句;汇总各个测试资源对应的测试语句以得到满足预设数量要求的测试语句集。4.根据权利要求3所述的方法,其特征在于,所述调用所述测试资源中的简单语句生成函数并基于所述测试随机参量序列生成测试语句,包括:根据所述测试随机参量序列确定操作循环次数N;由测试语句生成引擎调用N次简单语句生成函数以得到第一语句集;根据所述测试随机参量序列确定测试规则;根据所述测试规则和所述第一语句集生成符合所述测试规则的测试语句。5.根据权利要求4所述的方法,其特征在于,所述根据所述测试规则和所述第一语句集生成符合所述测试规则的测试语句,包括:若所述测试规则用于生成嵌套测试函数,则根据所述规则将所述第...

【专利技术属性】
技术研发人员:钱文祥
申请(专利权)人:深圳市腾讯计算机系统有限公司
类型:发明
国别省市:

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

1