首页 > 专利 > 浙江理工大学 > 基于OTT策略的可变力度组合测试用例优先级在线排序方法专利详情

基于OTT策略的可变力度组合测试用例优先级在线排序方法   0    0

有效专利 查看PDF
专利申请流程有哪些步骤?
专利申请流程图
申请
申请号:指国家知识产权局受理一件专利申请时给予该专利申请的一个标示号码。唯一性原则。
申请日:提出专利申请之日。
2017-10-18
申请公布
申请公布指发明专利申请经初步审查合格后,自申请日(或优先权日)起18个月期满时的公布或根据申请人的请求提前进行的公布。
申请公布号:专利申请过程中,在尚未取得专利授权之前,国家专利局《专利公报》公开专利时的编号。
申请公布日:申请公开的日期,即在专利公报上予以公开的日期。
2018-03-30
授权
授权指对发明专利申请经实质审查没有发现驳回理由,授予发明专利权;或对实用新型或外观设计专利申请经初步审查没有发现驳回理由,授予实用新型专利权或外观设计专利权。
2020-12-15
预估到期
发明专利权的期限为二十年,实用新型专利权期限为十年,外观设计专利权期限为十五年,均自申请日起计算。专利届满后法律终止保护。
2037-10-18
基本信息
有效性 有效专利 专利类型 发明专利
申请号 CN201710969682.0 申请日 2017-10-18
公开/公告号 CN107766245B 公开/公告日 2020-12-15
授权日 2020-12-15 预估到期日 2037-10-18
申请年 2017年 公开/公告年 2020年
缴费截止日
分类号 G06F11/36 主分类号 G06F11/36
是否联合申请 独立申请 文献类型号 B
独权数量 1 从权数量 2
权利要求数量 3 非专利引证数量 1
引用专利数量 0 被引证专利数量 0
非专利引证 1、CN 106776351 A,2017.05.31CN 102855185 A,2013.01.02JP 2012174011 A,2012.09.10王子元等.基于One_test_at_a__time策略的可变力度组合测试用例生成方法《.计算机学报》.2012,第35卷(第12期),第2541-2551页.;
引用专利 被引证专利
专利权维持 5 专利申请国编码 CN
专利事件 事务标签 公开、实质审查、授权
申请人信息
申请人 第一申请人
专利权人 浙江理工大学 当前专利权人 浙江理工大学
发明人 包晓安、林青霞、张娜 第一发明人 包晓安
地址 浙江省杭州市江干经济开发区2号大街928号 邮编 310018
申请人数量 1 发明人数量 3
申请人所在省 浙江省 申请人所在市 浙江省杭州市
代理人信息
代理机构
专利代理机构是经省专利管理局审核,国家知识产权局批准设立,可以接受委托人的委托,在委托权限范围内以委托人的名义办理专利申请或其他专利事务的服务机构。
杭州求是专利事务所有限公司 代理人
专利代理师是代理他人进行专利申请和办理其他专利事务,取得一定资格的人。
郑海峰
摘要
本发明公开了一种基于OTT策略的可变力度组合测试用例优先级排序方法,属于软件测试领域。本发明包括:根据当前测试用例序列覆盖组合的情况,调整影响因子集;通过OTT策略思想,在组合测试用例集中每次选择一条优先级最高的测试用例用于执行;测试用例优先级使用局部组合覆盖率、测试用例失效率和测试用例重要度三个影响因子共同计算排序;根据测试用例的测试结果,实时调整影响因子参数取值,更新测试用例序列、测试用例集和测试用例序列的未覆盖组合集;重新计算优先级,反复直至达到测试目标。本发明可用于不同组合覆盖强度生成的测试用例优先级的排序,能够有效地在使用相同的测试用例数量情况下检测出更多的缺陷,提高了缺陷检测效率。
  • 摘要附图
    基于OTT策略的可变力度组合测试用例优先级在线排序方法
  • 说明书附图:图1
    基于OTT策略的可变力度组合测试用例优先级在线排序方法
  • 说明书附图:图2
    基于OTT策略的可变力度组合测试用例优先级在线排序方法
