一种基于One-test-at-a-time策略的组合测试用例优先级排序方法技术

技术编号:15541673 阅读:73 留言:0更新日期:2017-06-05 10:58
本发明专利技术公开了一种基于One‑test‑at‑a‑time策略的组合测试用例优先级排序方法,属于软件测试领域。本发明专利技术包括:通过One‑test‑at‑a‑time策略思想,在组合测试用例集中每次选择一条优先级最高的测试用例用于执行;测试用例优先级使用多重待覆盖率、测试用例失效率和测试用例重要度三个影响因子及权重因子α、β、γ计算的结果排序;根据测试用例的测试情况,实时调整影响因子参数取值;再根据调整后的影响因子参数取值,选择下一条优先级最高的测试用例进行执行,反复直至达到测试目标。本发明专利技术可用于不同组合覆盖强度生成的测试用例优先级的排序,能够有效地在使用相同的测试用例数量情况下检测出更多的缺陷,提高了缺陷检测效率。

A One test based on at combination test case prioritization method a time strategy

The invention discloses a One test based on at combination test case prioritization method a time strategy, which belongs to the field of software testing. The present invention includes: through the One test at a time strategy, for execution in the combinatorial test set each a test case with the highest priority; priority to the use of multiple test coverage, test cases and test cases of the failure rate of three impact factor and weight factor alpha, beta, gamma the calculation result ranking; according to the test results of test cases, adjust the impact factor of parameter values; then according to the effect of adjusted factor parameters, select a test case for the implementation of the highest priority, to achieve the goal of directly repeated test. The invention can be used for test case prioritization of different combinations of coverage intensity generated by sorting, can effectively use the number of test cases under the same condition to detect more defects, improve the efficiency of defect detection.

