一种区块链的模糊测试方法及系统技术方案

技术编号:36859116 阅读:10 留言:0更新日期:2023-03-15 18:15
本申请公开了一种区块链的模糊测试方法及系统,其中,一种区块链的模糊测试方法包括:通过利用环路复杂度度量法从区块链中的待测程序中获取N个基本独立路径,N为正整数;根据基本独立路径数量设置路径优先级指标,并根据预设的等级权重计算N个基本独立路径的优先级指标;根据N个基本独立路径的优先级指标,采用粒子群优化算法输出测试用例集合;对测试用例集合中的测试用例进行模糊测试,以得到测试结果。以此实现提高基本独立路径的覆盖率,并且提升测试效率。提升测试效率。提升测试效率。

【技术实现步骤摘要】
一种区块链的模糊测试方法及系统


[0001]本申请涉及信息安全领域,尤其涉及一种区块链的模糊测试方法及系统。

技术介绍

[0002]目前的区块链系统大部分采用白盒测试方法。但采用现有技术的测试方法,在面对庞大的软件路径数量情况时,由于约束求解器的求解能力有限,进而影响测试路径不能全覆盖。因此,如何解决路径全覆盖是亟需解决的问题。

技术实现思路

[0003]有鉴于此,本申请的主要目的在于提供一种区块链的模糊测试方法及系统,实现提高基本独立路径的覆盖率,并且提高测试效率。
[0004]本申请第一方面提供了一种区块链的模糊测试方法,该方法包括:利用环路复杂度度量法从区块链中的待测程序中获取N个基本独立路径,N为正整数;根据基本独立路径数量设置路径优先级指标,并根据预设的等级权重计算N个基本独立路径的优先级指标;根据N个基本独立路径的优先级指标,采用粒子群优化算法输出测试用例集合;对测试用例集合中的测试用例进行模糊测试,以得到测试结果。
[0005]在本申请第一方面的一些实现方式中,利用环路复杂度度量法从区块链中的待测程序中获取N个基本独立路径,N为正整数,具体包括:根据流程内部语句对待测程序进行抽象,以得到控制流图,流程内部语句包括如下至少一种:顺序语句、选择语句、if语句、until语句和while语句;根据控制流图获取控制流图的边数和节点数,并采用环路复杂度度量法对边数和节点数进行计算,以获取基本独立路径数量。
[0006]在本申请第一方面的一些实现方式中,根据基本独立路径数量设置路径优先级指标,并根据预设的等级权重计算N个基本独立路径的优先级指标,具体包括:获取待测程序的多种评价因素以及多种评价因素分别对应的评价值;根据多种评价因素的评价值计算待测程序的平均评价值;获取多种评价因素分别对应的权重;根据多种评价因素分别对应的权重和待测程序的平均评价值得到待测程序的加权平均评价值;根据加权平均评价值计算N个基本独立路径的优先级指数,并根据优先级指数设置优先等级,根据优先等级对N个基本独立路径进行排序;其中,优先等级包括高优先级、中优先级和低优先级。
[0007]在本申请第一方面的一些实现方式中,根据N个基本独立路径的优先级指标,采用粒子群优化算法输出测试用例集合,具体包括:
采用粒子群优化算法获取具有高优先级的基本独立路径集合;从高优先级的基本路径集合中获取N个基本独立路径的测试条件,生成取值表;采用正交表方法生成N个基本独立路径的正交表,将取值表与正交表进行映射,以生成测试用例集合。
[0008]在本申请第一方面的一些实现方式中,该方法还包括:根据流程内部语句获取测试条件,并将测试条件拆分成树状结构,以得到多个测试条件分支;根据多个测试条件分支生成测试条件集合,并记录测试条件集合,测试条件集合包括:测试环境、输入数据、操作步骤和预测结果。
[0009]本申请第二方面提供了一种基本独立路径优化排序的模糊测试系统,该系统包括:程序圈复杂度计算模块、测试路径优先级计算模块、测试用例生成模块和测试模块;程序圈复杂度计算模块,用于利用环路复杂度度量法从区块链中的待测程序中获取N个基本独立路径,N为正整数;测试路径优先级计算模块,用于根据基本独立路径数量设置路径优先级指标,并根据预设的等级权重计算N个基本独立路径的优先级指标;测试用例生成模块,用于根据N个基本独立路径的优先级指标,采用粒子群优化算法输出测试用例集合;测试模块,用于对测试用例集合中的测试用例进行模糊测试,以得到测试结果。
[0010]在本申请第二方面的一些实现方式中,该程序圈复杂度计算模块包括绘制控制流图子模块和基本独立路径数量确认子模块;绘制控制流图子模块,用于根据流程内部语句对待测程序进行抽象,以得到控制流图,流程内部语句包括如下至少一种:顺序语句、选择语句、if语句、until语句和while语句;基本独立路径数量确认子模块,用于根据控制流图获取控制流图的边数和节点数,并采用环路复杂度度量法对边数和节点数进行计算,以获取基本独立路径数量。
[0011]在本申请第二方面的一些实现方式中,该测试路径优先级计算模块包括优先级指标权重计算子模块和测试路径排序子模块;优先级指标权重计算子模块,用于获取待测程序的多种评价因素以及多种评价因素分别对应的评价值;根据多种评价因素的评价值计算待测程序的平均评价值;获取多种评价因素分别对应的权重;根据多种评价因素分别对应的权重和待测程序的平均评价值得到待测程序的加权平均评价值;测试路径排序子模块,用于根据加权平均评价值计算N个基本独立路径的优先级指数,并根据优先级指数设置优先等级,根据优先等级对N个基本独立路径进行排序;其中,优先等级包括高优先级、中优先级和低优先级。
[0012]在本申请第二方面的一些实现方式中,该测试用例生成模块具体包括测试路径选择子模块和输入程序设计子模块;测试路径选择子模块,用于采用粒子群优化算法获取具有高优先级的基本独立路径集合;输入程序设计子模块,用于从高优先级的基本路径集合中获取N个基本独立路径
的测试条件,生成取值表;输入程序设计子模块,还用于采用正交表方法生成N个基本独立路径的正交表,将取值表与正交表进行映射,以生成测试用例集合。
[0013]本申请第三方面提供了一种计算机设备,其特征在于,该设备包括存储器和处理器,处理器用于执行存储器中存储的程序,运行如前述第一方面中任一项的方法。
[0014]相对于现有技术,本申请所提供的技术方案具有如下有益效果:本申请通过利用环路复杂度度量法从区块链中的待测程序中获取N个基本独立路径,N为正整数;根据基本独立路径数量设置路径优先级指标,并根据预设的等级权重计算N个基本独立路径的优先级指标;根据N个基本独立路径的优先级指标,采用粒子群优化算法输出测试用例集合;对测试用例集合中的测试用例进行模糊测试,以得到测试结果。根据不同优先级的基本独立路径集合,优化测试用例的生成策略,缩短基本独立路径生成的迭代周期,提高基本独立路径的覆盖率,并且提高测试效率。
附图说明
[0015]图1为本申请实施例提供的一种区块链的模糊测试方法的流程示意图;图2为本申请实施例提供的另一种区块链的模糊测试方法的流程示意图;图3为本申请实施例提供的另一种区块链的模糊测试方法的流程示意图;图4为本申请实施例提供的一种控制流图的结构示意图;图5为本申请实施例提供的一种区块链的模糊测试系统的结构示意图;图6为本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
[0016]下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0017]本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等,如果存在是用于区别类似的对象,而不必用于本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种区块链的模糊测试方法,其特征在于,所述方法包括:利用环路复杂度度量法从区块链中的待测程序中获取N个基本独立路径,所述N为正整数;根据基本独立路径数量设置路径优先级指标,并根据预设的等级权重计算所述N个基本独立路径的优先级指标;根据所述N个基本独立路径的优先级指标,采用粒子群优化算法输出测试用例集合;对所述测试用例集合中的测试用例进行模糊测试,以得到测试结果。2.根据权利要求1所述的方法,其特征在于,所述利用环路复杂度度量法从区块链中的待测程序中获取N个基本独立路径,所述N为正整数,包括:根据流程内部语句对所述待测程序进行抽象,以得到控制流图,所述流程内部语句包括如下至少一种:顺序语句、选择语句、if语句、until语句和while语句;根据所述控制流图获取所述控制流图的边数和节点数,并采用所述环路复杂度度量法对所述边数和所述节点数进行计算,以获取所述基本独立路径数量。3.根据权利要求2所述的方法,其特征在于,所述根据所述基本独立路径数量设置路径优先级指标,并根据预设的等级权重计算所述N个基本独立路径的优先级指标,包括:获取待测程序的多种评价因素以及所述多种评价因素分别对应的评价值;根据所述多种评价因素的评价值计算所述待测程序的平均评价值;获取所述多种评价因素分别对应的权重;根据所述多种评价因素分别对应的权重和所述待测程序的平均评价值得到所述待测程序的加权平均评价值;根据所述加权平均评价值计算所述N个基本独立路径的优先级指数,并根据所述优先级指数设置优先等级,根据所述优先等级对所述N个基本独立路径进行排序;其中,所述优先等级包括高优先级、中优先级和低优先级。4.根据权利要求3所述的方法,其特征在于,所述根据所述N个基本独立路径的优先级指标,采用粒子群优化算法输出测试用例集合,包括:采用所述粒子群优化算法获取具有所述高优先级的基本独立路径集合;从所述高优先级的基本路径集合中获取所述N个基本独立路径的测试条件,生成取值表;采用正交表方法生成所述N个基本独立路径的正交表,将所述取值表与所述正交表进行映射,以生成所述测试用例集合。5.根据权利要求4所述的方法,其特征在于,所述方法还包括:根据所述流程内部语句获取所述测试条件,并将所述测试条件拆分成树状结构,以得到多个测试条件分支;根据所述多个测试条件分支生成测试条件集合,并记录所述测试条件集合,所述测试条件集合包括:测试环境、输入数据、操作步骤和预测结果。6.一种基本独立路径优化排序的模糊测试系统,其特征在于,所述系统包括:程序圈复杂度计算模块、测试路径优先级计算模块、测试用例...

【专利技术属性】
技术研发人员:薛文昊玄佳兴王焕娟贾帆周磊苏展李江涛李国民
申请(专利权)人:中国信息通信研究院
类型:发明
国别省市:

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

1