System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及软件自动化测试的,尤其涉及一种多路并行的软件自动化测试方法。
技术介绍
1、随着软件规模的不断扩大和复杂性的增加,传统的手动测试方法已经无法满足软件质量保证的需求。自动化测试作为一种高效、可靠的测试方法,已经成为软件开发过程中的重要环节。然而,传统的串行自动化测试方法在处理大规模测试用例时存在效率低下的问题。为了提高自动化测试的效率和覆盖率,多路并行的软件自动化测试方法应运而生。多路并行测试可以同时执行多个测试任务,大大缩短测试时间,提高测试效率。但是在多路并行测试中,多个测试任务可能会相互干扰,导致测试结果不准确。针对该问题,本专利技术提出一种多路并行的软件自动化测试方法,通过执行路径无关性分析实现无干扰软件测试,提高软件测试效率和准确性。
技术实现思路
1、有鉴于此,本专利技术提供一种多路并行的软件自动化测试方法,目的在于:1)从软件执行过程中调用函数的执行逻辑中提取调用函数之间的调用关系,将软件执行过程中的调用函数作为节点,基于调用函数之间的调用关系构建得到表征调用函数执行顺序的有向软件执行网络,基于软件执行网络中节点的前驱节点数目以及后继节点数据计算得到节点的支持度,其中支持度越高则表示该节点为初始执行函数的概率越大,所能提取的软件执行路径数目越多,进而将软件执行网络转换为多组软件执行路径;2)结合节点的支持度以及在软件执行路径中出现的频率计算得到节点的关键影响力,对软件执行路径进行重要性评估,得到每组软件执行路径的重要度,将软件执行路径的重要度转换为采样概率
2、实现上述目的,本专利技术提供的一种多路并行的软件自动化测试方法,包括以下步骤:
3、s1:将软件执行过程中的调用函数作为节点,从软件执行过程中调用函数的执行逻辑中提取调用函数之间的调用关系,构建得到软件执行网络,采用深度遍历算法将软件执行网络转换为多组软件执行路径,其中软件执行路径中的路径节点为调用函数;
4、s2:对软件执行网络中的节点进行关键影响力计算,得到每个节点的关键影响力;
5、s3:将软件执行网络中每个节点的关键影响力代入到软件执行路径中相应的路径节点,对软件执行路径进行重要性评估,得到每组软件执行路径的重要度;
6、s4:基于软件执行路径的重要度,生成每组软件执行路径的采样概率,按照采样概率进行多路并行的软件执行路径的测试执行。
7、作为本专利技术的进一步改进方法:
8、可选地,所述s1步骤中将软件执行过程中的调用函数作为节点,从软件执行过程中调用函数的执行逻辑中提取调用函数之间的调用关系,包括:
9、提取软件执行过程中存在调用的函数作为软件执行过程中的调用函数,将软件执行过程中的调用函数作为节点,从软件执行过程中调用函数的执行逻辑中提取调用函数之间的调用关系,并基于调用函数之间的调用关系构建得到软件执行网络,其中调用函数之间的调用关系提取流程为:
10、若一组调用函数的函数执行结果为下一组调用函数的输入,则表示两组调用函数存在执行逻辑,并将两组调用函数在执行逻辑中的先后顺序作为两组调用函数之间的调用关系。
11、可选地,所述s1步骤中基于调用函数之间的调用关系构建得到软件执行网络,包括:
12、将软件执行过程中的调用函数作为节点,基于调用函数之间的调用关系构建得到软件执行网络,其中软件执行网络的表示形式为:
13、g=(e,v)
14、e={en|n∈[1,n]}
15、v={v(n,i)|n∈[1,n],i∈[1,n],i≠n}
16、其中:
17、g表示软件执行网络的表示形式,e表示软件执行网络中的节点集合,v表示软件执行网络中的节点关系集合;
18、en表示软件执行网络中的第n个节点,对应第n组调用函数,n表示软件执行网络中的节点总数;
19、v(n,i)表示软件执行网络中节点en与节点ei所对应调用函数之间的调用关系;
20、v(n,i)={-1,0,1},v(n,i)=1表示节点en为节点ei的前驱节点,即节点en所对应调用函数的函数执行结果为节点ei所对应调用函数的输入,在软件执行网络中,由节点en指向节点ei;v(n,i)=0表示节点en与节点ei所对应调用函数不存在调用关系,在软件执行网络中,节点en与节点ei不存在指向关系;v(n,i)=-1表示节点en为节点ei的后继节点,即节点ei所对应调用函数的函数执行结果为节点en所对应调用函数的输入,在软件执行网络中,由节点ei指向节点en;
21、采用深度遍历算法将软件执行网络转换为多组软件执行路径。
22、可选地,所述s1步骤中采用深度遍历算法将软件执行网络转换为多组软件执行路径,包括:
23、采用深度遍历算法将软件执行网络转换为多组软件执行路径,其中软件执行路径的遍历流程为:
24、s11:计算软件执行网络中每个节点的前驱节点总数以及后继节点总数,其中节点en的前驱节点总数为xn,后继节点总数为yn;
25、s12:计算得到软件执行网络中每个节点的支持度,其中节点en的支持度计算公式为:
26、
27、其中:
28、en表示节点en的支持度;
29、表示预设的后继节点数目阈值;
30、exp(·)表示以自然常数为底的指数函数;
31、s13:按照支持度降序对软件执行网络中的节点进行排序;
32、s14:根据排序结果依次选取节点作为当前路径节点;
33、s15:将当前路径节点加入到当前软件执行路径中,作为路径节点,其中当前软件执行路径初始为空;
34、s16:若当前路径节点存在后继节点,且后继节点不存在于当前软件执行路径中,则将后继节点作为当前路径节点,返回步骤s15,否则提取当前软件执行路径,并返回上一个当前路径节点重新选择不同的后续节点以及提取软件执行路径进行回溯,直到回溯到步骤s14所选取的节点,则返回步骤s14选取排序中的下一个节点作为当前路径节点;
35、s17:重复步骤s14-s16,得到多组软件执行路径,并进行软件执行路径覆盖,其中软件执行路径的覆盖规则为:若两组软件执行路径的长度相差一个节点,分别为u以及u+1个节点,且两组软件执行路径的前u个节点均相同,则用更长的软件执行路径对另一组软件执行路径进行覆盖;
36、构成软件执行路径集合:
37、{lk|k∈[1,k]}
38、lk=(lk(1),lk(2),...,lk(j),...,lk(numk))
39、其中:
40、lk表示所转换得到的第本文档来自技高网...
【技术保护点】
1.一种多路并行的软件自动化测试方法,其特征在于,所述方法包括:
2.如权利要求1所述的一种多路并行的软件自动化测试方法,其特征在于,所述S1步骤中将软件执行过程中的调用函数作为节点,从软件执行过程中调用函数的执行逻辑中提取调用函数之间的调用关系,包括:
3.如权利要求2所述的一种多路并行的软件自动化测试方法,其特征在于,所述S1步骤中基于调用函数之间的调用关系构建得到软件执行网络,包括:
4.如权利要求3所述的一种多路并行的软件自动化测试方法,其特征在于,所述S1步骤中采用深度遍历算法将软件执行网络转换为多组软件执行路径,包括:
5.如权利要求1所述的一种多路并行的软件自动化测试方法,其特征在于,所述S2步骤中对软件执行网络中的节点进行关键影响力计算,包括:
6.如权利要求1所述的一种多路并行的软件自动化测试方法,其特征在于,所述S3步骤中将软件执行网络中每个节点的关键影响力代入到软件执行路径中,对软件执行路径进行重要性评估,得到每组软件执行路径的重要度,包括:
7.如权利要求6所述的一种多路并行的软件自动
8.如权利要求7所述的一种多路并行的软件自动化测试方法,其特征在于,所述S4步骤中按照采样概率进行多路并行的软件执行路径的测试执行,包括:
...【技术特征摘要】
1.一种多路并行的软件自动化测试方法,其特征在于,所述方法包括:
2.如权利要求1所述的一种多路并行的软件自动化测试方法,其特征在于,所述s1步骤中将软件执行过程中的调用函数作为节点,从软件执行过程中调用函数的执行逻辑中提取调用函数之间的调用关系,包括:
3.如权利要求2所述的一种多路并行的软件自动化测试方法,其特征在于,所述s1步骤中基于调用函数之间的调用关系构建得到软件执行网络,包括:
4.如权利要求3所述的一种多路并行的软件自动化测试方法,其特征在于,所述s1步骤中采用深度遍历算法将软件执行网络转换为多组软件执行路径,包括:
5.如权利要求1所述的一种多路并行的软...
【专利技术属性】
技术研发人员:李波,
申请(专利权)人:上海博为峰软件技术股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。