CN102135937A - 一种两两覆盖组合软件测试用例集生成方法 - Google Patents

一种两两覆盖组合软件测试用例集生成方法 Download PDF

Info

Publication number
CN102135937A
CN102135937A CN2011100608028A CN201110060802A CN102135937A CN 102135937 A CN102135937 A CN 102135937A CN 2011100608028 A CN2011100608028 A CN 2011100608028A CN 201110060802 A CN201110060802 A CN 201110060802A CN 102135937 A CN102135937 A CN 102135937A
Authority
CN
China
Prior art keywords
particle
value
test
factor
test case
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2011100608028A
Other languages
English (en)
Other versions
CN102135937B (zh
Inventor
孙家泽
王曙燕
张�荣
宋辉
王小银
孟伟军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xi'an Post & Telecommunication College
Original Assignee
Xi'an Post & Telecommunication College
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xi'an Post & Telecommunication College filed Critical Xi'an Post & Telecommunication College
Priority to CN201110060802.8A priority Critical patent/CN102135937B/zh
Publication of CN102135937A publication Critical patent/CN102135937A/zh
Application granted granted Critical
Publication of CN102135937B publication Critical patent/CN102135937B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

针对组合软件测试中两两覆盖组合测试用例集的生成问题,本发明公开了一种两两覆盖组合软件测试用例集生成方法,该方法受启发于离散粒子群算法,采用一个粒子代表一个测试用例集,不同粒子代表不同的测试用例集生成方案,对测试用例集从整体上评价其对各个因素组合的覆盖情况,粒子位置更新利用各个测试用例中各因素离散值出现的次数为依据随机产生下一代个体位置,最后得到满足约束且覆盖所有因素组合的测试用例集。与已有的方法相比,本发明提供一种与初始值无关、收敛速度快、计算量小、稳定性好且生成的测试用例集整体规模小的两两覆盖组合软件测试用例集生成方法,提高软件测试效率,减低测试成本。

Description

一种两两覆盖组合软件测试用例集生成方法
技术领域
本发明属于软件测试技术领域,具体涉及到组合软件测试中测试用例集的生成问题,提供一种两两覆盖组合软件测试用例集生成方法,主要解决在软件测试中如何根据实际需要,用尽可能少的测试用例来尽可能多地覆盖软件系统中的各因素及相应两两覆盖组合,系统地检测它们之间的相互作用对系统所产生的影响,从而在保证测试用例集错误检测能力的基础上尽可能地减少测试用例数量,提高软件测试效率,减低测试成本。
背景技术
软件测试作为保证软件质量和可靠性的重要手段,贯穿于软件生命周期的整个过程,在整个软件生命周期中占有重要的地位,大约占整个开发成本的60%以上。特别对于航空航天,军事国防等性命攸关的系统,其测试费用甚至高达其工程开发阶段费用总和的3到5倍。针对一个具体的待测软件系统,我们一方面要考虑采用什么样的测试方法对其进行系统科学的测试,另一方面要考虑如何产生数量少而质量高的测试用例集,既达到对系统的充分测试,又能够提高测试的效率,降低测试的成本。
软件作为一个复杂的逻辑系统,它的正常运行可能受到多因素的影响,这些因素可能是系统的配置、内部事件、外部输入等。除单个因素之外,上述因素之间的相互作用也可能会对软件的正常运行产生影响。因此,在测试时不仅要考虑所有对软件产生影响的可能因素,而且对存在于这些因素之间的相互作用,即因素之间的组合也要进行充分的测试。研究发现,大约70%的软件故障是由一个或两个参数的相互作用而引发,为了使用尽可能少的测试用例来有效检测这些因素之间的相互作用对系统产生的影响,人们提出了组合软件测试方法,组合软件测试方法是一种设计测试用例集的方法,它依据一定的组合覆盖准则产生测试用例。根据覆盖程度的不同,可以分为单因素覆盖、两两组合覆盖等。这种方法力求用尽可能少的测试用例,覆盖尽可能多的影响因素,有效的检测软件系统中各个因素以及它们之间的相互作用对系统产生的影响。当前组合测试研究的核心问题是组合测试用例集生成问题,即如何针对具体待测软件,在满足给定组合覆盖要求的前提下,生成规模尽可能小的测试用例集,以便在保证错误检测能力的前提下尽可能的降低测试成本。
大量实践表明,组合软件测试在软件测试实践中具有很好的效果,因此,很有必要对软件进行组合软件测试,寻找高效地自动组合测试用例集的生成方法,对实现软件测试过程自动化、高效化和智能化,有着十分重要的现实意义。
在软件测试中,测试人员根据待测软件系统SUT的需求规格说明书,确定相应的测试需求说明书,在软件测试需求说明书中可以准确的获得影响待测软件系统的各种因素和因素之间的约束限制,这些因素可以用集合F表示为F={f1,f2,…,f1,…,fn},n为影响待测系统的因素的个数,i为1到n中的任意一个值,其中因素fi假设经过等价类划分后包含pi个离散的值,则因素fi可能的取值可以用集合Vi表示其中vi1表示因素fi的第一个离散值,vi2表示因素fi的第二个离散值,
Figure BSA00000449626500022
表示因素fi的第pi个离散值。该待测系统SUT因素的所有离散值共有P个
Figure BSA00000449626500023
约束限制集合可以用C表示C={c1,c2,…,cm},m为约束限制的个数待测软件系统SUT的一个测试用例test可以用n元组表示为test=(v1,v2,…,vn),其中v1∈V1,v2∈V2,vn∈Vn且满足约束限制C,待测软件系统SUT的一个测试用例集TS假设是有m个测试用例构成的,通过对测试用例集TS中的各个测试用例在待测软件系统SUT中的运行来实现对待测软件系统SUT的测试。对待测软件系统SUT因素的所有离散值按照因素从左到右的顺序进行编号,第一个因素f1的第一个离散值v11编号为1,第二个离散值v12的编号为2,……,依次类推,第i个因素fi的第一个离散值vi1编号为因素f1到fi-1的离散值个数之和再加1,……,最后一个因素fn的最后一个离散值的编号为P,这样后面我们就用编号来代表系统所有的可能离散取值。
考虑到待测软件系统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的不同因素之间的离散值对。
由上述描述可知,两两覆盖的组合测试用例集生成问题就是根据待测软件系统SUT所有因素的离散值和约束限制情况找到覆盖二元关系矩T=(ti,j)P×P中所有两两组合对的规模最小的测试用例集。
组合测试方法始于20世纪80年代Mandl提出的两两组合覆盖的软件测试,并成功应用于Ada编译器的测试,并利用正交拉丁方来产生测试用例集;20世纪90年代末,贝尔实验室提出一种基于贪心策略的组合测试用例生成方法,并开发了AETG系统用于产生组合测试用例集。2001年Schroeder提出了利用软件附加信息对组合测试的测试用例集进行约简和优化的方法;Lei和Tai提出了一种基于参数顺序扩充的两两组合测试数据生成策略,并开发了PairTest系统用于产生两两组合的测试用例。2002年Kuhn和Reilly研究了组合测试的可用性,发现大约70%的故障是由两个以下参数的相互作用引起的。同年,Kobayashi和Tsuchiya提出了一种生成两两组合测试数据的代数方法。2003年Cohen M.B.等人将模拟退火算法应用于多重维数组合测试用例的生成,该方法综合考虑了运算效率和运算结果之间的关系,可以根据时间和效率上不同的要求来生成尽可能优的结果。2004年,Shiba和Tsuchiya等人研究了遗传算法和蚁群算法在组合测试数据自动生成中的应用。Colbourn和Cohen M.B等人提出一种两两组合测试数据生成的确定性密度方法。Schroeder等人通过实验比较了N维组合测试与相同规模随机测试的错误检测能力。2005年,Colbourn和Sherwood等人研究了两种组合覆盖表的生成方法,分别应用于具有不同参数取值的两两组合覆盖表和高维组合覆盖表的生成。2006年Microsoft的Czerwonka发布了组合测试用例生成工具PICT,该工具使用基于one-test-at-a-time策略的方法生成测试用例集;徐宝文,聂长海,史亮等人提出了两种类似的二水平二维组合测试用例集生成方法;严俊、张健等人提出了在组合测试用例生成中完备搜索算法的应用。2007年,徐宝文等人提出了一种基于in-parameter-order策略的广义变力度组合测试用例集生成方法,命名为ParaOrder,完整的解决了相邻因素组合测试用例的生成问题。2010年12月查日军等人提出组合测试数据生成的交叉熵与粒子群方法,该方法简单的使用了传统粒子群算法取得了一定的效果。
从近年来国内外对组合测试用例生成方法的研究,我们可以发现,他们采用的方法可以概括为:针对不同类型的组合测试结合一定最优化搜索方法来实现测试用例的生成,这里使用的方法主要有确定的搜索方法(即代数方法)和基于进化和模拟生物的优化方法(即启发式方法)。代数方法主要正交表方法,图覆盖的方法,由于组合测试用例生成是一个NP-C问题,该方法主要适合于小规模的问题;针对该NP-C问题使用启发式方法生成近似最优解是一种常用的方法,使用的启发式算法主要有:贪心算法、爬山算法、模拟退化算法、洪水算法,禁忌搜索等个体搜索算法和遗传算法、蚁群算法,粒子群等群体智能算法。从前人的实验结果我们可以看出群体智能算法的寻优效果要比个体算法好,但是整体寻优效果相当,原因在于他们只是简单的套用传统的遗传算法、蚁群算法,粒子群算法,没有在使用中充分的体现组合测试用例生成问题的解空间离散的特点,位置更新没有体现组合测试用例各个因素的各个离散值出现机会基本均等的特点,并且采用一次产生一个测试用例的方法,没有从测试用例集的整体情况考虑,不利于得到最小的测试用例集,而且计算量大。所以其寻优效果一般,不利于整体最优测试用例集的产生。
离散粒子群优化算法(DPSO)是Kennedy和Eberhart在1997年为解决离散空间问题提出的离散版的粒子群算法,即传统的离散粒子群算法,粒子的速度和位置公式如式(1)和式(2):
v id t + 1 = wv id t + c 1 r 1 t ( P bestid t - x id t ) + c 2 r 2 t ( G bestid t - x id t ) - - - ( 1 )
x id t = 0 , rand ≥ sig ( v id t + 1 ) 1 , others sig ( v id t + 1 ) = 1 / ( 1 + exp ( - v id t ) ) - - - ( 2 )
式(1)中:
Figure BSA00000449626500053
为粒子i在迭代第t次的速度;w是为避免DPSO陷入局部最优而引入的惯性权重因子,cj(j=1,2)为加速常数;
Figure BSA00000449626500054
Figure BSA00000449626500055
是0到1之间的随机数;为个体i在迭代第t次当前位置;Pbestid为第i个粒子的个体极值;Gbestid为全局极值。式(2)中:rand为0~1的随机数,sig(v)是一个根据粒子速度控制粒子位置为1或0的函数。
该传统的离散粒子群算法沿用了基本连续粒子群优化的速度更新公式,即速度仍作用于连续空间,而位置则利用Sig函数将其离散化.目前DPSO算法被广泛用于离散空间的优化问题中。
DPSO算法通过优化可连续变化的二进制概率达到间接优化二进制变量的目的。但是,该间接优化策略根据概率而非算法本身确定二进制变量,未能充分利用基本粒子群优化算法的性能。
和连续版的粒子群算法相比,离散版的粒子群算法在编码方式,粒子位置改变方式发生了变化,但仍然缺少对连续量与离散量运算不同规律的考虑,运算量大,其性能与其它算法相比效果很一般。
由于DPSO算法实现简单,效果好,目前已在许多离散工程领域中取得了广泛的应用,近年来受到各界的广泛关注,并提出了很多改进算法。但是将DPSO算法应用于组合测试用例集生成问题还没有。
为此本发明的方法以离散粒子群算法为基础,结合组合用例生成问题对基本离散粒子群算法加以改进,减少计算量,位置更新采用以各个因素的各个离散值出现的次数为依据来产生新的位置,同时采用一次产生一个测试用例集的方法,从整体评价一个测试用例集的优劣来指导生成测试用例集,从而产生一个高效的实用的两两覆盖组合测试用例集生成方法。
发明内容
本发明解决的问题:克服现有方法不足,将改进的离散粒子群算法应用于两两覆盖组合软件测试用例生成问题中,为两两覆盖组合测试用例生成问题提供一种操作简单、计算速度快、稳定性好且生成的测试用例集整体规模小的自动测试用例集生成方法。
本发明解决方案:一种两两覆盖组合软件测试用例集生成方法,其特点在于主要包括以下步骤:
(1)在软件测试中,测试人员根据待测软件系统SUT的需求规格说明书,确定相应的测试需求说明书,在软件测试需求说明书中可以获得影响待测软件系统SUT的各种因素和因素之间的约束限制,这些因素可以用集合F表示为F={f1,f2,…,fi,…,fn},n为影响待测软件系统的因素的个数,i为1到n中的任意一个值,其中因素fi假设经过等价类划分后包含pi个离散的值,则因素fi可能的取值可以用集合Vi表示
Figure BSA00000449626500071
其中vi1表示因素fi的第一个离散值,vi2表示因素fi的第二个离散值,
Figure BSA00000449626500072
表示因素fi的第pi个离散值,则该待测软件系统SUT因素的所有离散值共有P个
Figure BSA00000449626500073
约束限制集合可以用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个离散值
Figure BSA00000449626500074
编号为pi,依次类推,第i个因素fi的第一个离散值vi1编号为因素f1到fi-1的离散值个数之和加1,最后一个因素fn的最后一个离散值的编号为P,因此第i个因素fi的离散值的编号集合可以用集合Hi表示为
Figure BSA00000449626500075
这样我们就可以用编号来代表该待测软件系统所有的可能离散取值;
(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的元素的个数
Figure BSA00000449626500081
若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 &prime; = 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,…,
Figure BSA00000449626500092
表示以
Figure BSA00000449626500093
为概率随机取
Figure BSA00000449626500094
Figure BSA00000449626500095
其中n为该粒子代表的测试用例集中包含的测试用例的个数,pk为第k个因素的离散值的个数,num(hkj)粒子中第hkj个离散值出现的次数;
(9)如果当前的迭代次数t等于最大迭代次数MAX,或者当前粒子群的LGBest的UnCount达到期望的值0,则全局最优值PGBest所对应的粒子所代表的测试用例集即为两两覆盖组合软件测试用例集生成方法生成的最优测试用例集,结束循环;否则,t=t+1,返回第(5)步。
该两两覆盖组合软件测试用例集生成方法,可以应用于软件测试过程中的单元测试阶段,集成测试阶段,确认测试阶段,系统测试阶段,验收测试阶段。有益效果:
传统离散粒子群优化算法(DPSO)是Kennedy和Eberhart在1997年在粒子群算法基础上为解决离散空间问题提出的,其原理和传统的连续粒子群优化算法一样,求解离散优化问题时,首先将问题的离散可行解通过一定的离散编码方式编码成粒子,用一个粒子来代表该问题的一个离散可行解,用粒子群来代表一组可行的离散解,根据要求随机初始化一个粒子群,通过粒子群中各粒子的迭代,寻找最优,在每一次迭代中,粒子通过根据两个″极值″来更新自己的位置。第一个就是粒子本身所找到的最优解即个体极值PBest.另一个极值是整个种群目前找到的最优解即全局极值PGBest。粒子位置的好坏,由被优化的问题决定的适应值函数来评价。每一个粒子根据当前速度并利用Sig函数来决定下一步粒子到达的位置,各个粒子追随当前的个体最优和全局最优位置在离散搜索空间进行搜索,利用各个粒子的飞行的信息不断的更新“极值”位置,最终达到或接近问题的最优位置。
该传统的离散粒子群算法沿用了基本粒子群优化的速度更新公式,即速度仍作用于连续空间,而位置则利用SIG函数将连续的速度转化为位置的离散值.即通过优化可连续变化的二进制概率达到间接优化二进制变量的目的,该间接优化策略根据概率而非算法本身确定二进制变量,和连续版的粒子群算法相比,离散版的二进制粒子群算法在编码方式,粒子位置改变方式发生了变化,但仍然缺少对连续量与离散量运算不同规律的考虑,运算量大,未能充分利用基本粒子群优化算法的性能,其性能与其它算法相比效果很一般。
在离散空间的优化问题的求解中。离散粒子群算法近年来受到的广泛关注,为了提高性能,更好的解决离散问题,专家学者提出了很多改进算法,取得了一定的成绩。但是将离散粒子群算法应用于两两覆盖组合测试用例集生成问题的研究却没有见到。
两两覆盖的组合测试用例集生成问题就是根据待测软件系统SUT所有因素的离散值和约束限制情况找到覆盖二元关系矩T=(ti,j)P×P中所有两两组合对的规模最小的测试用例集,以便在保证错误检测能力的前提下尽可能的降低测试成本。
在传统的离散粒子群算法中,粒子位置的更新是利用SIG函数将连续的速度转化而来的,间接的利用传统的粒子群算法来实现解决离散问题,此方法缺少对连续量与离散量运算不同规律的考虑,运算量大,未能充分利用离散化数据的特点,在测试用例集生成问题中,粒子位置的每一维值的选择只有有限个事先确定的离散值,要产生的是不同因素间的组合。同时由于对于最后产生的最优测试用例集来说,同一因素的各个离散值出现的机会应该是均等的(个别有约束的因素的离散值有例外),所以根据目前粒子的测试用例组成情况可以重新确定下次出现的概率,现在已经出现次数多的离散值,在更新中下次出现的概率让其减小些,相反,当前粒子中出现次数少的离散值,在更新中下次出现的概率让其增大,这样粒子的更新就更加易于趋向最优值,这样可以加快测试用例集的生成的速度,所以本发明位置更新采用以各个因素的各个离散值出现的次数为依据来产生新的位置的方法,提高算法的收敛速度,同时简化了位置更新的操作。
在传统的粒子群算法中,通常采用一个粒子代表一个测试用例,通过粒子群算法迭代过程一次产生一个测试用例的方法,该方法是基于贪心的思想,每次找到当前覆盖最多覆盖对的测试用例,但是该方法缺少从整体上来考虑测试用例集中各个测试用例的整体效应,不能体现粒子群的整体寻优能力,因此不利于得到最小的测试用例集。为此本发明的方法采用一个粒子代表一个测试用例集,充分考虑测试用例集的整体效果,进行整体评价,通过粒子群算法迭代过程一次产生需要的测试用例集的方法,提高了测试用例集的生成效率,便于得到更小规模的测试用例集。
将改进的离散粒子群算法应用于两两覆盖组合软件测试用例集生成问题,并且位置更新采用以各个因素的各个离散值出现的次数为依据来随机产生新的位置,同时采用一次产生一个测试用例集的方法,从整体评价一个测试用例集的优劣来指导生成测试用例集,从而产生一个高效的实用的两两覆盖组合测试用例集生成方法。
下面典型实例实验结果证实了该方法的有效性:
两两覆盖组合软件测试用例集生成问题是NP-C问题,目前有多种启发式方法能获得该问题的近似解,达到对测试用例集的自动生成。现有的启发式方法和系统主要包括:AETG,PAIRTEST,NetWork,PSST,SA,GA,ACA,CE,PSO等,本发明的方法MDPSO和现有的两两覆盖组合软件测试用例集生成方法AETG,PAIRTEST,NetWork,PSST,SA,GA,ACA,CE,PSO实验比较结果如表1和表2所示。
表格待测软件系统问题解释:以问题53×44×31×22为例,53×44×31×22表示有3个因素的离散值取值个数为5个,有4个因素的离散值取值个数为4个,有1个因素的离散值取值个数为3个,有2个因素的离散值取值个数为2个。
从表1和表2中可以看出,本发明提供的方法生成的测试用例规模结果大部分是近优,与其它方法生成的测试用例集的规模在整体上较好,方法稳定性好。
表1 生成结果比较1
表2 生成结果比较2
通过以上分析和实例验证表明,本发明提出的两两覆盖组合软件测试用例集生成方法与已有的组合测试用例集生成方法相比,本发明提供两两覆盖组合测试用例集生成方法充分利用组合测试生成离散值的特点,生成的测试用例集规模整体较小,方法稳定性好,计算量少,是一种有效的两两覆盖组合软件测试用例集生成方法。
附图说明
附图1是本发明的流程图。
附图2某一次测试用例集生成的迭代次数和局部最优的平均适应值图。
附图3 30次实验中找到最优测试用例集的迭代次数图。
具体实施方式
以某待测软件系统的两两覆盖组合测试用例集生成为例,结合图1具体说明本发明的两两覆盖组合测试用例集生成方法的实施方式。
从某待测软件系统测试需求说明书获得影响该待测软件系统SUT的4个因素及其可能取值和因素之间的一个约束限制如下:
因素及其可能取值:
Database:DB/2,Oracle
Client:Firefox,IE,Opera,Google
WebServer:WebSphere,Apache,NET
OS:windows,linux
参数之间的约束为:
if([Client]==″IE″)then([OS]!=″linux″)
因素可以用集合F表示为F={Database,Client,WebServer,OS},影响待测软件系统的因素的个数为4,第一个因素Database含有2个离散值,V1={DB/2,Oracle},p1=2;第二个因素Client含有4个离散值,V2={Firefox,IE,Opera,Google},p2=4;第三个因素WebServer含有3个离散值,V3={WebSphere,Apache,NET},p3=3;第四个因素OS含有2个离散值,V4={Windows,Linux},p4=2。该待测系统SUT因素的所有离散值共有P个
Figure BSA00000449626500141
约束限制只有一个,可以用C表示C={if([Client]==″IE″)then([OS]!=″linux″)},待测软件系统SUT的一个测试用例test可以用4元组表示为test=(v1,v2,v3,v4),其中v1∈V1,v2∈V2,vn∈Vn且满足约束限制C;
(2)对待测系统SUT因素的所有离散值按照因素从左到右的顺序进行编号,第一个因素Database的第一个离散值DB/2编号为1,第二个离散值Oracle的编号为2,其编号集合可以用集合H1表示为H1={1,2};第二个因素Client的第一个离散值Firefox编号为3,第二个离散值IE的编号为4,第三个离散值Opera编号为5,第四个离散值Google编号为6,其编号集合可以用集合H2表示为H2={3,4,5,6};第三个因素WebServer的第一个离散值WebSphere编号为7,第二个离散值Apache的编号为8,第三个离散值NET编号为9,其编号集合可以用集合H3表示为H3={7,8,9};第四个因素WebServer的第一个离散值windows编号为10,第二个离散值linux的编号为11,其编号集合可以用集合H4表示为H4={10,11}。
(3)待测软件系统SUT中任意两个因素对可以用二元关系矩阵T=(ti,j)11×11表示为:
  0   0   1   1   1   1   1   1   1   1   1
  0   0   1   1   1   1   1   1   1   1   1
  0   0   0   0   0   0   1   1   1   1   1
  0   0   0   0   0   0   1   1   1   1   0
  0   0   0   0   0   0   1   1   1   1   1
  0   0   0   0   0   0   1   1   1   1   1
  0   0   0   0   0   0   0   0   0   1   1
  0   0   0   0   0   0   0   0   0   1   1
  0   0   0   0   0   0   0   0   0   1   1
  0   0   0   0   0   0   0   0   0   0   0
  0   0   0   0   0   0   0   0   0   0   0
t4,11=0是因为参数直接约束if([Client]==″IE″)then([OS]!=″linux″)造成不存在(IE,linux)这样的覆盖对,其他ti,j=0的是因为没有存在覆盖对。
(4)对上述待测软件系统SUT,在粒子群中每个粒子代表一个生成的测试用例集,根据测试需求和历史数据取测试用例集中含测试用例个数为12;则粒子群中粒子li的编码为:li=<(li11,li12,li13,li14),(li21,li22,li23,li24),…,(li121,li122,li123,li124)>,其中lijk∈Hk,该编码的长度为12×4=48,(li11,li12,li13,li14)代表该测试用例集中的第1个测试用例,(li21,li22,li23,li24)代表该测试用例集中的第2个测试用例,(li121,li122,li123,li12n)代表该测试用例集中的第12个测试用例;
(5)设定基于粒子群算法的参数,所述的参数包括粒子群中粒子的数量10,生成的测试用例集中测试用例的个数12,初始化各个粒子的局部最优值为100,全局部最优值为100;随机选取各因素可取离散值初始化每个粒子的各维位置,例如第4个粒子随机初始化的位置编码为:
l4=<(2,5,8,11),(1,5,7,11),(1,3,9,10),(2,6,8,11),(1,4,9,10),(1,5,7,11),(1,3,8,10),(1,5,8,10),(2,5,9,10),(2,5,7,10),(2,5,7,11),(2,6,9,11)>
令迭代次数t=1,开始组合测试用例集生成;
(6)上述粒子l4其对应的二元覆盖关系矩阵T=(ti,j)11×11为:
  0   0   1   0   2   1   1   1   1   -3   -1
  0   0   1   1   -3   -1   -1   -1   -1   -1   -3
  0   0   0   0   0   0   1   0   0   -1   1
  0   0   0   0   0   0   1   1   0   0   0
  0   0   0   0   0   0   3   1   0   2   3
  0   0   0   0   0   0   1   0   0   1   -1
  0   0   0   0   0   0   0   0   0   0   -2
  0   0   0   0   0   0   0   0   0   -1   1
  0   0   0   0   0   0   0   0   0   -2   0
  0   0   0   0   0   0   0   0   0   0   0
  0   0   0   0   0   0   0   0   0   0   0
计算过程为:从l4的编码中可以准确地获得该粒子所代表的测试用例集所覆盖的两两覆盖对以及其出现的次数,若两两覆盖对<i,j>出现w次,则将关系矩阵T中的ti,j的值减去w,例如<1,3>出现了2次,t1,3=1-2=-1;计算关系矩阵T中值为1的元素的个数UnCount(l4)=1+(1+1)+(1+1)+(1+1)+0+(1+1)+0+0+0+0+0=9就是该粒子代表的测试用例集没有覆盖的对数,作为该粒子所代表的生成的测试用例集的适应值f(l4)=UnCount(l4)=9;
(7)对粒子l4,将当前适应值为9和该粒子局部最优位置的适应值l4Best=100进行比较;当前位置较好,则将粒子的当前位置其作为该粒子当前的局部最优位置LocBest4=l4,即粒子的当前适应值作为该粒子的局部最优适应值l4Best=f(l4)=UnCount(l4)=9;
(8)对粒子l4,将其局部最优适应值l4Best和全局经历过的最优位置的适应值LGBest=100进行比较,则第4个粒子l4的局部最优值l4Best比LGBest好,则将其局部最优位置作为当前粒子群的全局最优位置GBest=LocBest4,该粒子的局部最优适应值作为粒子群的全局最优适应值LGBest=l4Best=9;
l4=<(2,5,8,11),(1,5,7,11),(1,3,9,10),(2,6,8,11),(1,4,9,10),(1,5,7,11),(1,3,8,10),(1,5,8,10),(2,5,9,10),(2,5,7,10),(2,5,7,11),(2,6,9,11)>
(9)更新粒子的各维的位置,以l4为例,从l4编码中计算各个离散值出现的次数分别为{6,6,2,1,7,2,4,4,4,6,6}即num(1)=6,num(2)=6,num(3)=2,num(4)=1,num(5)=7,num(6)=2,num(7)=4,num(8)=4,num(9)=4,num(10)=6,num(11)=6,以第一个测试用例的更新为例说明更新过程,其他的11个测试用例的更新过程和第一个完全一样。第一个测试用例(2,5,8,11),2出现了num(2)=6次,其更新过程中可能取值为{1,2}pror(1)=1/12
Figure BSA00000449626500171
Figure BSA00000449626500172
Figure BSA00000449626500173
5出现了num(5)=7次,其更新过程中可能取值为{3,4,5,6}pror(3)=1-4*2/12=1/3,pror(4)=1-4*1/12=2/3,pror(5)=1/12,pror(6)=1-4*2/12=1/3,则 prob ( 3 ) = 1 3 / ( 1 3 + 2 3 + 1 12 + 1 3 ) = 1 3 / 17 12 = 4 17 , prob ( 4 ) = 2 3 / ( 1 3 + 2 3 + 1 12 + 1 3 ) = 2 3 / 17 12 = 8 17 , prob ( 5 ) = 1 12 / ( 1 3 + 2 3 + 1 12 + 1 3 ) = 1 12 / 17 12 = 1 17 , prob ( 6 ) = 1 3 / ( 1 3 + 2 3 + 1 12 + 1 3 ) = 1 3 / 17 12 = 4 17 ; 同理可以计算prob(7)=prob(8)=prob(9)=1/3;prob(10)=prob(11)=1/2按照以上计算的各个离散值概率取值,得到的结果如下:
l4′=<(1,6,8,10),(2,3,8,11),(2,3,7,10),(1,5,7,10),(2,6,7,11),(2,4,8,10),(1,5,9,11),(2,5,8,10),(2,5,8,10),(2,3,7,11),(1,3,7,10),(2,5,9,10)>T′其T为:
  0   0   0   1   -1   0   -1   0   0   -2   0
  0   0   -2   0   2   0   -2   -3   0   -4   -2
  0   0   0   0   0   0   2   0   1   -1   -1
  0   0   0   0   0   0   1   0   1   0   0
  0   0   0   0   0   0   0   -1   -1   -3   0
  0   0   0   0   0   0   0   0   1   0   0
  0   0   0   0   0   0   0   0   0   -2   -1
  0   0   0   0   0   0   0   0   0   -3   0
  0   0   0   0   0   0   0   0   0   0   0
  0   0   0   0   0   0   0   0   0   0   0
  0   0   0   0   0   0   0   0   0   0   0
f(l4′)=UnCount(l4′)=5,粒子l4的适应值减小,其代表的测试用例集剩余没有覆盖的对数减少,覆盖的两两覆盖对增多,朝着最优的方向前进。
(10)如果当前的迭代次数t等于最大迭代次数MAX,或者当前粒子群的LGBest的UnCount达到期望的值0,则全局最优值PGBest所对应的粒子所代表的测试用例集即为测试用例集缩减的最优测试用例集,结束循环;否则,t=t+1,返回第(6)步。
经过7次迭代,粒子群的LGBest的UnCount达到期望的值0,最优位置为
l4=<(2,4,7,10),(1,6,7,10),(1,5,7,11),(2,3,7,10),(1,3,9,10),(1,6,8,10),(2,6,9,11),(1,4,9,10),(1,5,9,10),(1,4,8,10),(2,5,8,11),(2,3,8,11)>矩阵T为:
  0   0   0   -1   -1   -1   -1   1   -2   -5   0
  0   0   1   0   0   1   1   1   0   1   -2
  0   0   0   0   0   0   0   0   0   -1   0
  0   0   0   0   0   0   0   0   0   -2   0
  0   0   0   0   0   0   0   0   0   0   -1
  0   0   0   0   0   0   0   0   0   1   0
  0   0   0   0   0   0   0   0   0   -2   0
  0   0   0   0   0   0   0   0   0   -1   -1
  0   0   0   0   0   0   0   0   0   2   0
  0   0   0   0   0   0   0   0   0   0   0
  0   0   0   0   0   0   0   0   0   0   0
生成组合测试用例(12个):
Figure BSA00000449626500191
通过以上过程可以实现两两覆盖组合软件测试用例集自动生成,用基于改进离散粒子群算法的测试用例集生成方法的将上述过程执行30次,初始值每次随机产生,30次的结果都是12个测试用例,满足了约束,同时还覆盖了所有的两两覆盖,虽然生成的测试用例集的具体内容可能不一样,但个数都达到了最少,同时又处理了约束问题,所以该方法生成效果好,稳定性好,结果与初值无关。
图2给出了某一次迭代过程中,粒子群10个粒子的局部最优值的平均值的变化情况,从中可以看出,粒子群中粒子整体收敛速度较快,经过7次迭代,达到最优,结束迭代,说明该方法效果好。
图3给出了30次实验中,每次找到最优测试用例集生成方案进行的迭代次数,最少的2次迭代,最多的是20次迭代,平均值为7.336次,迭代次数较少,计算速度快。
实例分析表明,本发明提出的两两覆盖组合软件测试用例集生成方法与已有的组合测试用例集生成方法相比,本发明提供两两覆盖组合测试用例集生成方法充分利用组合测试生成离散值的特点,编码形式简单,位置更新操作简单,收敛速度快,稳定性好,计算量少,并且与初始值无关,生成的测试用例集规模整体较小,是一种有效的两两覆盖组合软件测试用例集生成方法,在组合测试中自动生成满足约束的最小的两两覆盖测试用例集有利于快速的检测系统中存在的错误,不仅可以有效减小测试用例设计的开销,而且大大的提高了测试的效率。

Claims (2)

1.一种两两覆盖组合软件测试用例集生成方法,其特征在于主要包括以下步骤:
(1)在软件测试中,测试人员根据待测软件系统SUT的需求规格说明书,确定相应的测试需求说明书,在软件测试需求说明书中可以获得影响待测软件系统SUT的各种因素和因素之间的约束限制,这些因素可以用集合F表示为F={f1,f2,…,fi,…,fn},n为影响待测软件系统的因素的个数,i为1到n中的任意一个值,其中因素fi假设经过等价类划分后包含pi个离散的值,则因素fi可能的取值可以用集合Vi表示
Figure FSA00000449626400011
其中vi1表示因素fi的第一个离散值,vi2表示因素fi的第二个离散值,
Figure FSA00000449626400012
表示因素fi的第pi个离散值,则该待测软件系统SUT因素的所有离散值共有P个
Figure FSA00000449626400013
约束限制集合可以用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个离散值
Figure FSA00000449626400014
编号为pi,依次类推,第i个因素fi的第一个离散值vi1编号为因素f1到fi-1的离散值个数之和加1,最后一个因素fn的最后一个离散值的编号为P,因此第i个因素fi的离散值的编号集合可以用集合Hi表示为
Figure FSA00000449626400015
这样我们就可以用编号来代表该待测软件系统所有的可能离散取值;
(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的元素的个数
Figure FSA00000449626400021
若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 &prime; = 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,…,
Figure FSA00000449626400032
表示以为概率随机取
Figure FSA00000449626400034
Figure FSA00000449626400036
其中n为该粒子代表的测试用例集中包含的测试用例的个数,pk为第k个因素的离散值的个数,num(hkj)粒子中第hkj个离散值出现的次数;
(9)如果当前的迭代次数t等于最大迭代次数MAX,或者当前粒子群的LGBest的UnCount达到期望的值0,则全局最优值PGBest所对应的粒子所代表的测试用例集即为两两覆盖组合软件测试用例集生成方法生成的最优测试用例集,结束循环;否则,t=t+1,返回第(5)步。
2.根据权利要求1所述的一种两两覆盖组合软件测试用例集生成方法,其特征在于:该方法可以应用于软件测试过程中的单元测试阶段,集成测试阶段,确认测试阶段,系统测试阶段,验收测试阶段。
CN201110060802.8A 2011-03-15 2011-03-15 一种两两覆盖组合软件测试用例集生成方法 Expired - Fee Related CN102135937B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110060802.8A CN102135937B (zh) 2011-03-15 2011-03-15 一种两两覆盖组合软件测试用例集生成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110060802.8A CN102135937B (zh) 2011-03-15 2011-03-15 一种两两覆盖组合软件测试用例集生成方法

Publications (2)

Publication Number Publication Date
CN102135937A true CN102135937A (zh) 2011-07-27
CN102135937B CN102135937B (zh) 2014-02-19

Family

ID=44295725

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110060802.8A Expired - Fee Related CN102135937B (zh) 2011-03-15 2011-03-15 一种两两覆盖组合软件测试用例集生成方法

Country Status (1)

Country Link
CN (1) CN102135937B (zh)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102541738A (zh) * 2011-12-28 2012-07-04 华中科技大学 加速多核cpu抗软错误测试的方法
CN103544109A (zh) * 2013-11-15 2014-01-29 大连交通大学 一种新型组合测试用例生成方法
CN105512046A (zh) * 2016-02-01 2016-04-20 北京理工大学 基于粒子群优化算法的Android自动化测试方法
CN105718368A (zh) * 2016-01-15 2016-06-29 西安邮电大学 一种软件测试数据扩增方法
CN106598849A (zh) * 2016-12-03 2017-04-26 浙江理工大学 一种基于ap‑pso算法的组合测试用例生成方法
CN106776260A (zh) * 2015-11-19 2017-05-31 北京计算机技术及应用研究所 两两组合测试用例生成的遍历搜索方法
CN106844193A (zh) * 2016-12-17 2017-06-13 福建瑞之付微电子有限公司 一种嵌入式模块交叉测试的系统化设计方法
CN107871189A (zh) * 2016-09-23 2018-04-03 国家电网公司 六氟化硫气体管理方法及系统
CN110069414A (zh) * 2019-04-25 2019-07-30 浙江吉利控股集团有限公司 回归测试方法及系统
CN110209566A (zh) * 2018-04-08 2019-09-06 腾讯科技(深圳)有限公司 一种对软件的测试方法及装置
CN110334026A (zh) * 2019-07-03 2019-10-15 浙江理工大学 基于cs-spso算法的组合测试用例生成方法
CN111124880A (zh) * 2019-11-04 2020-05-08 北京大学 基于历史数据的编译器测试输入生成方法和系统
CN112711535A (zh) * 2020-12-29 2021-04-27 哈尔滨工业大学 基于粒子群优化的约束下组合测试数据生成方法
CN113076250A (zh) * 2021-04-14 2021-07-06 南京大学 一种带约束测试模型的动态随机测试方法及装置
CN114579435A (zh) * 2022-02-23 2022-06-03 南京信息工程大学 一种软件测试用例的生成方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101436128A (zh) * 2007-11-16 2009-05-20 北京邮电大学 软件测试用例自动生成方法及系统

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101436128A (zh) * 2007-11-16 2009-05-20 北京邮电大学 软件测试用例自动生成方法及系统

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
孙家泽,王曙燕,曹小鹏: "《用于测试用例最小化问题的改进PSO 算法》", 《计算机工程》 *
宋辉: "《一种轻量级软件性能测试工具的设计与实现》", 《西安邮电学院学报》 *
张荣,于盛林: "《测试软件自动生成技术的研究》", 《电子测量技术》 *
王小银: "《软件自动化测试的研究与实现》", 《电脑知识与技术》 *

Cited By (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102541738B (zh) * 2011-12-28 2014-06-04 华中科技大学 加速多核cpu抗软错误测试的方法
CN102541738A (zh) * 2011-12-28 2012-07-04 华中科技大学 加速多核cpu抗软错误测试的方法
CN103544109A (zh) * 2013-11-15 2014-01-29 大连交通大学 一种新型组合测试用例生成方法
CN103544109B (zh) * 2013-11-15 2016-08-17 大连交通大学 一种组合测试用例生成方法
CN106776260B (zh) * 2015-11-19 2019-04-19 北京计算机技术及应用研究所 两两组合测试用例生成的遍历搜索方法
CN106776260A (zh) * 2015-11-19 2017-05-31 北京计算机技术及应用研究所 两两组合测试用例生成的遍历搜索方法
CN105718368A (zh) * 2016-01-15 2016-06-29 西安邮电大学 一种软件测试数据扩增方法
CN105512046A (zh) * 2016-02-01 2016-04-20 北京理工大学 基于粒子群优化算法的Android自动化测试方法
CN107871189A (zh) * 2016-09-23 2018-04-03 国家电网公司 六氟化硫气体管理方法及系统
CN106598849B (zh) * 2016-12-03 2019-06-04 浙江理工大学 一种基于ap-pso算法的组合测试用例生成方法
CN106598849A (zh) * 2016-12-03 2017-04-26 浙江理工大学 一种基于ap‑pso算法的组合测试用例生成方法
CN106844193A (zh) * 2016-12-17 2017-06-13 福建瑞之付微电子有限公司 一种嵌入式模块交叉测试的系统化设计方法
CN106844193B (zh) * 2016-12-17 2019-10-11 福建瑞之付微电子有限公司 一种嵌入式模块交叉测试的系统化设计方法
CN110209566B (zh) * 2018-04-08 2021-09-28 腾讯科技(深圳)有限公司 一种对软件的测试方法及装置
CN110209566A (zh) * 2018-04-08 2019-09-06 腾讯科技(深圳)有限公司 一种对软件的测试方法及装置
CN110069414A (zh) * 2019-04-25 2019-07-30 浙江吉利控股集团有限公司 回归测试方法及系统
CN110069414B (zh) * 2019-04-25 2023-05-30 浙江吉利控股集团有限公司 回归测试方法及系统
CN110334026A (zh) * 2019-07-03 2019-10-15 浙江理工大学 基于cs-spso算法的组合测试用例生成方法
CN110334026B (zh) * 2019-07-03 2023-03-24 浙江理工大学 基于cs-spso算法的组合测试用例生成方法
CN111124880A (zh) * 2019-11-04 2020-05-08 北京大学 基于历史数据的编译器测试输入生成方法和系统
CN111124880B (zh) * 2019-11-04 2021-08-17 北京大学 基于历史数据的编译器测试输入生成方法和系统
CN112711535A (zh) * 2020-12-29 2021-04-27 哈尔滨工业大学 基于粒子群优化的约束下组合测试数据生成方法
CN113076250A (zh) * 2021-04-14 2021-07-06 南京大学 一种带约束测试模型的动态随机测试方法及装置
CN113076250B (zh) * 2021-04-14 2023-08-25 南京大学 带约束测试模型的动态随机测试方法、装置、存储介质
CN114579435A (zh) * 2022-02-23 2022-06-03 南京信息工程大学 一种软件测试用例的生成方法
CN114579435B (zh) * 2022-02-23 2024-05-28 南京信息工程大学 一种软件测试用例的生成方法

Also Published As

Publication number Publication date
CN102135937B (zh) 2014-02-19

Similar Documents

Publication Publication Date Title
CN102135937B (zh) 一种两两覆盖组合软件测试用例集生成方法
CN102253889B (zh) 一种回归测试中基于分布的测试用例优先级划分方法
CN102033994B (zh) 基于马尔可夫链蒙特卡罗的舵机可靠性仿真抽样方法
Li et al. Software defect prediction based on ensemble learning
CN104715282A (zh) 一种基于改进pso-bp神经网络的数据预测方法
CN104794501B (zh) 模式识别方法及装置
CN107480694A (zh) 基于Spark平台采用两次评价的加权选择集成三支聚类方法
CN103246740B (zh) 迭代的基于用户点击的优化搜索和满意度提升方法和系统
CN116090375B (zh) 基于覆盖率数据确定目标驱动源码的系统
CN109858134B (zh) 大数据驱动的辅助多装备系统体系结构模型构建的方法
CN104317794B (zh) 基于动态项权值的中文特征词关联模式挖掘方法及其系统
CN105205052A (zh) 一种数据挖掘方法及装置
CN106775705A (zh) 一种软件模块划分方法
CN105024886A (zh) 一种基于用户元数据的快速Web服务QoS预测方法
CN105184016A (zh) 海洋工程中基于Spark的FG-CNT增强复合材料板振动控制方法
Jiang et al. Approximate backbone based multilevel algorithm for next release problem
CN116662412B (zh) 一种电网配用电大数据的数据挖掘方法
CN110222840A (zh) 一种基于注意力机制的集群资源预测方法和装置
CN115826092A (zh) 一种基于信息自注意力模型的多气象要素预测方法及系统
CN102024084A (zh) 具有模糊多态特性的可靠性模型的建立及其使用方法
Jiao et al. Expected improvement of constraint violation for expensive constrained optimization
CN112884361B (zh) 多场景的装备组合方法、系统、计算机设备和存储介质
Lu et al. Integration of simulation, learning and optimization to support engineering design
CN105022798A (zh) 一种基于预测关系的离散贝叶斯网络分类数据挖掘方法
Yang et al. Frame structural sizing and topological optimization via a parallel implementation of a modified particle Swarm algorithm

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C53 Correction of patent of invention or patent application
CB02 Change of applicant information

Address after: Changan South Road, Yanta District of Shaanxi city of Xi'an province No. 563 710061

Applicant after: Xi'an University of Posts & Telecommunications

Address before: Changan South Road, Yanta District of Shaanxi city of Xi'an province No. 563 710061

Applicant before: Xi'an Post & Telecommunication College

COR Change of bibliographic data

Free format text: CORRECT: APPLICANT; FROM: XI AN POST + TELECOMMUNICATION COLLEGE TO: XI AN UNIVERSITY OF POSTS + TELECOMMUNICATIONS

C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20140219

Termination date: 20150315

EXPY Termination of patent right or utility model