法律状态
序号 法律状态公告日 法律状态 法律状态信息
1 2020-12-15 授权
2 2018-03-30 实质审查的生效 IPC(主分类): G06F 11/36 专利申请号: 201710969682.0 申请日: 2017.10.18
3 2018-03-06 公开
权利要求
权利要求书是申请文件最核心的部分,是申请人向国家申请保护他的发明创造及划定保护范围的文件。
1.一种基于OTT策略的可变力度组合测试用例优先级排序方法,其特征在于,包括如下步骤:
(1)输入组合测试用例集,输入可变力度覆盖矩阵,初始化测试用例序列;
(2)判断全局影响因子集下,测试用例序列是否覆盖了全部影响因子下对应力度的组合,根据其情况调整影响因子集中影响因子的个数;
影响因子集调整方法为:
若λm元组合未完全被测试用例序列 覆盖:
R=F,λ=λm
若λm元组合均被测试用例序列 覆盖:
R=F′,λ=λs
其中,λm和λs是可变力度覆盖矩阵VSCA=(N;λm,n1,F,CA(N′,λs,n′,F′))中对应的力度,R和λ为中间变量,R是在测试过程中,根据当前测试情况所选取的影响因子集;λ是测试过程中选取的组合测试力度;N为测试用例个数,λm为全部影响因子的组合覆盖力度,n1为影响因子集F中元素的个数,N′为部分重要影响因子在力度λs下的测试用例个数,λs为部分重要影响因子的组合覆盖力度,n′为影响因子集F′中元素的个数;CA(·)是固定力度覆盖矩阵;
(3)计算每条尚未执行的测试用例的优先级;
测试用例优先级计算方法为:
计算测试用例的优先级 其公式如下:
其中,tc是测试用例,ti是当前时刻,λ为组合覆盖力度, 是测试用例
tc的局部组合覆盖率,表示测试用例tc,ti时刻下在局部影响因子集R中覆盖所有λ元组合,且这些λ元组合尚未被测试用例序列 覆盖的概率; 是测试用例tc失效率,表示
测试过程中,ti时刻测试用例tc的失效率,I(tc,R)是测试用例tc重要程度,α、β、γ分别表示局部组合覆盖率、测试用例失效率和测试用例重要程度的权值,且α+β+γ=1;
局部组合覆盖率 计算方法为:
其中,CombSet(λ,R)(tc)是测试用例tc在影响因子集R中覆盖所有λ元组合的集合,是测试用例序列 在影响因子集R中未覆盖λ元组合的集合,n
为R中影响因子的个数;
测试用例失效率 计算方法为:
其中, 是参数取值失效率,表示测试过程中,ti时刻测试用例tc在影响
因子集R中,fk对应取值为p的失效率, 是参数取值失效个数,表示测试用例tc在影响因子集R中,ti时刻参数取值失效率不为0的参数取值个数,即 的参数
取值个数;
测试用例重要程度I(tc,R)计算方法:
其中,ω(fk,p)是参数取值重要程度,表示影响因素fk中,取值为p的重要程度;n2是测试用例tc中参数的个数;
(4)寻找当前时刻优先级最高的可变力度组合测试用例集,当存在多个优先级最高的测试用例时,将这些优先级相同且优先级最高的测试用例表示成一个优先级最高的测试用例集;
(5)从优先级最高的测试用例集随机选取一条测试用例,并执行这条测试用例且获取测试结果;
(6)根据执行测试用例的测试结果,调整测试用例的失效率;
(7)时刻增加,更新测试用例序列、测试用例集和测试用例序列的未覆盖组合集;
(8)重复步骤(2)~(7),直到已执行的测试用例个数达到测试目标为止;
(9)输出测试用例序列。

