System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种面向模糊测试的变异调度方法及装置制造方法及图纸_技高网

一种面向模糊测试的变异调度方法及装置制造方法及图纸

技术编号:41284040 阅读:3 留言:0更新日期:2024-05-11 09:33
本申请实施例公开了一种面向模糊测试的变异调度方法及装置,涉及模糊测试技术领域。该方法包括:获取目标种子和目标种子所属的目标组;基于目标组所维护的双层老虎机模型,选择目标种子对应的变异位置和变异算子;在目标种子的变异位置处,应用变异算子,得到测试用例;将测试用例输入至目标程序中运行,得到目标程序在运行过程中提供的覆盖信息;若覆盖信息表征执行了目标代码路径或表征覆盖到了目标分支,则保存目标种子。由此,通过双层老虎机模型的选择结果可以更准确地确定在哪里(变异位置)以及如何进行(变异算子)的对目标种子的修改,从而生成有效的测试用例,增加发现目标程序漏洞的机会,提升模糊测试的测试效果。

【技术实现步骤摘要】

本申请涉及模糊测试,特别是涉及一种面向模糊测试的变异调度方法及装置


技术介绍

1、模糊测试(fuzz testing)是一种动态软件测试技术,它通过向目标程序提供非预期、随机、异常或无效的数据输入(称为“种子”),以监视目标程序的异常反应并发现可能的软件漏洞或错误。基于变异的模糊测试(mutation-based fuzz testing)是模糊测试的一种类型,其核心思想是在已有的种子的基础上,在种子的不同位置应用不同的变异算子进行变异,从而生成大量的测试用例,并将测试用例输入至目标程序进行执行。

2、相关技术中,可以采用模糊测试器(fuzzer)进行种子的变异。并且,为了让生成的测试用例尽可能多样化,模糊测试器通常包括多种变异算子,并且可能将一个变异算子在种子的任意位置进行变异。目前的模糊测试器包括种子自适应的模糊测试器,其核心思想是根据种子的语法和语义特征将其分组,并使用汤普森采样算法来估计变异算子的期望值,从而动态调整变异算子的选择概率。这种策略旨在提高模糊测试的效果,使其能够更有效地发现目标程序中的漏洞和错误。

3、然而,尽管种子自适应的模糊测试器考虑了种子的特性并根据种子的分组调整变异算子的概率分布,但它仍然在所有变异位置使用相同的概率分布来选择变异算子。这意味着,即使在不同的变异位置,同一个变异算子的有效性可能会有所不同,但上述策略并没有考虑这种差异。这可能导致错过最有效的变异位置和变异算子的组合,从而限制了模糊测试的效果。


技术实现思路

1、基于上述问题,本申请提供了一种面向模糊测试的变异调度方法及装置,能够提升模糊测试的测试效果。

2、本申请实施例公开了如下技术方案:

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、相较于现有技术,本申请具有以下有益效果:

37、本申请实施例公开了一种面向模糊测试的变异调度方法及装置,该方法包括:获取目标种子和目标种子所属的目标组;基于目标组所维护的双层老虎机模型,选择目标种子对应的变异位置和变异算子;在目标种子的变异位置处,应用变异算子,得到测试用例;将测试用例输入至目标程序中运行,得到目标程序在运行过程中提供的覆盖信息;若覆盖信息表征执行了目标代码路径或表征覆盖到了目标分支,则保存目标种子。由此,通过双层老虎机模型的选择结果可以更准确地确定在哪里(变异位置)以及如何进行(变异算子)的对目标种子的修改,从而生成有效的测试用例,增加发现目标程序漏洞的机会,提升模糊测试的测试效果。

本文档来自技高网...

【技术保护点】

1.一种面向模糊测试的变异调度方法,其特征在于,所述方法包括:

2.根据权利要求要求1所述的方法,其特征在于,所述基于所述目标组所维护的双层老虎机模型,选择所述目标种子对应的变异位置和变异算子,包括:

3.根据权利要求要求1所述的方法,其特征在于,所述基于所述目标组所维护的双层老虎机模型,选择所述目标种子对应的变异位置和变异算子,包括:

4.根据权利要求要求1所述的方法,其特征在于,所述基于所述目标组所维护的双层老虎机模型,选择所述目标种子对应的变异位置和变异算子,包括:

5.根据权利要求1所述的方法,其特征在于,在执行所述获取目标种子和所述目标种子所属的目标组之前,所述方法还包括:

6.一种面向模糊测试的变异调度装置,其特征在于,所述装置包括:获取模块、选择模块、应用模块、运行模块、保存模块;

7.根据权利要求6所述的装置,其特征在于,所述选择模块具体用于:若所述目标种子为非首次被选择的种子,则基于所述目标组所维护的双层老虎机模型,选择所述目标种子对应的变异位置和变异算子。

8.根据权利要求6所述的装置,其特征在于,所述选择模块具体包括:第一选择模块和第二选择模块;

9.根据权利要求6所述的装置,其特征在于,所述选择模块具体包括:第三选择模块和第四选择模块;

10.根据权利要求6所述的装置,其特征在于,所述装置还包括:编译模块;所述编译模块,用于对目标程序进行编译,并在所述目标程序中插入插桩代码,所述插桩代码用于收集所述目标程序在运行过程中提供的覆盖信息;

...

【技术特征摘要】

1.一种面向模糊测试的变异调度方法,其特征在于,所述方法包括:

2.根据权利要求要求1所述的方法,其特征在于,所述基于所述目标组所维护的双层老虎机模型,选择所述目标种子对应的变异位置和变异算子,包括:

3.根据权利要求要求1所述的方法,其特征在于,所述基于所述目标组所维护的双层老虎机模型,选择所述目标种子对应的变异位置和变异算子,包括:

4.根据权利要求要求1所述的方法,其特征在于,所述基于所述目标组所维护的双层老虎机模型,选择所述目标种子对应的变异位置和变异算子,包括:

5.根据权利要求1所述的方法,其特征在于,在执行所述获取目标种子和所述目标种子所属的目标组之前,所述方法还包括:

6.一种面向模糊测试的变异调度装置,其特征...

【专利技术属性】
技术研发人员:杨智徐航袁占慧陈性元孙浩东
申请(专利权)人:中国人民解放军战略支援部队信息工程大学
类型:发明
国别省市:

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

1