System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及软件,尤其是一种基于程序关键程序实体重要度的测试数据进化生成方法。
技术介绍
1、软件测试贯穿于软件开发的全过程,约占软件开发成本的二分之一。软件测试是通过设计测试数据,发现软件中的缺陷或错误,从而保证软件质量的一种评价方法和手段。测试数据的设计是软件测试过程中最核心和最重要的部分,直接决定了软件测试的质量和效率。由于复杂软件的数据类型繁多、输入空间庞大、软件内部结构复杂,因此,测试数据生成一直是重要且困难的问题之一,如何有效的生成满足目标要求的测试数据是软件测试工作的关键。
2、目前,有学者针对软件测试数据生成方法进行研究,如张岩等(张岩,巩敦卫,基于稀有数据扑捉的路径覆盖测试数据进化生成方法[j].计算机学报,2013,36(12):2429-2440)在进化生成测试数据过程中,考虑对稀有数据进行动态扑捉,并通过计算个体对生成穿越目标路径测试数据的贡献,调整进化个体的适应值,以有效生成测试数据。范书平等(范书平,张岩,马宝英等,基于均衡优化理论的路径覆盖测试数据进化生成[j].电子学报,2020,48(7):1303-1310.)利用种群中个体穿越程序各分支的均衡程度,设计适应度函数计算方法来调整进化过程,并通过实验验证了所提出方法的有效性。
3、但是当被测程序包含分支结构时,现有的这些测试数据生成方法仅关注个体对生成覆盖目标路径数据的有效性,而往往不能有效均衡覆盖程序各个分支,降低了测试数据的进化生成效率。
技术实现思路
1、本申请针对上述问
2、一种基于程序关键程序实体重要度的测试数据进化生成方法,该测试数据进化生成方法包括:
3、将被测程序中的每个程序实体抽象为一个节点、将程序实体之间的控制依赖关系抽象为对应节点之间的有向边,构造得到被测程序对应的控制流图;
4、针对被测程序初始化群智能算法的种群,种群中包括m个个体,每个个体对应一组测试数据;
5、基于控制流图计算种群中的m个个体对目标路径上的任意关键程序实体对应的节点nj的覆盖程度,得到关键程序实体对应的节点nj的实体重要度diffj,种群中的m个个体对节点nj的覆盖程度越高、节点nj的实体重要度diffj越高;
6、根据目标路径上各个关键程序实体对应的节点的实体重要度,得到种群中任意个体xk的适应度值f(xk),个体xk对各个关键程序实体对应的节点的实体重要度的影响越大、个体xk的适应度值f(xk)越大,参数1≤k≤m;
7、利用群智能算法根据当前种群中各个个体的适应度值进行选择、交叉、变异并形成下一代种群进行下一次迭代操作,直至达到迭代终止条件时输出种群中适应度值最大的个体作为进化生成得到的覆盖目标路径的测试数据。
8、其进一步的技术方案为,得到种群中任意个体xk的适应度值f(xk)包括:
9、基于控制流图计算种群中除个体xk之外的其他m-1个个体对关键程序实体对应的节点nj的覆盖程度,得到关键程序实体对应的节点nj在不考虑个体xk时的实体重要度diffj′;
10、根据节点nj在考虑种群内所有个体时的实体重要度diffj和不考虑个体xk时的实体重要度diffj′,计算得到个体xk的适应度值f(xk)。
11、其进一步的技术方案为,计算得到个体xk的适应度值f(xk)为:
12、
13、其中,ke是目标路径上所有关键程序实体对应的节点构成的集合。
14、其进一步的技术方案为,得到节点nj在考虑种群内所有个体时的实体重要度diffj和不考虑个体xk时的实体重要度diffj′包括:
15、基于控制流图根据目标路径上各个节点的层次关系确定关键程序实体对应的节点nj的权重wj;
16、根据节点nj的权重wj结合种群中的m个个体对节点nj的覆盖程度得到节点nj在考虑种群内所有个体时的实体重要度diffj;根据节点nj的权重wj结合种群中除个体xk之外的m-1个个体对节点nj的覆盖程度得到节点nj在不考虑个体xk时的实体重要度diffj′。
17、其进一步的技术方案为,目标路径上的关键程序实体包括被测程序中位于目标路径上且属于循环程序实体或选择程序实体的程序实体,每个关键程序实体包括多个子节点而形成多个分支。
18、其进一步的技术方案为,得到节点nj在考虑种群内所有个体时的实体重要度diffj和不考虑个体xk时的实体重要度diffj′包括:
19、根据节点nj的权重wj结合种群中的m个个体对节点nj的各个分支的覆盖程度得到节点nj在考虑种群内所有个体时的实体重要度diffj;
20、根据节点nj的权重wj结合种群中除个体xk之外的m-1个个体对节点nj的各个分支的覆盖程度得到节点nj在不考虑个体xk时的实体重要度diffj′。
21、其进一步的技术方案为,根据节点nj的权重wj结合种群中的m个个体对节点nj的各个分支的覆盖程度得到节点nj在考虑种群内所有个体时的实体重要度diffj为:
22、
23、其中,是种群中的任意个体xm对节点nj的分支t的覆盖情况,当个体xm覆盖节点nj的分支t时否则tj是节点nj包含的分支总数;表示覆盖节点nj的分支t的测试数据总数,是覆盖节点nj所有分支的测试数据总数中的最大值。
24、其进一步的技术方案为,根据节点nj的权重wj结合种群中除个体xk之外的m-1个个体对节点nj的各个分支的覆盖程度得到节点nj在不考虑个体xk时的实体重要度diffj′为:
25、
26、其中,是种群中的任意个体xm对节点nj的分支t的覆盖情况,当个体xm覆盖节点nj的分支t时否则tj是节点nj包含的分支总数;表示在不考虑个体xk的情况下覆盖节点nj的分支t的测试数据总数,是在不考虑个体xk的情况下覆盖节点nj所有分支的测试数据总数中的最大值。
27、其进一步的技术方案为,确定关键程序实体对应的节点nj的权重其中,levelj是节点nj所在层次,maxlevel是目标路径上所有节点所在层次的最大值。
28、其进一步的技术方案为,目标路径上任意节点ni的层次levels是节点ni的父节点ns所在层次。
29、本申请的有益技术效果是:
30、本申请公开了一种基于程序关键程序实体重要度的测试数据进化生成方法,该方法在进化生成测试数据的过程中考虑程序实体的重要度,以在测试数据生成过程中保留覆盖重要程序实体的测试数据,有利于有效提高测试数据的进化生成效率。
31、该方法考虑被测程序的结构,定义实体层次与程序实体权重,实现了对不同程序实体的重要度的区分,提出了一种将程序实体层次、实体权重与测试数据覆盖程序情况融合为基于关键实体重要度的测试数据生成框架。该框架同时考虑了被测程序本文档来自技高网...
【技术保护点】
1.一种基于程序关键程序实体重要度的测试数据进化生成方法,其特征在于,所述测试数据进化生成方法包括:
2.根据权利要求1所述的测试数据进化生成方法,其特征在于,得到种群中任意个体xk的适应度值f(xk)包括:
3.根据权利要求2所述的测试数据进化生成方法,其特征在于,计算得到个体xk的适应度值f(xk)为:
4.根据权利要求2所述的测试数据进化生成方法,其特征在于,得到节点nj在考虑种群内所有个体时的实体重要度diffj和不考虑个体xk时的实体重要度diffj′包括:
5.根据权利要求4所述的测试数据进化生成方法,其特征在于,所述目标路径上的关键程序实体包括所述被测程序中位于所述目标路径上且属于循环程序实体或选择程序实体的程序实体,每个关键程序实体包括多个子节点而形成多个分支。
6.根据权利要求5所述的测试数据进化生成方法,其特征在于,得到节点nj在考虑种群内所有个体时的实体重要度diffj和不考虑个体xk时的实体重要度diffj′包括:
7.根据权利要求6所述的测试数据进化生成方法,其特征在于,根据节点nj
8.根据权利要求6所述的测试数据进化生成方法,其特征在于,根据节点nj的权重wj结合种群中除个体xk之外的M-1个个体对节点nj的各个分支的覆盖程度得到节点nj在不考虑个体xk时的实体重要度diffj′为:
9.根据权利要求5所述的测试数据进化生成方法,其特征在于,确定关键程序实体对应的节点nj的权重其中,levelj是节点nj所在层次,maxlevel是所述目标路径上所有节点所在层次的最大值。
10.根据权利要求9所述的测试数据进化生成方法,其特征在于,所述目标路径上任意节点ni的层次levels是节点ni的父节点ns所在层次。
...【技术特征摘要】
1.一种基于程序关键程序实体重要度的测试数据进化生成方法,其特征在于,所述测试数据进化生成方法包括:
2.根据权利要求1所述的测试数据进化生成方法,其特征在于,得到种群中任意个体xk的适应度值f(xk)包括:
3.根据权利要求2所述的测试数据进化生成方法,其特征在于,计算得到个体xk的适应度值f(xk)为:
4.根据权利要求2所述的测试数据进化生成方法,其特征在于,得到节点nj在考虑种群内所有个体时的实体重要度diffj和不考虑个体xk时的实体重要度diffj′包括:
5.根据权利要求4所述的测试数据进化生成方法,其特征在于,所述目标路径上的关键程序实体包括所述被测程序中位于所述目标路径上且属于循环程序实体或选择程序实体的程序实体,每个关键程序实体包括多个子节点而形成多个分支。
6.根据权利要求5所述的测试数据进化生成方法,其特征在于,得到节点nj在考虑种群内所有个体时的实...
【专利技术属性】
技术研发人员:钱卫东,白亚强,徐源,林达,洪华军,
申请(专利权)人:中国船舶科学研究中心,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。