模糊测试方法及装置制造方法及图纸

技术编号:34389666 阅读:14 留言:0更新日期:2022-08-03 21:16
提供一种模糊测试方法及装置。该方法包括:利用第一测试用例集合对目标程序进行模糊测试,确定所述第一测试用例集合中的测试用例的多个特征的特征值;根据所述多个特征对发现有趣测试用例的影响,确定第一目标特征;从所述第一测试用例集合中选择所述第一目标特征的特征值满足第一预设条件的测试用例,得到第二测试用例集合;基于所述第二测试用例集合对所述目标程序进行模糊测试。所述目标程序进行模糊测试。所述目标程序进行模糊测试。

【技术实现步骤摘要】
模糊测试方法及装置


[0001]本公开涉及软件测试
,更为具体地,涉及一种模糊测试方法及装置。

技术介绍

[0002]相关技术中,模糊检测工具通常会利用人工设计的能量分配方法为参与突变的测试用例分配计算资源,并期望变异后的输入文件触发待测软件的异常情况。然而,人工设计的标准无法适用于所有的目标程序,使得在进行不同的目标程序的测试时漏洞挖掘效率不同。

技术实现思路

[0003]本公开提供一种模糊测试方法及装置,以解决上述问题。
[0004]第一方面,提供一种模糊测试方法,包括:利用第一测试用例集合对目标程序进行模糊测试,确定所述第一测试用例集合中的测试用例的多个特征的特征值;根据所述多个特征对发现有趣测试用例的影响,确定第一目标特征;从所述第一测试用例集合中选择所述第一目标特征的特征值满足第一预设条件的测试用例,得到第二测试用例集合;基于所述第二测试用例集合对所述目标程序进行模糊测试。
[0005]可选地,所述方法还包括:利用第三测试用例集合对所述目标程序进行模糊测试,确定所述第三测试用例集合中的测试用例的多个特征的特征值;根据所述多个特征对发现有趣测试用例的影响,确定第二目标特征;从所述第三测试用例集合中选择所述第二目标特征的特征值满足第二预设条件的测试用例,得到第四测试用例集合;对所述第四测试用例集合中的测试用例进行变异操作,得到所述第一测试用例集合。
[0006]可选地,所述基于所述第二测试用例集合对所述目标程序进行模糊测试,包括:对所述第二测试用例集合中的测试用例进行变异操作,得到第五测试用例集合;利用所述第五测试用例集合对所述目标程序进行模糊测试。
[0007]可选地,所述第二测试用例集合中的测试用例的第一目标特征的特征值均大于或小于所述第一测试用例集合中除所述第二测试用例集合中的测试用例以外的测试用例的第一目标特征的特征值。
[0008]可选地,所述第二测试用例集合与所述第一测试用例集合中的测试用例的数量的比值小于或等于0.4。
[0009]可选地,所述第四测试用例集合中的测试用例的第二目标特征的特征值均大于或小于所述第三测试用例集合中除所述第四测试用例集合中的测试用例以外的测试用例的第二目标特征的特征值。
[0010]可选地,所述第四测试用例集合与所述第三测试用例集合中的测试用例的数量的比值小于或等于0.4。
[0011]可选地,所述多个特征包括以下中的一种或多种:测试用例的基本特征,测试用例触发所述目标程序的基本块的特征以及测试用例触发的执行路径特征。
[0012]可选地,所述有趣测试用例包括以下中的一种或多种:能够触发新的执行路径的测试用例、能够触发所述目标程序异常情况的测试用例。
[0013]第二方面,提供一种模糊测试装置,所述装置包括:第一确定模块,用于利用第一测试用例集合对目标程序进行模糊测试,确定所述第一测试用例集合中的测试用例的多个特征的特征值;第二确定模块,用于根据所述多个特征对发现有趣测试用例的影响,确定第一目标特征;第一选择模块,用于从所述第一测试用例集合中选择所述第一目标特征的特征值满足第一预设条件的测试用例,得到第二测试用例集合;测试模块,用于基于所述第二测试用例集合对所述目标程序进行模糊测试。
[0014]可选地,所述装置还包括:第三确定模块,用于利用第三测试用例集合对所述目标程序进行模糊测试,确定所述第三测试用例集合中的测试用例的多个特征的特征值;第四确定模块,用于根据所述多个特征对发现有趣测试用例的影响,确定第二目标特征;第二选择模块,用于从所述第三测试用例集合中选择所述第二目标特征的特征值满足第二预设条件的测试用例,得到第四测试用例集合;变异模块,用于对所述第四测试用例集合中的测试用例进行变异操作,得到所述第一测试用例集合。
[0015]可选地,所述测试模块还用于:对所述第二测试用例集合中的测试用例进行变异操作,得到第五测试用例集合;利用所述第五测试用例集合对所述目标程序进行模糊测试。
[0016]可选地,所述第二测试用例集合中的测试用例的第一目标特征的特征值均大于或小于所述第一测试用例集合中除所述第二测试用例集合中的测试用例以外的测试用例的第一目标特征的特征值。
[0017]可选地,所述第二测试用例集合与所述第一测试用例集合中的测试用例的数量的比值小于或等于0.4。
[0018]可选地,所述第四测试用例集合中的测试用例的第二目标特征的特征值均大于或小于所述第三测试用例集合中除所述第四测试用例集合中的测试用例以外的测试用例的第二目标特征的特征值。
[0019]可选地,所述第四测试用例集合与所述第三测试用例集合中的测试用例的数量的比值小于或等于0.4。
[0020]可选地,所述多个特征包括以下中的一种或多种:测试用例的基本特征,测试用例触发所述目标程序的基本块的特征以及测试用例触发的执行路径特征。
[0021]可选地,所述有趣测试用例包括以下中的一种或多种:能够触发新的执行路径的测试用例、能够触发所述目标程序异常情况的测试用例。
[0022]第三方面,提供一种模糊测试装置,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器被配置为执行所述可执行代码,以实现如第一方面或第一方面中任一可能的实现方式中所述的方法。
[0023]第四方面,提供一种计算机可读存储介质,其上存储有可执行代码,当所述可执行代码被执行时,能够实现如第一方面或第一方面中任一可能的实现方式中所述的方法。
[0024]第五方面,提供一种计算机程序产品,包括可执行代码,当所述可执行代码被执行时,能够实现如第一方面或第一方面中任一可能的实现方式中所述的方法。
[0025]本公开实施例提供的模糊测试方法,利用测试过程中测试用例的多个特征的特征值对于路径触发和崩溃的效率来评估各特征对于有价值输入文件的发现效率,根据在当前
测试轮次中最有效的特征,选择该特征的特征值较高的测试用例作为下一轮次测试的种子,能够在不同的目标程序上实现自适应的效率评估,确定能量分配的方式,从而提高模糊测试工具的漏洞挖掘效率。
附图说明
[0026]图1是本公开实施例提供的模糊测试方法的示意性流程图。
[0027]图2是本公开实施例提供的保存测试用例的二维链表的结构示意图。
[0028]图3是本公开一实施例提供的模糊测试装置的示意性结构图。
[0029]图4是本公开另一实施例提供的模糊测试装置的示意性结构图。
[0030]图5是本公开又一实施例提供的模糊测试装置的示意性结构图。
具体实施方式
[0031]为了便于理解本公开,在下文中基于示例性实施例并结合附图来更详细地描述本公开。在附图中使用相同或相似的附图标记来表示相同或相似的模块。应该理解的是,附图仅是示意性的,本公开的保护范围并不局限于此。在介绍本公开实施例之前,先对本公开技术方案涉及的概念和术语做如下定义和解释。
[0032]灰盒模糊测试<本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种模糊测试方法,所述方法包括:利用第一测试用例集合对目标程序进行模糊测试,确定所述第一测试用例集合中的测试用例的多个特征的特征值;根据所述多个特征对发现有趣测试用例的影响,确定第一目标特征;从所述第一测试用例集合中选择所述第一目标特征的特征值满足第一预设条件的测试用例,得到第二测试用例集合;基于所述第二测试用例集合对所述目标程序进行模糊测试。2.根据权利要求1所述的方法,所述方法还包括:利用第三测试用例集合对所述目标程序进行模糊测试,确定所述第三测试用例集合中的测试用例的多个特征的特征值;根据所述多个特征对发现有趣测试用例的影响,确定第二目标特征;从所述第三测试用例集合中选择所述第二目标特征的特征值满足第二预设条件的测试用例,得到第四测试用例集合;对所述第四测试用例集合中的测试用例进行变异操作,得到所述第一测试用例集合。3.根据权利要求1所述的方法,所述基于所述第二测试用例集合对所述目标程序进行模糊测试,包括:对所述第二测试用例集合中的测试用例进行变异操作,得到第五测试用例集合;利用所述第五测试用例集合对所述目标程序进行模糊测试。4.根据权利要求1所述的方法,所述第二测试用例集合中的测试用例的第一目标特征的特征值均大于或小于所述第一测试用例集合中除所述第二测试用例集合中的测试用例以外的测试用例的第一目标特征的特征值。5.根据权利要求4所述的方法,所述第二测试用例集合与所述第一测试用例集合中的测试用例的数量的比值小于或等于0.4。6.根据权利要求2所述的方法,所述第四测试用例集合中的测试用例的第二目标特征的特征值均大于或小于所述第三测试用例集合中除所述第四测试用例集合中的测试用例以外的测试用例的第二目标特征的特征值。7.根据权利要求6所述的方法,所述第四测试用例集合与所述第三测试用例集合中的测试用例的数量的比值小于或等于0.4。8.根据权利要求1或2所述的方法,所述多个特征包括以下中的一种或多种:测试用例的基本特征,测试用例触发所述目标程序的基本块的特征以及测试用例触发的执行路径特征。9.根据权利要求1或2所述的方法,所述有趣测试用例包括以下中的一种或多种:能够触发新的执行路径的测试用例、能够触发所述目标程序异常情况的测试用例。10.一种模糊测试装置,所述装置包括:第一确定模块,用于利用第一测试用例集合对目标程序进行模糊测试,确定所述第一测试用例集合中的测试用例的多个特征的特征值;第二确定模块,...

【专利技术属性】
技术研发人员:纪守领吕晨阳梁红刘向阳
申请(专利权)人:支付宝杭州信息技术有限公司
类型:发明
国别省市:

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

1