一种基于多引擎融合的分布式模糊测试方法及装置制造方法及图纸

技术编号:36497970 阅读:11 留言:0更新日期:2023-02-01 15:17
本发明专利技术提供一种基于多引擎融合的分布式模糊测试方法及装置,包括:对多个引擎进行参数配置;当agent队列有空闲时,启动所述多个引擎进行模糊测试,当agent队列没有空闲时,等待空闲agent;将所述多个引擎的模糊测试结果进行数据合并;其中,所述数据合并包括覆盖率数据合并和异常数据合并,所述覆盖率数据包括函数覆盖率数据、分支覆盖率数据以及行覆盖率数据。本发明专利技术提供的基于多引擎融合的分布式模糊测试方法及装置,通过多个引擎进行模糊测试,将多个引擎的模糊测试结果进行覆盖率数据合并和异常数据合并,从而全面提高测试效率。从而全面提高测试效率。从而全面提高测试效率。

【技术实现步骤摘要】
一种基于多引擎融合的分布式模糊测试方法及装置


[0001]本专利技术实施例涉及模糊测试
,特别是涉及一种基于多引擎融合的分布式模糊测试方法及装置。

技术介绍

[0002]模糊测试技术是一种基于黑盒(或灰盒)的测试技术,通过自动化生成并执行大量的随机测试用例来发现产品的未知漏洞。
[0003]专利公告号为CN106557412B、名称为“一种模糊测试的方法及装置”的专利技术专利公开了了一种模糊测试的方法,包括获取被测对象测试入口的类型;从已建立的测试数据与测试入口的类型的对应关系中,确定所述被测对象测试入口对应的测试数据的类型;向所述被测对象测试入口注入对应类型的测试数据,对所述被测对象进行模糊测试。从已建立的测试数据与测试入口的类型的对应关系中,确定所述被测对象测试入口对应的测试数据的类型,向所述被测对象测试入口注入对应类型的测试数据,对所述被测对象进行模糊测试的方式,有针对性的进行模糊测试,从而提高了测试的针对性和测试效率。
[0004]然而,现有技术中单个模糊测试引擎进行模糊测试有一定的侧重点,测试结果不够全面,不同引擎对被测目标的测试效果不同,单个引擎测试不能达到最佳效果,并且单个引擎不能同时测试不同平台,也不能测试不同CPU架构的目标。
[0005]因此,有必要提供一种基于多引擎融合的分布式模糊测试方法及装置,能够有效解决上述问题。

技术实现思路

[0006]本专利技术提供一种基于多引擎融合的分布式模糊测试方法及装置,通过多个引擎进行模糊测试,将多个引擎的模糊测试结果进行覆盖率数据合并和异常数据合并,从而全面提高测试效率。
[0007]本专利技术实施例提供一种多引擎融合的分布式模糊测试方法,包括:
[0008]对多个引擎进行参数配置;
[0009]当agent队列有空闲时,启动所述多个引擎进行模糊测试,当agent队列没有空闲时,等待空闲agent;
[0010]将所述多个引擎的模糊测试结果进行数据合并;
[0011]其中,所述数据合并包括覆盖率数据合并和异常数据合并,所述覆盖率数据包括函数覆盖率数据、分支覆盖率数据以及行覆盖率数据。
[0012]优选地,所述覆盖率数据合并采用第一增量模式,所述第一增量模式包括当有新的覆盖率文件且合并间隔时间达到第一阈值时进行数据合并。
[0013]优选地,所述多个引擎包括但不限于多参数引擎和ABFast引擎,所述多参数引擎针对多参数变异,所述ABFast引擎针对插桩编译阶段的比较操作优化。
[0014]优选地,所述对多个引擎进行参数配置包括接收用户选择的具体引擎及配置信
息,选择平台并下载测试包,进行目标构建,并配置ASAN和环境。
[0015]优选地,所述覆盖率为代码被执行到的部分占总代码的比例,所述行覆盖率为被执行到的行占总行的比例,所述函数覆盖率为被执行到的函数占总函数的比例,所述分支覆盖率为被执行到的分支占总分支的比例。
[0016]优选地,对于函数合并,将相同函数的执行次数进行相加;对于分支合并,将相同分支的执行次数进行相加;对于同一个文件中的相同行合并,对无效行的执行次数

1,所述相同行包括第一行和第二行,如果所述第一行和所述第二行的执行次数都

1,则合并执行次数也

1,如果所述第一行或所述第二行的执行次数

1,则合并执行次数为所述第二行或所述第一行的执行次数,如果所述第一行和所述第二行的执行次数都不