2.根据权利要求1所述的一种基于OTT策略的可变力度组合测试用例优先级排序方法,其特征在于所述的步骤(6)中测试用例失效率的调整方法为:
根据测试用例 的测试结果,调整测试用例的失效率,即调整参数取值失效率
使得ti时刻的测试用例的失效率能够在测试过程中动态调整;若ti-1,i≥1
时刻,测试用例 检测出SUT中存在的缺陷,测试结果只能反应软件失效,但无法判断究竟是由哪些参数相互作用引发的失效,因此,只能对 覆盖的所有参数取值的失效率相应增加,各参数取值失效率可用以下公式:
其中,Δc为失效率的增加值;
若ti-1,i≥1时刻,测试用例 未检测出SUT中存在缺陷,测试结果能够反应出当前测试用例中所有参数取值不会对SUT造成缺陷,则该测试用例覆盖的所有参数取值的失效率变为0,其他参数取值的失效率保持不变,则ti时刻,各参数取值失效率可用以下公式:

3.根据权利要求1所述的一种基于OTT策略的可变力度组合测试用例优先级排序方法,其特征在于所述的步骤(6)中更新测试用例序列、测试用例集和测试用例序列的未覆盖组合集的方法为:
更新测试用例序列S:将测试用例 插入到测试用例序列集 的尾部,公式表示如
下:
更新测试用例集T:将测试用例 从组合测试用例集 中剔除,公式表示如下:
更新测试用例序列的未覆盖组合集UncovCombSet(λ,R)(S):
说明书

技术领域

[0001] 本发明属于软件测试领域,具体涉及一种基于OTT策略的可变力度组合测试用例优先级排序方法。

背景技术

[0002] 在当今计算机技术高速发展的时代下,用户对现有产品的需求越来越高,软件产品的更新速率也不断提升。在这种情形下,用户既要求减低产品开发周期,又要求提高产品的质量。然而,对于开发商而言,如何高效开发新产品且提高产品的质量成为难题。在测试角度上,如何提高测试效率以及缺陷检测能力,是解决这一难题的关键环节。
[0003] 测试用例优先级技术的引入,使得在测试过程中能够很好的避免穷举测试和重复测试。为了能够较好较快的达到测试目标,尽早发现产品中存在的缺陷及关联的缺陷,根据测试用例的测试完成情况和缺陷检测率等信息进行排序,从而执行优先执行贡献较高的测试用例。
[0004] 组合测试已广泛应用于软件测试中,该方法能够缩减测试用例的规模。由于软件产品更新换代的频率逐渐上升,对组合测试用例进行完全测试的成本不断增加。针对此问题,将优先级技术引入到组合测试内,能够在软件测试过程中,提高测试效率。实际在组合测试的过程中,两个参数相互组合所生成的用例可以检测出70%的错误,90%以上的错误可由三个以内参数相互组合找出。目前,在组合测试用例优先级排序问题上,能够利用单一组合覆盖信息实现组合测试用例的排序问题;可以通过多重组合覆盖情况这一角度保证测试的有序进行;并且以组合权重和测试代价为标准也能实现组合测试用例优先级排序的方法。
[0005] 现有的此类方法中,绝大部分只是对固定力度的组合测试用例优先级排序,而可变力度的组合测试用例优先级排序方法的研究仍然较少。可变力度的组合测试用例优先级排序方法存在如下难题:排序过程中组合力度选取困难,且当前固定力度组合测试用例的优先级排序方法无法满足复杂的交互关系。并且在已有的可变力度的组合测试用例优先级排序方法中,忽略了其它因素的影响,也没有考虑在实际测试过程中测试反馈结果信息的情况。
[0006] 因此,针对组合测试用例优先级排序方法存在的问题,本发明提出了一种针对可变力度组合测试用例优先级排序的方法:首先,根据现有的可变力度组合测试用例生成情况,初始化测试用例集,并得到需覆盖的组合集。通过OTT策略思想,依次选择一条测试用例用于执行。将测试用例按照多个排序因素共同计算的结果进行排序,排序因素之间利用权值权衡重要关系。根据当前测试用例的测试情况,调整排序因素参数取值和组合覆盖情况以适应测试用例的实时排序,并且更新测试用例集和测试用例序列。再根据更新后的测试用例集和调整后的排序因素参数取值及组合覆盖情况,选择下一条优先级最高的测试用例进行执行,反复直至所有测试用例排序完毕或达到测试目标。