【技术实现步骤摘要】
一种基于One-test-at-a-time策略的组合测试用例优先级排序方法
本专利技术属于软件测试领域,具体涉及一种基于One-test-at-a-time策略的组合测试用例优先级排序方法。
技术介绍
在计算机行业迅速发展的时代,新型的软件产品层出不穷,软件产品升级换代的步伐也迈得越来越快,这使得对软件产品进行回归测试的频率不断上升。然而,对于开发商而言,花费大量时间、消耗巨额资金也只能是事倍功半。在这种高成本的开销下,如何有效的在短时间低成本的前提下尽早发现软件产品的缺陷这一难题成为了测试人员不断开拓创新的重点。测试用例的优先级排序技术是一种高效实用的测试技术。随着测试用例优先级技术的引入,为了能够较好较快的达到测试目标,根据测试用例完成测试目标的程度这一信息进行排序,从而执行优先执行贡献较高的测试用例。组合测试是软件测试的重要方法之一,该方法已经广泛运用于测试用例的生成中,该方法能够缩减测试用例集的规模。由于资源限制,大多数情况下无法对组合测试生成的测试用例进行完全测试,因此只能尽可能多的优先执行部分贡献程度较高的测试用例。现有的组合测试用例优先级算法基本都是从覆盖组合的角度出发,通过某个标准对测试用例进行衡量并给出相应的优先级,再通过这些优先级进行逐一对测试用例进行测试。或针对测试过程本身对测试用例在执行过程中动态的调整优先级。大部分情况下,在对组合测试用例排序因素的选取过于单一,并且没有考虑测试过程本身触发的实时问题。因此,针对组合测试用例优先级存在的缺陷,本专利技术提出了一种针对固定力度组合测试用例优先级排序的方法:首先,根据现有的组合测试用例生成情况,初始化测试用例集。通过One-test-at-a-time策略思想,每次选择一条测试用例用于执行。将测试用例按照多个影响因子共同计算的结果进行排序,影响因子之间利用权值权衡重要关系。根据当前测试用例的测试情况,调整影响因子参数取值以适应测试用例的实时排序。再根据调整后的影响因子参数取值,选择下一条优先级最高的测试用例进行执行,反复直至所有测试用例排序完毕或达到测试目标。
技术实现思路
本专利技术的目的是对原始组合测试用例优先级算法进行改进,增加多个优先级排序影响因子和根据实际测试结果调整影响因子取值的策略,提供一种更加有效的组合测试用例优先级排序方法。本专利技术解决其技术问题所采用的技术方案如下:定义:在一个待测软件系统(简称SUT)中,假设存在n个影响因素,这些影响因素构成一个有限集合{f1,f2,…,fn},其中每个影响因素fi的取值为vi={p1,p2,…,pk}。那么,SUT的一条测试用例tc={x1,x2,…,xn}(x1∈v1,x2∈v2,…,xn∈vn)。组合测试中,测试用例的生成都是要求完全覆盖的一定力度组合,以达到生成的测试用例集规模尽可能最小的目的。用例使用组合测试覆盖矩阵存储,组合测试覆盖矩阵每一行代表一个测试用例,每一列代表一个影响因素,每一项是对应影响因素的取值。组合测试覆盖矩阵分为固定力度覆盖矩阵CA=(N;λ,n,|v1||v2|…|vn|)和可变力度覆盖矩阵VCA=(N;λ,n,|v1||v2|…|vn|,C),本专利技术仅讨论关于固定力度覆盖矩阵的组合测试用例的情况。其中,N为测试用例个数,λ为组合覆盖力度,n为影响因素个数,|vi|为影响因素fi的取值数量。CA=(N;λ,n,|v1||v2|…|vn|)是一个N×n的矩阵,要求任意N×λ子矩阵包含了在值域上的所有λ元组至少一次。对于任意一条测试用例tc={x1,x2,…,xn},必定覆盖个组合。CombSetλ(tc)可以描述为:One-test-at-a-time策略:One-test-at-a-time策略普遍应用于组合测试的研究中,其简单、有效、便于扩展的特点使得该策略能够较好的改进并运用到测试用例优先级排序算法中。在组合测试的研究中,能够利用One-test-at-a-time策略构建Greedy算法的框架。该策略是一维扩展机制,选用全局贪心算法能够达到最理想的状态。即每次选择一条要执行的测试用例时,选择优先级最高的测试用例。固定力度组合测试优先级排序算法:多重覆盖的固定力度组合测试用例集的优先级排序算法(简称MICP)是一种在单一覆盖的组合测试优先级排序方法(简称ICBP)的基础上进行改进的算法。ICBP是每次从候选测试用例集T中,选择一条测试用例ts,使得ts能够覆盖最多的组合测试用例序列S尚未覆盖的λ元组合。MICP也是每次从候选测试用例集T中,选择一条测试用例tc,使得tc与组合测试用例序列S中所有的测试用例多重组合覆盖信息的相似度最小。覆盖λ元参数值组合的相似性(简称CVCSλ)描述了测试用例tc和候选测试用例集T覆盖的公有λ元参数组的个数,且CVCSλ(tc,T)=|CombSetλ(tc)∩CombSetλ(T)|。归一化的相似性度量(简称NCVCSλ)是相似性计算的度量方式,计算如下:MICP和ICBP都是以固定力度组合测试当前组合覆盖力度λ为主要排序依据。ICBP仅考虑当前组合覆盖力度λ的所有元组的覆盖情况,而MICP参考全部组合覆盖力度为λ及λ以下元组的相似情况。MICP采用多重覆盖信息的相似性度量(简称MICS),计算如下:其中0<ωi≤1.0且MICP在参数值组合速率和错误检测速率上均优于ICBP。故本专利技术采用类似于MICP方式,用于多重覆盖组合的计算。本专利技术提出的组合测试用例优先级排序方法可用于不同组合覆盖强度生成的测试用例优先级的排序中,能够有效地在使用相同的测试用例数量情况下检测出更多的缺陷,提高缺陷检测的效率。附图说明图1是One-test-at-a-time策略算法流程图。图2是测试用例待覆盖率的计算流程图。图3是基于One-test-at-a-time策略的组合测试用例优先级排序算法流程图。具体实施方式下面结合附图并通过具体实施方式来进一步描述本专利技术。图1为本专利技术算法中实施的One-test-at-a-time策略算法流程图。本专利技术所述的组合测试用例优先级方法,将One-test-at-a-time策略、多目标优化思想和组合测试用例优先级排序算法相结合,提出了一种多个优先级排序影响因子和根据实际测试结果调整影响因子取值的策略,用于组合测试用例优先级排序,如图2所示,包括以下步骤:步骤1:初始化测试用例序列集输入组合测试用例集是t0时刻的测试用例序列集,是t0时刻的组合测试用例集。此时,i=0。步骤2:计算每条尚未执行的测试用例的优先级其中,tcj是测试用例,ti是当前时刻,λ为组合覆盖力度,是测试用例tcj多重待覆盖率。表示测试用例tcj,在ti时刻覆盖测试用例序列以外组合力度为λ及λ以下所有组合的强度。是测试用例tcj失效率。表示测试过程中,ti时刻测试用例tcj的失效率。是测试用例tcj重要程度。α、β、γ分别表示多重待覆盖率、测试用例失效率和测试用例重要程度的权值,且α+β+γ=1。步骤2.1:计算测试测试用例tcj多重待覆盖率其中0<ωk≤1.0且多重待覆盖率则是考虑测试用例tcj覆盖测试用例序列集中尚未覆盖组合的概率,并且要求覆盖的k元参数值组合,当k不同时,覆盖组合情况也存在不同。故引入权重的概念,使用所有k本文档来自技高网
...
一种基于One-test-at-a-time策略的组合测试用例优先级排序方法

