[发明专利]一种两两覆盖组合软件测试用例集生成方法无效
申请号: | 201110060802.8 | 申请日: | 2011-03-15 |
公开(公告)号: | CN102135937A | 公开(公告)日: | 2011-07-27 |
发明(设计)人: | 孙家泽;王曙燕;张荣;宋辉;王小银;孟伟军 | 申请(专利权)人: | 西安邮电学院 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 710061 陕西*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 针对组合软件测试中两两覆盖组合测试用例集的生成问题,本发明公开了一种两两覆盖组合软件测试用例集生成方法,该方法受启发于离散粒子群算法,采用一个粒子代表一个测试用例集,不同粒子代表不同的测试用例集生成方案,对测试用例集从整体上评价其对各个因素组合的覆盖情况,粒子位置更新利用各个测试用例中各因素离散值出现的次数为依据随机产生下一代个体位置,最后得到满足约束且覆盖所有因素组合的测试用例集。与已有的方法相比,本发明提供一种与初始值无关、收敛速度快、计算量小、稳定性好且生成的测试用例集整体规模小的两两覆盖组合软件测试用例集生成方法,提高软件测试效率,减低测试成本。 | ||
搜索关键词: | 一种 覆盖 组合 软件 测试 用例集 生成 方法 | ||
【主权项】:
1.一种两两覆盖组合软件测试用例集生成方法,其特征在于主要包括以下步骤:(1)在软件测试中,测试人员根据待测软件系统SUT的需求规格说明书,确定相应的测试需求说明书,在软件测试需求说明书中可以获得影响待测软件系统SUT的各种因素和因素之间的约束限制,这些因素可以用集合F表示为F={f1,f2,…,fi,…,fn},n为影响待测软件系统的因素的个数,i为1到n中的任意一个值,其中因素fi假设经过等价类划分后包含pi个离散的值,则因素fi可能的取值可以用集合Vi表示
其中vi1表示因素fi的第一个离散值,vi2表示因素fi的第二个离散值,
表示因素fi的第pi个离散值,则该待测软件系统SUT因素的所有离散值共有P个
约束限制集合可以用C表示C={c1,c2,…,cm},m为约束限制的个数,待测软件系统SUT的一个测试用例test可以用n元组表示为test=(v1,v2,…,vn),其中v1∈V1,v2∈V2,vn∈Vn且满足约束限制C;(2)对待测软件系统SUT因素的所有离散值按照因素从左到右的顺序进行编号,第一个因素f1的第一个离散值v11编号为1,第二个离散值v12的编号为2,第pi个离散值
编号为pi,依次类推,第i个因素fi的第一个离散值vi1编号为因素f1到fi-1的离散值个数之和加1,最后一个因素fn的最后一个离散值的编号为P,因此第i个因素fi的离散值的编号集合可以用集合Hi表示为
这样我们就可以用编号来代表该待测软件系统所有的可能离散取值;(3)考虑到待测软件系统SUT中任意两个因素间的相互作用,都可能对系统产生重要影响,测试用例集TS需要保证覆盖任意两个因素间所有的取值组合且满足约束限制,待测软件系统SUT中任意两个因素覆盖对可以用二元关系矩阵T=(ti,j)P×P表示,其中P表示待测软件系统的因素的全部离散值个数,i,j为离散值的编号,ti,j表示第i个离散值和第j个离散值覆盖对是否要覆盖,ti,j=1表明第i个离散值和第j个离散值对需要覆盖,ti,j=0表明第i个离散值和第j个离散值对不需要覆盖,不需要覆盖的原因可以是同一因素内部的离散值对,也可以是违背了约束限制C的不同因素之间的离散值对;(3)对上述待测软件系统SUT,在粒子群中每个粒子代表一个生成的测试用例集,则粒子群中第i个粒子li的编码为:li=<(li11,li12,…,li1n),(li21,li22,…,li2n),…,(liq1,liq2,…,liqn)>,其中lijk∈{Vk中离散值的编号},q是要生成的测试用例集中的测试用例的数量,该编码的长度为q×n,(li11,li12,…,li1n)代表该测试用例集中的第1个测试用例,(li21,li22,…,li2n)代表该测试用例集中的第2个测试用例,(liq1,liq2,…,liqn)代表该测试用例集中的第q个测试用例;(4)设定基于离散粒子群算法的参数,所述的参数包括粒子群中粒子的数量N,生成的测试用例集中测试用例的个数q,随机选取各因素可取离散值初始化每个粒子的位置,令迭代次数t=1,开始两两覆盖组合软件测试用例集生成;(5)若粒子li其编码为:li=<(li11,li12,…,li1n),(li21,li22,…,li2n),…,(liq1,liq2,…,liqn)>,其对应的二元覆盖关系矩阵T=(ti,j)P×P,从li的编码中可以准确地获得该粒子所代表的测试用例集所覆盖的两两覆盖对以及其出现的次数,若覆盖对<i,j>出现w次,则将关系矩阵T中的ti,j的值减去w,计算关系矩阵T中值为1的元素的个数
若ti,j=1就是该粒子代表的测试用例集没有覆盖的对数,则每个粒子所代表的生成的测试用例集的适应值f(li)=UnCount(li);(6)对每个粒子,将当前适应值和该粒子局部最优位置的适应值liBest进行比较,若其值小于liBest,则将粒子的当前位置其作为该粒子当前的局部最优位置LocBesti=li,且该粒子的当前适应值作为该粒子的局部最优适应值liBest=f(li)=UnCount(li);(7)对每个粒子,将其局部最优适应值liBest和全局经历过的最优位置的适应值LGBest进行比较,若第i个粒子li的局部最优值liBest小于LGBest,则将其局部最优位置作为当前粒子群的全局最优位置GBest=li,该粒子的局部最优适应值作为粒子群的全局最优适应值LGBest=liBest;(8)根据下面的方法更新每个粒子的各维的位置,粒子li当前位置为li=<(li11,li12,…,li1n),(li21,li22,…,li2n),…,(liq1,liq2,…,liqn)>,更新之后的位置为li′=<(li11′,li12′,…,li1n′),(li21′,li22′,…,li2n′),…,(liq1′,liq2′,…,liqn′)>更新的方法为:计算各个离散值出现的次数,lijk出现的次数为num(lijk)则l ijk ′ = Rand ( prob ( h k 1 ) , h k 1 ) Rand ( prob ( h k 2 ) , h k 2 ) . . . Rand ( prob ( h kp k ) , h kp k ) , ]]> Rand(prob(hk1),hk1)表示以prob(hk1)为概率随机取hk1,Rand(prob(hk2),hk2)表示以prob(hk2)为概率随机取hk2,…,
表示以
为概率随机取![]()
![]()
其中n为该粒子代表的测试用例集中包含的测试用例的个数,pk为第k个因素的离散值的个数,num(hkj)粒子中第hkj个离散值出现的次数;(9)如果当前的迭代次数t等于最大迭代次数MAX,或者当前粒子群的LGBest的UnCount达到期望的值0,则全局最优值PGBest所对应的粒子所代表的测试用例集即为两两覆盖组合软件测试用例集生成方法生成的最优测试用例集,结束循环;否则,t=t+1,返回第(5)步。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安邮电学院,未经西安邮电学院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201110060802.8/,转载请声明来源钻瓜专利网。
- 上一篇:聚天冬酰-L-精氨酸及其制备方法和医药用途
- 下一篇:用于汽车的车身