发明内容

[0007] 本发明的目的是对可变组合测试用例优先级方法进行改进,在局部增量式覆盖信息的基础上,增加多个优先级排序因素,以及根据实际测试结果调整影响因素取值、测试用例集测试用例序列和覆盖组合的情况,提供一种更加合理的可变力度组合测试用例优先级排序方法。
[0008] 本发明解决其技术问题所采用的技术方案如下:
[0009] 定义:
[0010] 待测软件系统(简称SUT)中,组合测试内部影响因子的相互关系并非完全一致,部分影响因子之间的相互作用可能更加紧密,使得固定力度的组合测试优先级排序方法无法满足影响因子之间这种复杂的交互关系。假设存在n个影响因子,这些影响因子构成一个有限集合F={f1,f2,…,fn},其中每个影响因素fi的取值为vi={p1,p2,…,pk}。那么,SUT的一条测试用例tc={x1,x2,…,xn}(x1∈v1,x2∈v2,…,xn∈vn)。
[0011] 组合测试中,测试用例的生成都是要求完全覆盖的一定力度组合,以达到生成的测试用例集规模尽可能最小的目的。那么,在可变力度的组合测试生成测试用例的过程中,不仅需要考虑大部分参数的组合情况,还需要考虑到部分重要参数的组合情况,以适应测试的实际需求。
[0012] 组合测试覆盖矩阵分为固定力度覆盖矩阵CA=(N;λ,n,|v1||v2|…|vn|)和可变力度覆盖矩阵VSCA=(N;λm,n,F,CA(N′,λs,n′,F′)),本发明仅讨论关于可变力度覆盖矩阵的组合测试用例的情况。其中,N为测试用例个数,λm为全部影响因子的组合覆盖力度,n为影响因子集F中元素的个数,N′为部分重要影响因子在力度λs下的测试用例个数,λs为部分重要影响因子的组合覆盖力度,n′为影响因子集F′中元素的个数。显然,VSCA=(N;λm,n,F,CA(N′,λs,n′,F′))是一个N×n的矩阵,存在1≤λm<λs≤|F′|<n且
[0013] 对于任意一条测试用例tc={x1,x2,…,xn},必定覆盖影响因子集F下个组合。CombSet(λ,F)(tc)可以描述为:
[0014]
[0015] 那么,当前测试用例序列未覆盖影响因子集F下的组合情况可用UncovCombSet(λ,F)(S)集合形式表示。
[0016] One-test-at-a-time策略:
[0017] One-test-at-a-time(简称OTT)策略普遍应用于组合测试的研究中,其简单、有效、便于扩展的特点使得该策略能够较好的改进并运用到测试用例优先级排序算法中。在组合测试的研究中,能够利用OTT策略构建Greedy算法的框架。该策略是一维扩展机制,选用全局贪心算法能够达到最理想的状态。即每次选择一条要执行的测试用例时,选择优先级最高的测试用例。
[0018] 可变力度组合测试优先级排序算法:
[0019] 基于局部增量式覆盖信息的可变力度组合测试用例集的优先级排序算法(简称LICVSP)是一种在基于全局增量式覆盖信息的可变力度组合测试用例集优先级排序算法(简称GICVSP)的基础上进行改进的算法。GICVSP算法中,首先采用影响因子集F上组合覆盖力度为λm的ICBP算法对可变力度组合测试用例进行排序,当所有λm元组合均被覆盖后,再采用影响因子集F上组合覆盖力度为λs的ICBP算法对可变力度组合测试用例进行排序,知道所有待测测试用例均被选择。LICVSP算法则是在所有λm元组合均被覆盖后,不再考虑影响因子集F上组合覆盖力度为λs的覆盖情况,而是仅使用影响因子集F′上组合覆盖力度为λs的ICBP算法对可变力度组合测试用例进行排序。GICVSP与GICVSP相比,更加符合可变力度组合测试的力度变化情况,实际上也加强了对部分重要影响因子之间关系的描述,故本发明采用类似于GICVSP方式,用于局部组合覆盖率的计算。
[0020] 基于此,本发明的基于OTT策略的可变力度组合测试用例优先级排序方法,包括如下步骤:
[0021] (1)输入组合测试用例集,输入可变力度覆盖矩阵,初始化测试用例序列;
[0022] (2)判断全局影响因子集下,测试用例序列是否覆盖了全部影响因子下对应力度的组合,根据其情况调整影响因子集中影响因子的个数;
[0023] (3)计算每条尚未执行的测试用例的优先级;
[0024] (4)寻找当前时刻优先级最高的可变力度组合测试用例集,当存在多个优先级最高的测试用例时,将这些优先级相同且优先级最高的测试用例表示成一个优先级最高的测试用例集;
[0025] (5)从优先级最高的测试用例集随机选取一条测试用例,并执行这条测试用例且获取测试结果;
[0026] (6)根据执行测试用例的测试结果,调整测试用例的失效率;
[0027] (7)时刻增加,更新测试用例序列、测试用例集和测试用例序列的未覆盖组合集;
[0028] (8)重复步骤(2)~(7),直到已执行的测试用例个数达到测试目标为止;
[0029] (9)输出测试用例序列。
[0030] 本发明提出的可变组合测试用例优先级排序方法可用于不同组合覆盖强度生成的测试用例优先级的排序中,能够有效地在使用相同的测试用例数量情况下检测出更多的缺陷,提高缺陷检测的效率。