【技术保护点】
一种基于One‑test‑at‑a‑time策略的组合测试用例优先级排序方法,其特征在于,包括如下步骤:(1)初始化测试用例序列集,输入组合测试用例集;(2)计算每条尚未执行的测试用例的优先级;(3)寻找当前时刻优先级最高的测试用例集,当存在多个优先级最高的测试用例时,将这些优先级相同且优先级最高的测试用例表示成一个优先级最高的测试用例集;(4)从优先级最高的测试用例集随机选取一条测试用例,并执行这条测试用例且获取测试结果;(5)根据执行测试用例的测试结果,调整测试用例的失效率;(6)将执行过的测试用例插入到测试用例序列集的尾部,将执行过的测试用例从组合测试用例集中剔除;(7)重复步骤(2)~(6),直到组合测试用例集中测试用例的个数等于0为止;(8)输出测试用例序列集。

【技术特征摘要】
1.一种基于One-test-at-a-time策略的组合测试用例优先级排序方法,其特征在于,包括如下步骤:(1)初始化测试用例序列集,输入组合测试用例集;(2)计算每条尚未执行的测试用例的优先级;(3)寻找当前时刻优先级最高的测试用例集,当存在多个优先级最高的测试用例时,将这些优先级相同且优先级最高的测试用例表示成一个优先级最高的测试用例集;(4)从优先级最高的测试用例集随机选取一条测试用例,并执行这条测试用例且获取测试结果;(5)根据执行测试用例的测试结果,调整测试用例的失效率;(6)将执行过的测试用例插入到测试用例序列集的尾部,将执行过的测试用例从组合测试用例集中剔除;(7)重复步骤(2)~(6),直到组合测试用例集中测试用例的个数等于0为止;(8)输出测试用例序列集。2.根据权利要求1所述的一种基于One-test-at-a-time策略的组合测试用例优先级排序方法,其特征在于所述的步骤(2)中测试用例优先级计算方法为:计算测试用例的优先级其公式如下:其中,tcj是测试用例,ti是当前时刻,λ为组合覆盖力度,是测试用例tcj多重待覆盖率,是测试用例tcj失效率,是测试用例tcj重要程度,α、β、γ分别表示多重待覆盖率、测试用例失效率和测试用例重要程度的权值,且α+β+γ=1;多重待覆盖率计算方法为:

【专利技术属性】
技术研发人员:包晓安林青霞张娜熊子健
申请(专利权)人:浙江理工大学
类型:发明
国别省市:浙江,33

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

1