System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及软件测试,特别涉及基于多序列融合的测试用例优先级排序方法。
技术介绍
1、在整个软件生命周期中,回归测试作为一个必不可少的环节,占据很大的时间开销。目前,随着软件变更频率不断加快,针对效果和时间的测试需求不断提高,这给软件测试带来极大挑战。
2、测试用例优先级是一种评价测试用例重要性的指标,该指标可用于调整测试用例执行顺序,以便尽早发现测试故障。测试用例排序优化技术(tcp)作为回归测试的有效方法之一,备受青睐。目前,用于衡量测试用例优先级的信息有很多种,如代码覆盖率、故障检测水平、变更程度、风险等级以及客户需求等,基于不同信息的测试用例排序技术各有特色,且均取得较好的效果。然而,仅考虑某种信息的测试用例排序方法不够精准,如仅利用代码覆盖率中的分支覆盖或语句覆盖等信息的方法,虽然能够反映出测试用例的测试性能,但未能确定这些测试用例与变更代码的相关性,导致回归测试效果不佳。此外,利用多种信息的测试用例排序方法时间成本较高,如采用软件规模、复杂度和代码结构特征等信息的机器学习算法,虽然排序效果较好,但对数据数量和质量的要求较高,时间开销也较大。
3、因此,在保证用例测试效果的条件下,如何有效地降低排序方法和测试过程的时间成本是软件测试过程中亟需解决的问题。
技术实现思路
1、专利技术目的:针对以上问题,本专利技术目的是提供一种基于多序列融合的测试用例优先级排序方法。
2、技术方案:本专利技术的一种基于多序列融合的测试用例优先级排序方法,
3、步骤1:获取测试用例集和回归测试历史结果,根据测试用例间的相关性对测试用例集进行预处理,得到第一测试用例集合;
4、步骤2:根据回归测试历史结果对第一测试用例集合进行再处理,得到第二测试用例集合,并构建第一测试用例评价函数,获得第一测试用例优先级序列s1;
5、步骤3:利用变更代码的结构特征对第一测试用例集合进行再处理,得到第三测试用例集合,并构建第二测试用例评价函数,获得第二测试用例优先级序列s2;
6、步骤4:获取第一测试用例优先级序列s1和第二测试用例优先级序列s2的的最短公共子序列,利用代码执行逻辑,调整最短公共子序列的用例顺序,将调整后的最短公共子序列替换到原序列中,得到变更软件的测试用例优先级序列。
7、进一步,根据测试用例间的相关性对测试用例集进行预处理,得到第一测试用例集合包括:
8、根据测试过程中测试用例覆盖目标的情况,建立测试用例与覆盖目标之间的关系矩阵m,其中覆盖目标记为o={oi|i=1,2,…,m},oi表示第i个目标,m为目标的个数,将覆盖o内每一目标oi的测试用例集合记为t={tj|j=1,2,…,n},tj表示第j个测试用例,n为测试用例的个数,则m表示为:
9、m=[t1(o),…,tj(o),…,tn(o)]
10、其中,tj(o)为第j个测试用例覆盖目标的向量,tj(o)={tj(oi)|i=1,2,…,m},tj(oi)表示目标oi是否被测试用例tj覆盖,如果oi被tj覆盖,tj(oi)=1;反之,tj(oi)=0;
11、利用汉明距离计算各测试用例覆盖目标间的相似性,将相似性与相似性阈值θ进行比较,当相似性小于相似性阈值θ,保留m中对应的测试用例至新集合m′,否则逐一计算两个测试用例的目标覆盖率,保留m中覆盖率较大的测试用例至新集合m′,将新集合m′作为第一测试用例集合。
12、进一步,步骤2包括:
13、根据回归测试历史结果选择测试用例主要特征及其表征向量,计算特征间的最大信息系数,根据最大信息系数对第一测试用例集合进行筛选,得到第二测试用例集合;
14、对第二测试用例集合中测试用例的特征值进行归一化处理,根据归一化结果构建第一测试用例评价函数f1(t),表达式为:
15、
16、式中,ti(t)为测试用例t中第i个特征值,αi表示第i个特征对测试用例t的权重,m1为第一测试用例集合中特征的个数;
17、利用桶排序算法,结合测试用例的评价得分,生成第一测试用例优先级序列s1。
18、进一步,利用桶排序算法,结合测试用例的评价得分,生成第一测试用例优先级序列s1包括:
19、根据第一测试用例评价函数f1(t)计算每个测试用例的评价得分,将评价得分均匀分割,形成若干子桶;
20、采用二分法排序原则,将子桶内各测试用例进行排序;
21、依次合并子桶,形成第一测试用例优先级序列s1。
22、进一步,步骤3包括:
23、在第一测试用例集合中选择与变更代码相关的特征,计算特征间的最大信息系数,根据最大信息系数对第一测试用例集合进行筛选,得到第三测试用例集合;
24、将第三测试用例集合中测试用例的各特征进行归一化处理,按照归一化处理结果构建第二测试用例评价函数f2(t),表达式为:
25、
26、式中,hi为变更代码块的第i个特征值,βi表示第i个特征对变更代码块的权重,m2为特征子集的大小;
27、在变更前软件中寻找与变更代码块相似的未变更代码块,获取相似未变更代码块对应的测试用例,并将其作为变更代码对应的测试用例;
28、利用第二测试用例评价函数f2(t)计算变更代码对应的测试用例的评价值,根据评价值对变更代码块对应的测试用例进行排序,形成第二测试用例优先级序列s2。
29、进一步,根据最大信息系数对第一测试用例集合进行筛选包括:
30、设置最大信息系数阈值mic0,删除第一测试用例集合中小于mic0的最大信息系数对应的特征,保留不小于mic0的最大信息系数对应的特征,将保留下的第一测试用例集合记为第二测试用例集合或第三测试用例集合。
31、进一步,在变更前软件中寻找与变更代码块相似的未变更代码块,获取相似未变更代码块对应的测试用例包括:
32、将未变更代码块记为w={w1,w2,…,wi,…,wh},其中wi表示第i条执行路径,h为未变更代码块包含执行路径的总条数;
33、将变更代码块记为w′={w1′,w2′,…,wi′,…,wg′},其中wi′为第i条执行路径,g为变更代码块包含执行路径的总条数;
34、计算变更代码块与未变更代码块的相似程度sim(w,w′),表达式为:
35、
36、式中,w∩w′表示w和w′中相同元素的数量,min(|w|,|w′|)表示取两集合中元素数量最少的集合的模;
37、将相似程度大于相似阈值sim0的未变更代码块作为与变更代码块相似的未变更代码块。
38、进一步,在步骤4中,比较第一测试用例优先级序列s1和第二测试用例优先级序列s2的长度,将较长的序列作为原序列。
39、进一步,在步骤1中计算各测试用例覆盖目标间的相似性公本文档来自技高网...
【技术保护点】
1.基于多序列融合的测试用例优先级排序方法,其特征在于,包括如下步骤:
2.根据权利要求1所述的基于多序列融合的测试用例优先级排序方法,其特征在于,根据测试用例间的相关性对测试用例集进行预处理,得到第一测试用例集合包括:
3.根据权利要求1所述的基于多序列融合的测试用例优先级排序方法,其特征在于,步骤2包括:
4.根据权利要求3所述的基于多序列融合的测试用例优先级排序方法,其特征在于,利用桶排序算法,结合测试用例的评价得分,生成第一测试用例优先级序列S1包括:
5.根据权利要求1所述的基于多序列融合的测试用例优先级排序方法,其特征在于,步骤3包括:
6.根据权利要求3或5所述的基于多序列融合的测试用例优先级排序方法,其特征在于,根据最大信息系数对第一测试用例集合进行筛选包括:
7.根据权利要求6所述的基于多序列融合的测试用例优先级排序方法,其特征在于,在变更前软件中寻找与变更代码块相似的未变更代码块,获取相似未变更代码块对应的测试用例包括:
8.根据权利要求1所述的基于多序列融合的测试用例优先级排
9.根据权利要求2所述的基于多序列融合的测试用例优先级排序方法,其特征在于,在步骤1中计算各测试用例覆盖目标间的相似性公式为:
10.根据权利要求3所述的基于多序列融合的测试用例优先级排序方法,其特征在于,最大信息系数的计算公式为:
...【技术特征摘要】
1.基于多序列融合的测试用例优先级排序方法,其特征在于,包括如下步骤:
2.根据权利要求1所述的基于多序列融合的测试用例优先级排序方法,其特征在于,根据测试用例间的相关性对测试用例集进行预处理,得到第一测试用例集合包括:
3.根据权利要求1所述的基于多序列融合的测试用例优先级排序方法,其特征在于,步骤2包括:
4.根据权利要求3所述的基于多序列融合的测试用例优先级排序方法,其特征在于,利用桶排序算法,结合测试用例的评价得分,生成第一测试用例优先级序列s1包括:
5.根据权利要求1所述的基于多序列融合的测试用例优先级排序方法,其特征在于,步骤3包括:
6.根据权利要求3或5所述的基于多序列融合的测试用例优先级排序方法,其特...
【专利技术属性】
技术研发人员:彭超,巩敦卫,张勇,宋贤芳,孙百才,张婉秋,
申请(专利权)人:中国矿业大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。