实施方案

[0033] 下面结合附图并通过具体实施方式来进一步描述本发明。
[0034] 图1为本发明方法中实施的OTT策略流程图。
[0035] 本发明所述的组合测试用例优先级方法,将OTT策略、多目标优化思想和组合测试用例优先级排序方法相结合,提出了一种多个优先级排序因素,以及根据实际测试结果调整影响因子取值、测试用例集测试用例序列和覆盖组合的情况的方法,用于组合测试用例优先级排序,如图2所示,包括以下步骤:
[0036] 步骤1:输入组合测试用例集 输入可变力度覆盖矩阵VSCA=(N;λm,n,F,CA(N′,λs,n′,F′)),初始化测试用例序列集 是t0时刻的组合测试用例集, 是t0时刻的测试用例序列集。此时,i=0。
[0037] 步骤2:判断影响因子集F下,测试用例序列 是否覆盖了全部λm元组合。若λm元组合未完全被测试用例序列 覆盖:
[0038] R=F,λ=λm
[0039] 若λm元组合均被测试用例序列 覆盖:
[0040] R=F′,λ=λs
[0041] 其中,λm和λs是可变力度覆盖矩阵VSCA=(N;λm,n,F,CA(N′,λs,n′,F′))中对应的力度,R和λ是新使用变量,为了便于后期优先级的计算和排序因素的调整。
[0042] 步骤3:计算每条尚未执行的测试用例的优先级
[0043]
[0044] 其中,tc是测试用例,ti是当前时刻,λ为组合覆盖力度, 是测试用例tc的局部组合覆盖率。表示测试用例tc,ti时刻下在局部影响因子集R中覆盖所有λ元组合,且这些λ元组合尚未被测试用例序列 覆盖的概率。 是测试用例tc失效
率。表示测试过程中,ti时刻测试用例tc的失效率。I(tc,R)是测试用例tc重要程度。α、β、γ分别表示局部组合覆盖率、测试用例失效率和测试用例重要程度的权值,且α+β+γ=1。
[0045] 步骤3.1:计算测试测试用例tc多重待覆盖率
[0046]
[0047] 其中,CombSet(λ,R)(tc)是测试用例tc在影响因子集R中覆盖所有λ元组合的集合,是测试用例序列 在影响因子集R中未覆盖λ元组合的集合,n为R中影响因子的个数。
[0048] 步骤3.2:计算测试用例tc失效率
[0049]
[0050] 其中, 是参数取值失效率。表示测试过程中,ti时刻测试用例tc在影响因子集R中,fk对应取值为p的失效率。 是参数取值失效个数。表示测试用例tc在影响因子集R中,ti时刻参数取值失效率不为0的参数取值个数,即 的
参数取值个数。
[0051] 步骤3.3:计算测试用例tc重要程度I(tc,R):
[0052]
[0053] 其中,ω(fk,p)是参数取值重要程度。表示影响因素fk中,取值为p的重要程度。n是测试用例tc中参数的个数。
[0054] 步骤3.4:计算测试用例tc的优先级
[0055]
[0056] 步骤3.5:重复步骤3.1~3.4,直到组合测试用例集 中的所有测试用例的优先级计算出结果为止。
[0057] 步骤4:寻找ti时刻优先级最高的测试用例集equalSet。可能存在多个优先级最高的测试用例,将这些优先级相同且优先级最高的测试用例表示成一个优先级最高的测试用例集。
[0058] 步骤5:从测试用例集equalSet随机选取一条测试用例 并执行测试用例 且获取测试结果。
[0059] 步骤6:测试过程中,当前测试用例的执行结果能够反馈SUT存在的问题。根据测试用例 的测试结果,调整测试用例的失效率,即调整参数取值失效率 使得ti时刻的测试用例的失效率能够在测试过程中动态调整。测试用例的执行能够反馈当前可能存在的错误与缺陷,那么测试用例所覆盖的参数取值的失效率需要做出相应的调整,以保证测试用例失效率能够实时计算,确保最终优先级排序的准确性。若ti-1(i≥1)时刻,测试用例 检测出SUT中存在的缺陷,测试结果只能反应软件失效,但无法判断究竟是由哪些参数相互作用引发的失效。因此,只能对 覆盖的所有参数取值的失效率相应增加,其他参数取值的失效率各参数取值失效率可用以下公式:
[0060]
[0061] 其中,Δc为失效率的增加值。
[0062] 若ti-1(i≥1)时刻,测试用例 未检测出SUT中存在缺陷,测试结果能够反应出当前测试用例中所有参数取值不会对SUT造成缺陷,则该测试用例覆盖的所有参数取值的失效率变为0,其他参数取值的失效率保持不变。则ti时刻,各参数取值失效率可用以下公式:
[0063]
[0064] 步骤7:时刻i增加。更新测试用例序列S。将测试用例 插入到测试用例序列集的尾部,公式表示如下:
[0065]
[0066] 更新测试用例集T。将测试用例 从组合测试用例集 中剔除,公式表示如下:
[0067]
[0068] 更新测试用例序列的未覆盖组合集UncovCombSet(λ,R)(S),公式表示如下:
[0069]
[0070] 步骤8:重复步骤2~7,直到已执行的测试用例个数达到测试目标为止。
[0071] 步骤9:输出测试用例序列

附图说明

[0031] 图1是OTT策略方法流程图。
[0032] 图2是基于OTT策略的可变力度组合测试用例优先级排序方法流程图。
版权所有:盲专网 ©2023 zlpt.xyz  蜀ICP备2023003576号