1,则合并执行次数为所述第一行和所述第二行的相加值。
[0017]优选地,当所述数据为异常数据时,根据所述异常数据的类型以及行号生成异常ID,根据所述异常ID进行数据去重。
[0018]优选地,所述数据去重采用第二增量模式,所述第二增量模式包括当有新的异常数据且合并间隔时间达到第二阈值时进行数据合并。
[0019]优选地,读取所述覆盖率数据和异常数据并进行排序,记录排序后的最后一个位置的覆盖率数据或异常数据,循环读取当前覆盖率数据和异常数据,和所述最后一个位置的覆盖率数据或异常数据进行大小比较,若大小不一致则表示有新增覆盖率数据或异常数据。
[0020]本专利技术实施例还提供一种基于多引擎融合的分布式模糊测试装置,包括:
[0021]参数配置模块,其用于对多个引擎进行参数配置;
[0022]队列空闲判断模块,其用于当agent队列有空闲时,启动所述多个引擎进行模糊测试,当agent队列没有空闲时,等待空闲agent;
[0023]数据合并模块,其用于将所述多个引擎的模糊测试结果进行数据合并,所述数据合并包括覆盖率数据合并和异常数据合并,所述覆盖率数据包括函数覆盖率数据、分支覆盖率数据以及行覆盖率数据。
[0024]与现有技术相比,本专利技术实施例的技术方案具有以下有益效果:
[0025]本专利技术实施例的基于多引擎融合的分布式模糊测试方法及装置,对多个引擎进行参数配置;当agent队列有空闲时,启动所述多个引擎进行模糊测试,当agent队列没有空闲时,等待空闲agent;将所述多个引擎的模糊测试结果进行数据合并;其中,所述数据合并包括覆盖率数据合并和异常数据合并,所述覆盖率数据包括函数覆盖率数据、分支覆盖率数据以及行覆盖率数据通过多个引擎进行模糊测试,将多个引擎的模糊测试结果进行覆盖率数据合并和异常数据合并,从而全面提高测试效率。
附图说明
[0026]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做一简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,而不是全部实施例。对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0027]图1为本专利技术的一个实施例提供的基于多引擎融合的分布式模糊测试方法的流程
示意图;
[0028]图2为本专利技术的一个实施例提供的基于多引擎融合的分布式模糊测试装置的模块示意图。
具体实施方式
[0029]为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0030]下面以具体的实施例对本专利技术的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
[0031]基于现有技术存在的问题,本专利技术实施例提供一种基于多引擎融合的分布式模糊测试方法,通过多个引擎进行模糊测试,将多个引擎的模糊测试结果进行覆盖率数据合并和异常数据合并,从而全面提高测试效率。
[0032]图1为本专利技术的一个实施例提供的基于多引擎融合的分布式模糊本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种多引擎融合的分布式模糊测试方法,其特征在于,包括:对多个引擎进行参数配置;当agent队列有空闲时,启动所述多个引擎进行模糊测试,当agent队列没有空闲时,等待空闲agent;将所述多个引擎的模糊测试结果进行数据合并;其中,所述数据合并包括覆盖率数据合并和异常数据合并,所述覆盖率数据包括函数覆盖率数据、分支覆盖率数据以及行覆盖率数据。2.根据权利要求1所述的基于多引擎融合的分布式模糊测试方法,其特征在于,所述覆盖率数据合并采用第一增量模式,所述第一增量模式包括当有新的覆盖率文件且合并间隔时间达到第一阈值时进行数据合并。3.根据权利要求1所述的基于多引擎融合的分布式模糊测试方法,其特征在于,所述多个引擎包括但不限于多参数引擎和ABFast引擎,所述多参数引擎针对多参数变异,所述ABFast引擎针对插桩编译阶段的比较操作优化。4.根据权利要求1所述的基于多引擎融合的分布式模糊测试方法,其特征在于,所述对多个引擎进行参数配置包括接收用户选择的具体引擎及配置信息,选择平台并下载测试包,进行目标构建,并配置ASAN和环境。5.根据权利要求1所述的基于多引擎融合的分布式模糊测试方法,其特征在于,所述覆盖率为代码被执行到的部分占总代码的比例,所述行覆盖率为被执行到的行占总行的比例,所述函数覆盖率为被执行到的函数占总函数的比例,所述分支覆盖率为被执行到的分支占总分支的比例。6.根据权利要求1所述的基于多引擎融合的分布式模糊测试方法,其特征在于,对于函数合并,将相同函数的执行次数进行相加;对于分支合并,将相同分支的执行次数进行相加;对于同一个文件中的相同行合并,对无效行的执行次数

1,所述相同行包括第一行和第...

【专利技术属性】
技术研发人员:汪毅徐韬周金良卜小冲强恺旻
申请(专利权)人:上海安般信息科技有限公司
类型:发明
国别省市:

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

1