System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及软件模糊测试,尤其涉及一种覆盖率驱动的并行模糊测试任务动态调度方法和系统。
技术介绍
1、随着互联网技术的飞速发展,数字化已经成为现代社会的基石。在当今高速发展的软件行业中,随着系统规模不断扩张和更新频率持续攀升,确保软件的稳定性与安全性成为开发过程中的核心目标。这要求测试和漏洞挖掘的效率必须同步提升,以精确地挖掘潜在的漏洞,从而保障软件的安全运行。软件安全的重要性和广泛性愈发凸显,因为一个未被及时发现和修复的漏洞可能被黑客利用,导致数据泄露、系统瘫痪甚至更严重的后果。这些事件不仅对用户的信任造成巨大打击,还可能引发一系列法律、金融和社会问题。
2、面对大型、复杂的软件系统测试挑战,探索更为高效的测试方法和工具显得尤为关键,研究人员探索了多种技术手段以提高效率。其中,模糊测试通过向软件系统输入异常、非预期或随机数据来检测潜在的程序崩溃等问题。由于其适应性强和人工成本低等优点,模糊测试逐渐受到产业界和学术界的认可。然而,对于规模庞大且复杂的实际软件系统,传统的单机单核模糊测试已无法满足日益增长的测试需求。因此,并行模糊测试作为传统模糊测试的自然拓展被提出。随着并行计算技术的发展,基于并行化的模糊测试方法开始受到青睐。它通过同时运行多个模糊测试用例来提高测试效率。随着计算资源的增加,并行模糊测试能够更容易地扩展测试规模,以应对不断增长的软件复杂性。
3、在当前并行模糊测试的研究领域中,大多数工作主要集中在如何合理地划分任务上,而对动态任务调度的关注则相对较少。这些研究通常在并行测试开始时,根据不
4、针对现有并行模糊测试缺乏面向测试任务的自适应调度策略问题,本专利技术提供了一种覆盖率驱动的并行模糊测试任务动态调度方法和系统,基于实时监控的覆盖率增长灵活调整任务分配的频率。通过设定周期的上下限,当覆盖率增长低于预设阈值时,系统将延长周期,以减少资源消耗;相反,当覆盖率增长超过阈值时,系统将缩短周期,加快对新代码区域的探索。阈值本身也具备动态调整的能力,通过反馈机制持续跟踪覆盖率变化与任务分配周期的效果,实现阈值的实时微调,以适应不同探索阶段的需求。这种动态调整策略有效应对了模糊测试中的覆盖难度不均问题,确保了测试的持续性和高效性。通过优化资源分配和测试进程,该策略不仅适应了测试过程中的不同阶段覆盖难度变化,还显著提高了并行模糊测试的整体效率。
技术实现思路
1、本专利技术提供了一种覆盖率驱动的并行模糊测试任务动态调度方法和系统,具体技术方案如下:
2、在本专利技术的第一方面,提供了一种覆盖率驱动的并行模糊测试任务动态调度方法,包括以下步骤:
3、1)确定任务分配周期的初始值、最小周期和最大周期,所述初始值为最小周期的两倍;
4、2)基于任务分配周期的初始值和最小周期,设定覆盖率增量的阈值的初始值;
5、3)对待测试软件程序进行任务分配,根据当前任务分配周期的大小对分配后的任务执行相应时长的并行模糊测试测试结束后记录当前的代码覆盖率并计算覆盖率增量;
6、4)将覆盖率增量与阈值进行对比,根据对比结果实时调整任务分配周期大小;
7、5)根据覆盖率增量实时调整阈值大小;
8、6)重复步骤3)-步骤5),直至达到预设的测试总时长。
9、作为本专利技术的优选方案,在步骤2)之前,还需构建待测试软件程序的模糊测试运行环境,包括多个测试引擎。
10、作为本专利技术的优选方案,所述步骤2)具体为:
11、2.1)将待测试软件程序分配给多个测试引擎,多个测试引擎对所分配的程序进行并行模糊测试,直至测试时长达到最小周期,记录第一次代码覆盖率;
12、2.2)测试引擎继续执行并行模糊测试,直至达到任务分配周期的初始值,结束测试,记录第二次代码覆盖率,根据第一次代码覆盖率和第二次代码覆盖率计算覆盖率增量,作为阈值的初始值。
13、作为本专利技术的优选方案,所述步骤4)具体为:
14、将当前覆盖率与阈值进行对比,如果当前覆盖率增量低于或等于阈值,则将任务分配周期延长至两倍,但不超过最大周期;如果当前覆盖率增量高于阈值,则将任务分配周期缩短至一半,但不低于最小周期。
15、作为本专利技术的优选方案,所述步骤5)具体为:
16、如果当前覆盖率增量低于或等于阈值,则将阈值降低;如果当前覆盖率增量高于阈值,则将阈值提高。
17、在本专利技术的第二方面,提供了一种覆盖率驱动的并行模糊测试任务动态调度系统,用于实现上述的覆盖率驱动的并行模糊测试任务动态调度方法。
18、与现有技术相比,本专利技术的有益效果为:
19、1)本专利技术根据覆盖率增量动态调整任务分配周期,能够更有效地利用资源。当覆盖率增长缓慢时,并行模糊测试系统会减少资源投入,避免在低效路径上的浪费;当覆盖率快速增长时,系统会增加资源以加速测试,确保资源始终被集中使用在最有潜力的测试路径上;
20、2)本专利技术通过动态调整阈值和任务分配周期,能够更快地适应测试过程中的变化,显著提高了测试的效率,尤其是在面对非均匀覆盖难度的情况下,能够确保测试过程既高效又持续推进;
21、3)本专利技术能够实时监控覆盖率变化,并根据这些变化自适应地调整测试策略。这种高度的适应性使得它特别适用于需要快速迭代和高覆盖率保障的大规模软件项目,能够快速响应并行模糊测试动态调整的任务需求。
本文档来自技高网...【技术保护点】
1.一种覆盖率驱动的并行模糊测试任务动态调度方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的覆盖率驱动的并行模糊测试任务动态调度方法,其特征在于,所述代码覆盖率为待测试软件程序中已执行的基本块与全部基本块数量的比值。
3.根据权利要求1所述的覆盖率驱动的并行模糊测试任务动态调度方法,其特征在于,在步骤2)之前,还需构建待测试软件程序的模糊测试运行环境,包括多个测试引擎。
4.根据权利要求3所述的覆盖率驱动的并行模糊测试任务动态调度方法,其特征在于,所述步骤2)具体为:
5.根据权利要求3所述的覆盖率驱动的并行模糊测试任务动态调度方法,其特征在于,步骤3)中所述对待测试软件程序进行任务分配,根据当前任务分配周期的大小对分配后的任务执行相应时长的并行模糊测试,具体为:将待测试软件程序的所有基本块分为仅包含已探索基本块的前驱部分和存在未探索基本块的后继部分,将后继部分划分为多个任务并分配给多个测试引擎,多个测试引擎根据当前任务分配周期的大小对所述多个任务并行执行相应时长的模糊测试;统计本次模糊测试中后继部分基本块的执行次数,将执
6.根据权利要求5所述的覆盖率驱动的并行模糊测试任务动态调度方法,其特征在于,所述将后继部分划分为多个任务并分配给多个测试引擎的划分方式为:以基本块为粒度均匀划分。
7.根据权利要求1所述的覆盖率驱动的并行模糊测试任务动态调度方法,其特征在于,步骤3)中所述覆盖率增量为当前周期的代码覆盖率与上一周期的代码覆盖率之差。
8.根据权利要求1所述的覆盖率驱动的并行模糊测试任务动态调度方法,其特征在于,所述步骤4)具体为:
9.根据权利要求1所述的覆盖率驱动的并行模糊测试任务动态调度方法,其特征在于,所述步骤5)具体为:
10.一种用于实现权利要求1所述的覆盖率驱动的并行模糊测试任务动态调度方法的调度系统,其特征在于,系统包括:
...【技术特征摘要】
1.一种覆盖率驱动的并行模糊测试任务动态调度方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的覆盖率驱动的并行模糊测试任务动态调度方法,其特征在于,所述代码覆盖率为待测试软件程序中已执行的基本块与全部基本块数量的比值。
3.根据权利要求1所述的覆盖率驱动的并行模糊测试任务动态调度方法,其特征在于,在步骤2)之前,还需构建待测试软件程序的模糊测试运行环境,包括多个测试引擎。
4.根据权利要求3所述的覆盖率驱动的并行模糊测试任务动态调度方法,其特征在于,所述步骤2)具体为:
5.根据权利要求3所述的覆盖率驱动的并行模糊测试任务动态调度方法,其特征在于,步骤3)中所述对待测试软件程序进行任务分配,根据当前任务分配周期的大小对分配后的任务执行相应时长的并行模糊测试,具体为:将待测试软件程序的所有基本块分为仅包含已探索基本块的前驱部分和存在未探索基本块的后继部分,将后继部分划分为多个任务并分配给多个测试引...
【专利技术属性】
技术研发人员:纪守领,梁红,夏亦凡,武昊天,向意,郭宜家,张旭鸿,彭浩,王滨,
申请(专利权)人:浙江大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。