CN103577325B - 测试用例集执行顺序确定的方法及系统 - Google Patents
测试用例集执行顺序确定的方法及系统 Download PDFInfo
- Publication number
- CN103577325B CN103577325B CN201310532732.0A CN201310532732A CN103577325B CN 103577325 B CN103577325 B CN 103577325B CN 201310532732 A CN201310532732 A CN 201310532732A CN 103577325 B CN103577325 B CN 103577325B
- Authority
- CN
- China
- Prior art keywords
- test case
- optimum
- sequence
- module
- 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.)
- Expired - Fee Related
Links
Landscapes
- Tests Of Electronic Circuits (AREA)
Abstract
本发明公开了一种测试用例集执行顺序确定的方法及系统。其中该方法包括如下步骤:计算初始测试用例集中任意两条测试用例之间的单一用例切换成本;从初始测试用例集中选取所有组合可能的h条测试用例,得到所有可能的由h条测试用例构成的第一最优执行序列及第一切换成本;根据第一切换成本,及单一用例切换成本计算得到所有可能的由h+1条测试用例构成的第二最优执行序列及第二切换成本;将第二最优执行序列和第二切换成本分别作为新的第一最优执行序列和第一切换成本,使h增大1,返回上一步骤,直至第二最优执行序列包含所有测试用例;选择第二切换成本最小的第二最优执行序列作为最终最优执行序列。其可使测试中参数重配置次数最少,降低开销。
Description
技术领域
本发明涉及计算机领域,尤其涉及一种测试用例集执行顺序确定的方法及系统。
背景技术
软件测试是保证软件质量的重要步骤。给定一个测试用例集,测试人员通常需要按照某种顺序来依次执行其中包含的各条测试用例。一般情况下,这个执行顺序等同于生成各条测试用例的顺序,即按从上到下的顺序执行整个测试用例集。但是,随着软件规模和功能的不断增长,往往需要相当数量的测试用例来对软件进行测试。因此,如何在有限的测试成本(可用时间和资源)下快速有效地执行整个测试用例集,是实际测试中需要考虑的一个重要问题。
一般来说,测试成本包括每条测试用例的执行开销和相邻测试用例间的切换开销。在不同的执行顺序中,各条测试用例的执行开销一般是固定的,因此,相邻测试用例间的切换开销将主要影响整个测试用例集在不同执行顺序下的执行效率。例如,对于某些软件系统来说,在测试中对其配置进行更改需要花费巨大的人力和物力,例如对某个硬件进行替换,或者对某些模块进行重新编译。因此,在实际测试中,需要尽可能地减少这样的切换工作来降低总的测试开销。
综上所述,如何确定能够有效降低测试开销的测试用例集执行顺序是一个亟待解决的问题。
发明内容
基于此,有必要提供一种能够有效降低测试开销的测试用例集执行顺序确定的方法及系统。
为实现本发明目的提供的一种测试用例集执行顺序确定的方法,包括以下步骤:
S100,读取初始测试用例集,并计算任意两条测试用例之间的单一用例切换成本;
S200,从所述初始测试用例集中选取所有组合可能的h条测试用例,得到所有可能的由h条测试用例构成的第一最优执行序列,并计算每一所述第一最优执行序列对应的第一切换成本;
S300,根据所述第一最优执行序列及其对应的第一切换成本,以及所述单一用例切换成本计算得到所有可能的由h+1条测试用例构成的第二最优执行序列,及每一所述第二最优执行序列对应的第二切换成本;
S400,用所述第二最优执行序列和第二切换成本分别替换原第一最优执行序列和第一切换成本作为新的第一最优执行序列和第一切换成本,并使所述h增大1,返回执行步骤S300,直至所述第二最优执行序列包含所述初始测试用例集中的所有测试用例;
S500,选择所述第二切换成本最小的第二最优执行序列作为最终的最优执行序列;
其中h为正整数,且h小于所述初始测试用例集中测试用例的总数。
在其中一个实施例中,h=2。
在其中一个实施例中,步骤S300,包括以下步骤:
S310,从所述初始测试用例集T中选取h条测试用例构成部分测试用例集H;
S320,从所述初始测试用例集T中选取一条不在部分测试用例集H中的测试用例tk;
S330,从所述第一最优执行序列中选取包含所述h条测试用例的部分第一最优执行序列;
S340,构造以tk开头的包含所述部分第一最优执行序列的,由h+1条测试用例构成的部分执行序列;
S350,根据所述第一切换成本,以及所述单一用例切换成本计算所述部分执行序列的各切换成本,得到以tk开头由h+1条测试用例构成的第二最优执行序列<tk,H>,及所述<tk,H>对应的第二切换成本;
S360,若所述初始测试用例集T中还存在一条测试用例tk∈T-H未被选择,则转步骤S320继续执行;否则,转步骤S370;
S370,若所述初始测试用例集T中还存在未选择过的h条测试用例,则转步骤S310继续执行;否则,得到所有可能的由h+1条测试用例构成的第二最优执行序列,及每一所述第二最优执行序列对应的第二切换成本。
在其中一个实施例中,步骤S330包括步骤S331,对部分测试用例集H中的每条测试用例tp,从所述第一最优执行序列中选取以tp开头的由h条测试用例构成的第一最优执行序列;
步骤S350包括步骤S351,当某两个所述部分执行序列的切换成本相同,且在所有所述部分执行序列中切换成本最小时,选取其中任意一个所述部分执行序列作为以tk开头由h+1条测试用例构成的第二最优执行序列<tk,H>。
在其中一个实施例中,步骤S100,包括以下步骤:
S110,读取初始测试用例集;
S120,根据所述初始测试用例集中各参数取值的难度,分别赋予各参数切换的权重;
S130,根据所述各参数切换的权重,计算任意两条测试用例之间的单一用例切换成本。
基于同一发明构思的一种测试用例集执行顺序确定的系统,包括读取模块,第一执行模块,第二执行模块,设置模块,以及确定模块,其中:
所述读取模块,用于读取初始测试用例集,并计算任意两条测试用例之间的单一用例切换成本;
所述第一执行模块,用于从所述初始测试用例集中选取所有组合可能的h条测试用例,得到所有可能的由h条测试用例构成的第一最优执行序列,并计算每一所述第一最优执行序列对应的第一切换成本;
所述第二执行模块,用于根据所述第一最优执行序列及其对应的第一切换成本,以及所述单一用例切换成本计算得到所有可能的由h+1条测试用例构成的第二最优执行序列,及每一所述第二最优执行序列对应的第二切换成本;
所述设置模块,用于用所述第二最优执行序列和第二切换成本分别替换原所述第一最优执行序列和第一切换成本作为新的第一最优执行序列和第一切换成本,并使所述h增大1,返回第二执行模块继续操作,直至所述第二最优执行序列包含所述初始测试用例集中的所有测试用例;
所述确定模块,用于选择所述第二切换成本最小的第二最优执行序列作为最终的最优执行序列;
其中h为正整数,且h小于所述初始测试用例集中测试用例的总数。
在其中一个实施例中,h=2。
在其中一个实施例中,所述第二执行模块,包括第一执行子模块,第二执行子模块,第三执行子模块,第四执行子模块,第五执行子模块,第六执行子模块,以及第七执行子模块,其中:
所述第一执行子模块,用于从所述初始测试用例集T中选取h条测试用例构成部分测试用例集H;
所述第二执行子模块,用于从所述初始测试用例集T中选取一条不在部分测试用例集H中的测试用例tk;
所述第三执行子模块,用于从所述第一最优执行序列中选取包含所述h条测试用例的部分第一最优执行序列;
所述第四执行子模块,用于构造以tk开头的包含所述部分第一最优执行序列的,由h+1条测试用例构成的部分执行序列;
所述第五执行子模块,用于根据所述第一切换成本,以及所述单一用例切换成本计算所述部分执行序列的各切换成本,得到以tk开头由h+1条测试用例构成的第二最优执行序列<tk,H>,及所述<tk,H>对应的第二切换成本;
所述第六执行子模块,用于当所述初始测试用例集T中还存在一条测试用例tk∈T-H未被选择,则转第二执行子模块继续执行;否则,转第六执行子模块;
所述第七执行子模块,用于在所述初始测试用例集T中还存在未选择过的h条测试用例时,转所述第一执行子模块继续执行;否则,得到所有可能的由h+1条测试用例构成的第二最优执行序列,及每一所述第二最优执行序列对应的第二切换成本。
在其中一个实施例中,所述第三执行子模块,还包括第一执行单元,用于对部分测试用例集H中的每条测试用例tp,从所述第一最优执行序列中选取以tp开头的由h条测试用例构成的第一最优执行序列;
所述第五执行子模块,还包括第二执行单元,用于当某两个所述部分执行序列的切换成本相同,且在所有所述部分执行序列中切换成本最小时,选取其中任意一个所述部分执行序列作为以tk开头由h+1条测试用例构成的第二最优执行序列<tk,H>。
在其中一个实施例中,所述读取模块,还包括读取子模块,权重分配子模块,以及切换成本计算子模块,其中:
所述读取子模块,用于读取初始测试用例集;
所述权重分配子模块,用于根据所述初始测试用例集中各参数取值的难度,分别赋予各参数切换的权重;
所述切换成本计算子模块,用于根据所述各参数切换的权重,计算任意两条测试用例之间的单一用例切换成本。
本发明的有益效果包括:
本发明提供的一种测试用例集执行顺序确定的方法及系统,通过逐层确定最优执行序列的方式,最终得到包含测试用例集中所有测试用例的最优执行序列。所得到测试用例执行顺序可以使整个测试中的参数重配置次数最小,具有最小的测试切换成本,即实际测试中切换开销最小。大大降低了测试开销,节省人力物力资源。
附图说明
图1为本发明一种测试用例集执行顺序确定的方法的一具体实施例的流程图;
图2为本发明一种测试用例集执行顺序确定的系统的一具体实施例的系统结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图对本发明实施例的测试用例集执行顺序确定的方法及系统的具体实施方式进行说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例的测试用例集执行顺序确定的方法,如图1所示,包括以下步骤:
S100,读取初始测试用例集,并计算任意两条测试用例之间的单一用例切换成本。
此处需要说明的是,所述测试用例集举例说明为:假设一个待测系统受n个参数的影响,而每个参数i有li个不同的离散取值,这些取值构成一个集合Li。一个n-元组t=(x1,x2,…,xn)即称为一条测试用例,其中xi∈Li(1≤i≤n),而一系列测试用例的集合即构成一个测试用例集T={t1,t2,…,tn}。测试用例集中不同的测试用例之间部分或者全部参数的取值可能不同,因此在不同测试用例之间进行切换时,需要改变参数的取值,也由此产生切换成本,也即切换开销。计算所读取的测试用例集中任意两条测试用例之间进行参数取值改变时所用的成本,构成单一用例切换成本,以便在后续操作中使用。
S200,从所述初始测试用例集中选取所有组合可能的h条测试用例,得到所有可能的由h条测试用例构成的第一最优执行序列,并计算每一所述第一最优执行序列对应的第一切换成本。
此处需要说明的是:h为正整数,且h小于所述初始测试用例集中测试用例的总数。所述最优执行序列是指对从所述初始测试用例集中选取所有组合可能的h条测试用例,构成部分测试用例集H,对部分测试用例集H中的每条测试用例tp,以tp开头的所有可能的由h条测试用例构成的执行序列中切换成本最小的执行序列,也即<tp,H-{tp}>min=<tp,tx1,…>,<tp,tx1,…>为由h条测试用例构成的一个最优执行序列。
在其中一个实施例中,h=2,因此,任意有序的两条测试用例都为最优执行序列。初始测试用例集中所有两条测试用例构成的执行序列构成第一最优执行序列集,每一个两条测试用例构成的执行序列作为一个第一最优执行序列。
S300,根据所述第一最优执行序列及其对应的第一切换成本,以及所述单一用例切换成本计算得到所有可能的由h+1条测试用例构成的第二最优执行序列,及每一所述第二最优执行序列对应的第二切换成本。
由上述最优执行序列的解释,在第一最优执行序列的基础上,构建由h+1条测试用例构成的最优执行序列,并计算相应的最优执行序列的切换成本。
S400,用所述第二最优执行序列和第二切换成本分别替换原所述第一最优执行序列和第一切换成本作为新的第一最优执行序列和第一切换成本,并使所述h增大1,返回执行步骤S300,直至所述第二最优执行序列包含所述初始测试用例集中的所有测试用例。
h值每增大1,执行一次步骤S300,使最优执行序列中包含的测试用例的数量不断增加,直至得到包含所述初始测试用例集中所有测试用例的最优执行序列。
此处需要说明的是,也可将h值与初始测试用例集中测试用例的条数进行比较,当h值与初始测试用例集中测试用例条数相等时,则停止循环。此时所述第二最优执行序列包含所述初始测试用例集中的所有测试用例。
S500,选择所述第二切换成本最小的第二最优执行序列作为最终的最优执行序列。
此处需要说明的是,得到包含初始测试用例集中所有测试用例的第二最优执行序列的个数与测试用例集中包含的测试用例的数目相同。此时选取第二最优执行序列中切换成本最小的作为最终的,用于实际测试的执行序列。
本发明实施例的测试用例集执行顺序确定的方法,通过逐层确定最优执行序列的方式,最终得到包含测试用例集中所有测试用例的最优执行序列。所得到测试用例执行顺序可以使整个测试中的参数重配置次数最小,具有最小的测试切换成本,即实际测试中切换开销最小。大大降低了测试开销,节省人力物力资源。
在其中一个实施例中,步骤S300,还包括以下步骤:
S310,从所述初始测试用例集T中选取h条测试用例构成部分测试用例集H。
此处分批对测试用例集中的测试用例进行选取与处理,处理程序简便,清晰,避免漏掉最优执行序列。
S320,从所述初始测试用例集T中选取一条不在部分测试用例集H中的测试用例tk。
S330,从所述第一最优执行序列中选取包含所述h条测试用例的部分第一最优执行序列。
在步骤S200中已经构成的第一最优执行序列,从中选取包含h条测试用例的h个第一最优执行序列,以便后续与测试用例tk构成含有h+1条测试用例的执行序列。
S340,构造以tk开头的包含所述部分第一最优执行序列的,由h+1条测试用例构成的部分执行序列。
对于从所述部分第一最优执行序列中选取的每一最优执行序列与tk共同构成新的执行序列,且新的执行序列均以tk开头。
S350,根据所述第一切换成本,以及所述单一用例切换成本计算所述部分执行序列的各切换成本,得到以tk开头由h+1条测试用例构成的第二最优执行序列<tk,H>,及所述<tk,H>对应的第二切换成本。
在步骤S200中已经得到各第一最优执行序列的切换成本,且在步骤S100中已经得到任意两个测试用例之间的切换成本,则根据上述切换成本计算可得到以tk开头由h+1条测试用例构成的部分执行序列的切换成本。选择切换成本最小的执行序列作为第二最优执行序列。
S360,若所述初始测试用例集T中还存在一条测试用例tk∈T-H未被选择,则转步骤S320继续执行;否则,转步骤S370。
例如,若测试用例集中除去h条测试用例之后还有1条测试用例,则步骤S320~S360执行1次之后进入步骤S370;若除去h条测试用例之后还有2条测试用例,则步骤S320~S360执行2次之后进入步骤S370,……,依次执行,完成之后执行步骤S370。
S370,若所述初始测试用例集T中还存在未选择过的h条测试用例,则转步骤S310继续执行;否则,得到所有可能的由h+1条测试用例构成的第二最优执行序列,及每一所述第二最优执行序列对应的第二切换成本。
本实施例中,测试集执行顺序确定的处理程序简便清晰,可有效避免漏掉最优执行序列。
在其他实施例中,步骤S320和步骤S310可运用同一理解方式颠倒进行。可先选取测试用例集中的任一测试用例作为h+1条执行序列的开头,再在剩余的测试用例中选取h个测试用例,并从第一最优执行序列选取对应的最优执行序列构成h+1条部分执行序列。其他步骤可按步骤S330~步骤S370处理。其中,S360中判断是否存在未选择过的h个测试用例,S370中判断测试用例集中是否还存在未选择过的测试用例。
在其中一个实施例中,步骤S330,包括以下步骤:
S331,对部分测试用例集H中的每条测试用例tp,从所述第一最优执行序列中选取以tp开头的由h条测试用例构成的第一最优执行序列。
在其中一个实施例中,步骤S100,包括以下步骤;
S110,读取初始测试用例集。
S120,根据所述初始测试用例集中各参数取值的难度,分别赋予各参数切换的权重。
所述参数的权重值表示切换该参数取值的难易程度的一个大于0的数值。
S130,根据所述各参数切换的权重,计算任意两条测试用例之间的单一用例切换成本。
测试用例间的切换成本用di,j表示,为两条测试用例ti和tj的所有参数间对应取值不同的参数的权重值之和。例如,假设t1=(1,2,1,3)和t2=(1,3,2,3),并假设各参数的切换权重值用w表示,(w1,w2,w3,w4)分别为(1,3,1,2),由于t1和t2间第2个参数和第3个参数的对应取值不同,因此这条两测试用例间的切换成本为d1,2=w2+w3=3+1=4。
在其中一个实施例中,所述步骤S350,包括以下步骤:
S351,当某两个所述部分执行序列的切换成本相同,且在所有所述部分执行序列中切换成本最小时,选取其中任意一个所述部分执行序列作为以tk开头由h+1条测试用例构成的第二最优执行序列<tk,H>。
为了更好的说明本的实施例,下面举一具体实例进行说明:
假设一个待测系统受4个不同参数的影响,分别记为p1,p2,p3,p4,其中每个参数均有2个不同的合法取值,分别记为0和1,表1给出了该待测系统的一个包含4条测试用例的初始测试用例集。
表1初始测试用例集T
p1 | p2 | p3 | p4 | |
t1 | 0 | 0 | 0 | 0 |
t2 | 1 | 1 | 1 | 1 |
t3 | 0 | 1 | 0 | 0 |
t4 | 0 | 0 | 1 | 1 |
例如,该待测系统可能为某个手机应用程序,而不同的参数代表了该应用程序在不同使用情形下的具体配置。参数p1在这里可能代表手机系统,其合法取值0和1可分别代表“iOS”和“Android”。此时,若按表1中的初始测试用例集的从上到下的顺序进行测试,执行完测试用例t1后,由于测试用例t1和t2间每个参数的对应取值都不同,因此就需要花费一定的切换成本来重新搭建测试场景,测试开销大。下面确定表1的初始测试用例集T={t1,t2,t3,t4}对应的最优执行顺序。
如步骤S120,分别赋予各参数切换的权重。这里假设所有参数取值的切换需要时同等的开销,故各参数的切换的权重均设置为1。
如步骤S130,计算任意两条测试用例间的切换成本。表2给出了相关结果。
表2任意两条测试用例间的切换成本di,j
t1 | t2 | t3 | t4 | |
t1 | 0 | 4 | 1 | 2 |
t2 | 4 | 0 | 3 | 2 |
t3 | 1 | 3 | 0 | 3 |
t4 | 2 | 2 | 3 | 0 |
如步骤S200,计算所有可能的由h条测试用例构成的第一最优执行序列及其对应的第一切换成本,此时设置h=2,因此任意有序的两条测试用例都为最优执行序列。即对初始测试用例集T中的每条测试用例ta,以及每一条不同于ta的测试用例tb,构造最优执行序列<ta,{tb}>min=<ta,tb>,得到所有可能的由2条测试用例构成的第一最优执行序列及其对应的第一切换成本,如下所示:
如步骤S310,从初始测试用例集T中选取2条测试用例构成所有可能的部分测试用例集H,如下所示:
{t1,t2}{t1,t3}{t1,t4}{t2,t3}{t2,t4}{t3,t4}
对于部分测试用例集H={t1,t2},如步骤S320,从初始测试用例集T中选取所有不在该部分测试用例集H中的测试用例tk,如下所示:
t3t4
对于tk=t3,如步骤S331,对部分测试用例集H={t1,t2}中的每条测试用例tp=t1或t2,以其开头的所有可能的由2条测试用例构成的第一最优执行序列<tp,{t1,t2}-{tp}>min分别为:
<t1,{t2}>min=<t1,t2>,Cost=4<t2,{t1}>min=<t2,t1>,Cost=4
如步骤S340,构造以t3开头的所有可能的由3条测试用例构成的部分执行序列分别为:
<t3,t1,t2>,Cost=d3,1+Cost(<t1,t2>min)=1+4=5
<t3,t2,t1>,Cost=d3,2+Cost(<t2,t1>min)=3+4=7
如S350,得到以t3开头的由3条测试用例构成的第二最优执行序列<t3,{t1,t2}>min为上述两个执行序列中具有最小切换成本的那一个,即:
<t3,{t1,t2}>min=<t3,t1,t2>,Cost=5
如步骤S360、S370重复上述步骤,可得到所有可能的由3条测试用例构成的第二最优执行序列,如下所示:
如步骤S400,用第二最优执行序列和第二切换成本分别替换原第一最优执行序列和第一切换成本作为新的第一最优执行序列和第一切换成本,且h=h+1=3;此时h小于所述初始测试用例集中包含的测试用例个数,转步骤S300继续执行;
再次类似地,如S310,此时h=3,从初始测试用例集T中选取3条测试用例构成所有可能的部分测试用例集H,如下所示:
{t1,t2,t3}{t1,t2,t4}{t1,t3,t4}{t2,t3,t4}
对于部分测试用例集H={t1,t2,t3},如步骤S320,从初始测试用例集T中选取所有不在该部分测试用例集H中的测试用例tk,如下所示:
t4
对于tk=t4,如步骤S331,对部分测试用例集H={t1,t2,t3}中的每条测试用例tp=t1,t2或t3,以其开头的所有可能的由3条测试用例构成的第一最优执行序列<tp,{t1,t2,t3}-{tp}>min分别为:
<t1,{t2,t3}>min=<t1,t3,t2>,Cost=4<t2,{t1,t3}>min=<t2,t3,t1>,Cost=4
<t3,{t1,t2}>min=<t3,t1,t2>,Cost=5
如步骤S340,构造以t4开头的所有可能的由4条测试用例构成的部分执行序列分别为:
<t4,t1,t3,t2>,Cost=d4,1+Cost(<t1,{t2,t3}>min)=2+4=6
<t4,t2,t3,t1>,Cost=d4,2+Cost(<t2,{t1,t3}>min)=2+4=6
<t4,t3,t1,t2>,Cost=d4,3+Cost(<t3,{t1,t2}>min)=3+5=8
因此,如步骤S351,得到以t4开头的由4条测试用例构成的第二最优执行序列<t4,{t1,t2,t3}>min为上述三个执行序列中具有最小切换成本的那一个。此时有两个执行序列满足,假设选取第一个,即:
<t4,{t1,t2,t3}>min=<t4,t1,t3,t2>,Cost=6
重复上述步骤,可得到所有可能的由4条测试用例构成的第二最优执行序列,如下所示:
<t4,{t1,t2,t3}>min=<t4,t1,t3,t2>,Cost=6
<t3,{t1,t2,t4}>min=<t3,t1,t4,t2>,Cost=5
<t2,{t1,t3,t4}>min=<t2,t4,t1,t3>,Cost=5
<t1,{t2,t3,t4}>min=<t1,t3,t2,t4>,Cost=6
如步骤S400,h=h+1=4;此时h=4,如步骤S500,可得到最终执行序列为所有可能的第二最优执行序列<tk,{t1,t2,t3,t4}-{tk}>min(tk∈T)中具有最小切换成本的那一个,即得到最终执行序列为:
<t3,{t1,t2,t4}>min=<t3,t1,t4,t2>,Cost=5
或者
<t2,{t1,t3,t4}>min=<t2,t4,t1,t3>,Cost=5
最终,依据<t3,t1,t4,t2>或者<t2,t4,t1,t3>来执行初始测试用例集T={t1,t2,t3,t4},可具有最小的总切换成本,且该最小切换成本为5。
本实施例中若按初始测试用例集中的测试例顺序执行,其切换成本Cost=4+3+3=7。经执行顺序确定后,切换成本为5,可有效降低实际测试中的测试成本。
基于同一发明构思,本发明实施例提供一种测试用例集执行顺序确定的系统,由于此系统解决问题的原理与前述一种测试用例集执行顺序确定的方法相似,因此,该系统的实施可以按照前述方法的具体步骤实现,重复之处不再赘述。
本发明实施例的一种测试用例集执行顺序确定的系统,如图2所示,包括读取模块100,第一执行模块200,第二执行模块300,设置模块400,以及确定模块500。
所述读取模块100,用于读取初始测试用例集,并计算任意两条测试用例之间的单一用例切换成本。
所述第一执行模块200,用于从所述初始测试用例集中选取所有组合可能的h条测试用例,得到所有可能的由h条测试用例构成的第一最优执行序列,并计算每一所述第一最优执行序列对应的第一切换成本。其中h为正整数,且h小于所述初始测试用例集中测试用例的总数。
所述第二执行模块300,用于根据所述第一最优执行序列及其对应的第一切换成本,以及所述单一用例切换成本计算得到所有可能的由h+1条测试用例构成的第二最优执行序列,及每一所述第二最优执行序列对应的第二切换成本。
所述设置模块400,用于用所述第二最优执行序列和第二切换成本替换原所述第一最优执行序列和第一切换成本作为新的第一最优执行序列和第一切换成本,并使所述h增大1,返回第二执行模块继续操作,直至所述第二最优执行序列包含所述初始测试用例集中的所有测试用例。
所述确定模块500,用于选择所述第二切换成本最小的第二最优执行序列作为最终的最优执行序列。
本发明实施例的测试用例集执行顺序确定的系统,通过逐层确定最优执行序列的方式,最终得到包含测试用例集中所有测试用例的最优执行序列。所得到测试用例执行顺序具有最小的测试切换成本,即实际测试中切换开销最小。大大降低了总的测试开销,节省人力物力资源。
在其中一个实施例中,h=2。
在其中一个实施例中,所述第二执行模块300,包括第一执行子模块310,第二执行子模块320,第三执行子模块330,第四执行子模块340,第五执行子模块350,第六执行子模块360,以及第七执行子模块370。所述第一执行子模块310,用于从所述初始测试用例集T中选取h条测试用例构成部分测试用例集H;所述第二执行子模块320,用于从所述初始测试用例集T中选取一条不在部分测试用例集H中的测试用例tk;所述第三执行子模块330,用于从所述第一最优执行序列中选取包含所述h条测试用例的部分第一最优执行序列;所述第四执行子模块340,用于构造以tk开头的包含所述部分第一最优执行序列的,由h+1条测试用例构成的部分执行序列;所述第五执行子模块350,用于根据所述第一切换成本,以及所述单一用例切换成本计算所述部分执行序列的各切换成本,得到以tk开头由h+1条测试用例构成的第二最优执行序列<tk,H>,及所述<tk,H>对应的第二切换成本;所述第六执行子模块360,用于当所述初始测试用例集T中还存在一条测试用例tk∈T-H未被选择,则转第二执行子模块继续执行;否则,转第六执行子模块;所述第七执行子模块370,用于在所述初始测试用例集T中还存在未选择过的h条测试用例时,转所述第一执行子模块继续执行;否则,得到所有可能的由h+1条测试用例构成的第二最优执行序列,及每一所述第二最优执行序列对应的第二切换成本。
在其中一个实施例中,所述第三执行子模块330,还包括第一执行单元331,用于对部分测试用例集H中的每条测试用例tp,从所述第一最优执行序列中选取以tp开头的由h条测试用例构成的第一最优执行序列。
在其中一个实施例中,所述读取模块100,还包括读取子模块110,权重分配子模块120,以及切换成本计算子模块130。所述读取子模块110,用于读取初始测试用例集;所述权重分配子模块120,用于根据所述初始测试用例集中各参数取值的难度,分别赋予各参数切换的权重;所述切换成本计算子模块130,用于根据所述各参数切换的权重,计算任意两条测试用例之间的单一用例切换成本。
在其中一个实施例中,所述第五执行子模块350,还包括第二执行单元351,用于当某两个所述部分执行序列的切换成本相同,且在所有所述部分执行序列中切换成本最小时,选取其中任意一个所述部分执行序列作为以tk开头由h+1条测试用例构成的第二最优执行序列<tk,H>。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种测试用例集执行顺序确定的方法,其特征在于,包括以下步骤:
S100,读取初始测试用例集,并计算任意两条测试用例之间的单一用例切换成本;
S200,从所述初始测试用例集中选取所有组合可能的h条测试用例,得到所有可能的由h条测试用例构成的第一最优执行序列,并计算每一所述第一最优执行序列对应的第一切换成本;
S300,根据所述第一最优执行序列及其对应的第一切换成本,以及所述单一用例切换成本计算得到所有可能的由h+1条测试用例构成的第二最优执行序列,及每一所述第二最优执行序列对应的第二切换成本;
S400,用所述第二最优执行序列和第二切换成本分别替换原第一最优执行序列和第一切换成本作为新的第一最优执行序列和第一切换成本,并使所述h增大1,返回执行步骤S300,直至所述第二最优执行序列包含所述初始测试用例集中的所有测试用例;
S500,选择所述第二切换成本最小的第二最优执行序列作为最终的最优执行序列;
最优执行序列是指对从所述初始测试用例集中选取所有组合可能的r条测试用例,构成部分测试用例集H,对部分测试用例集H中的每条测试用例tp,以tp开头的所有可能的由r条测试用例构成的执行序列中切换成本最小的执行序列;
其中,h和r均为正整数,且h和r均小于所述初始测试用例集中测试用例的总数。
2.根据权利要求1所述的测试用例集执行顺序确定的方法,其特征在于,h=2。
3.根据权利要求1或2所述的测试用例集执行顺序确定的方法,其特征在于,步骤S300,包括以下步骤:
S310,从所述初始测试用例集T中选取h条测试用例构成部分测试用例集H;
S320,从所述初始测试用例集T中选取一条不在部分测试用例集H中的测试用例tk;
S330,从所述第一最优执行序列中选取包含所述h条测试用例的部分第一最优执行序列;
S340,构造以tk开头的包含所述部分第一最优执行序列的,由h+1条测试用例构成的部分执行序列;
S350,根据所述第一切换成本,以及所述单一用例切换成本计算所述部分执行序列的各切换成本,得到以tk开头由h+1条测试用例构成的第二最优执行序列<tk,H>,及所述<tk,H>对应的第二切换成本;
S360,若所述初始测试用例集T中还存在一条测试用例tk∈T-H未被选择,则转步骤S320继续执行;否则,转步骤S370;
S370,若所述初始测试用例集T中还存在未选择过的h条测试用例,则转步骤S310继续执行;否则,得到所有可能的由h+1条测试用例构成的第二最优执行序列,及每一所述第二最优执行序列对应的第二切换成本。
4.根据权利要求3所述的测试用例集执行顺序确定的方法,其特征在于,
步骤S330包括步骤S331,对部分测试用例集H中的每条测试用例tp,从所述第一最优执行序列中选取以tp开头的由h条测试用例构成的第一最优执行序列;
步骤S350包括步骤S351,当某两个所述部分执行序列的切换成本相同,且在所有所述部分执行序列中切换成本最小时,选取其中任意一个所述部分执行序列作为以tk开头由h+1条测试用例构成的第二最优执行序列<tk,H>。
5.根据权利要求1所述的测试用例集执行顺序确定的方法,其特征在于,步骤S100,包括以下步骤:
S110,读取初始测试用例集;
S120,根据所述初始测试用例集中各参数取值的难度,分别赋予各参数切换的权重;
S130,根据所述各参数切换的权重,计算任意两条测试用例之间的单一用例切换成本。
6.一种测试用例集执行顺序确定的系统,其特征在于,包括读取模块,第一执行模块,第二执行模块,设置模块,以及确定模块,其中:
所述读取模块,用于读取初始测试用例集,并计算任意两条测试用例之间的单一用例切换成本;
所述第一执行模块,用于从所述初始测试用例集中选取所有组合可能的h条测试用例,得到所有可能的由h条测试用例构成的第一最优执行序列,并计算每一所述第一最优执行序列对应的第一切换成本;
所述第二执行模块,用于根据所述第一最优执行序列及其对应的第一切换成本,以及所述单一用例切换成本计算得到所有可能的由h+1条测试用例构成的第二最优执行序列,及每一所述第二最优执行序列对应的第二切换成本;
所述设置模块,用于用所述第二最优执行序列和第二切换成本分别替换原所述第一最优执行序列和第一切换成本作为新的第一最优执行序列和第一切换成本,并使所述h增大1,返回第二执行模块继续操作,直至所述第二最优执行序列包含所述初始测试用例集中的所有测试用例;
所述确定模块,用于选择所述第二切换成本最小的第二最优执行序列作为最终的最优执行序列;
最优执行序列是指对从所述初始测试用例集中选取所有组合可能的r条测试用例,构成部分测试用例集H,对部分测试用例集H中的每条测试用例tp,以tp开头的所有可能的由r条测试用例构成的执行序列中切换成本最小的执行序列;其中,h和r均为正整数,且h和r均小于所述初始测试用例集中测试用例的总数。
7.根据权利要求6所述的测试用例集执行顺序确定的系统,其特征在于,h=2。
8.根据权利要求6或7所述的测试用例集执行顺序确定的系统,其特征在于,所述第二执行模块,包括第一执行子模块,第二执行子模块,第三执行子模块,第四执行子模块,第五执行子模块,第六执行子模块,以及第七执行子模块,其中:
所述第一执行子模块,用于从所述初始测试用例集T中选取h条测试用例构成部分测试用例集H;
所述第二执行子模块,用于从所述初始测试用例集T中选取一条不在部分测试用例集H中的测试用例tk;
所述第三执行子模块,用于从所述第一最优执行序列中选取包含所述h条测试用例的部分第一最优执行序列;
所述第四执行子模块,用于构造以tk开头的包含所述部分第一最优执行序列的,由h+1条测试用例构成的部分执行序列;
所述第五执行子模块,用于根据所述第一切换成本,以及所述单一用例切换成本计算所述部分执行序列的各切换成本,得到以tk开头由h+1条测试用例构成的第二最优执行序列<tk,H>,及所述<tk,H>对应的第二切换成本;
所述第六执行子模块,用于当所述初始测试用例集T中还存在一条测试用例tk∈T-H未被选择,则转第二执行子模块继续执行;否则,转第六执行子模块;
所述第七执行子模块,用于在所述初始测试用例集T中还存在未选择过的h条测试用例时,转所述第一执行子模块继续执行;否则,得到所有可能的由h+1条测试用例构成的第二最优执行序列,及每一所述第二最优执行序列对应的第二切换成本。
9.根据权利要求8所述的测试用例集执行顺序确定的系统,其特征在于,
所述第三执行子模块,还包括第一执行单元,用于对部分测试用例集H中的每条测试用例tp,从所述第一最优执行序列中选取以tp开头的由h条测试用例构成的第一最优执行序列;
所述第五执行子模块,还包括第二执行单元,用于当某两个所述部分执行序列的切换成本相同,且在所有所述部分执行序列中切换成本最小时,选取其中任意一个所述部分执行序列作为以tk开头由h+1条测试用例构成的第二最优执行序列<tk,H>。
10.根据权利要求6所述的测试用例集执行顺序确定的系统,其特征在于,所述读取模块,还包括读取子模块,权重分配子模块,以及切换成本计算子模块,其中:
所述读取子模块,用于读取初始测试用例集;
所述权重分配子模块,用于根据所述初始测试用例集中各参数取值的难度,分别赋予各参数切换的权重;
所述切换成本计算子模块,用于根据所述各参数切换的权重,计算任意两条测试用例之间的单一用例切换成本。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310532732.0A CN103577325B (zh) | 2013-10-31 | 2013-10-31 | 测试用例集执行顺序确定的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310532732.0A CN103577325B (zh) | 2013-10-31 | 2013-10-31 | 测试用例集执行顺序确定的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103577325A CN103577325A (zh) | 2014-02-12 |
CN103577325B true CN103577325B (zh) | 2016-01-06 |
Family
ID=50049149
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310532732.0A Expired - Fee Related CN103577325B (zh) | 2013-10-31 | 2013-10-31 | 测试用例集执行顺序确定的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103577325B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106033386A (zh) * | 2015-03-10 | 2016-10-19 | 联想(北京)有限公司 | 软件测试方法以及电子设备 |
CN106095692B (zh) * | 2016-08-12 | 2018-07-03 | 哈尔滨工业大学 | 嵌入式软件的单参数事件序列测试数据生成方法 |
CN111159007B (zh) * | 2018-11-08 | 2023-04-07 | 比亚迪汽车工业有限公司 | 测试序列生成方法及装置 |
CN115809202A (zh) * | 2023-01-04 | 2023-03-17 | 南京邮电大学 | 一种面向参数值切换的测试用例优先级排序方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102880545A (zh) * | 2012-08-30 | 2013-01-16 | 中国人民解放军63928部队 | 一种测试用例优先级排序动态调整方法 |
-
2013
- 2013-10-31 CN CN201310532732.0A patent/CN103577325B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102880545A (zh) * | 2012-08-30 | 2013-01-16 | 中国人民解放军63928部队 | 一种测试用例优先级排序动态调整方法 |
Non-Patent Citations (4)
Title |
---|
guration Change Cost.《The Second International Conference on Secure System Integration and Reliability Improvement》.2008, * |
Shin Kimoto,Tatsuhiro Tsuchiya,Tohru Kikuno.Pairwise Testing in the Presence of Confi * |
基于需求的测试用例优先级排序;杨广华等;《计算机工程与设计》;20110816;第32卷(第8期);全文 * |
相邻因素组合测试用例集的最优生成方法;王子元等;《计算机学报》;20070228;第30卷(第2期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN103577325A (zh) | 2014-02-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103577325B (zh) | 测试用例集执行顺序确定的方法及系统 | |
Li et al. | Solving the large-scale hybrid flow shop scheduling problem with limited buffers by a hybrid artificial bee colony algorithm | |
CN110084378A (zh) | 一种基于本地学习策略的分布式机器学习方法 | |
US11252077B2 (en) | Network service transmission method and system | |
CN103679388A (zh) | 生产调度方法及生产调度系统 | |
CN108681789A (zh) | 一种云制造服务优化方法 | |
Xu et al. | Differential evolution algorithm for hybrid flow-shop scheduling problems | |
CN110389822A (zh) | 执行任务的节点调度方法、装置和服务器 | |
CN108228536A (zh) | 使用FPGA实现Hermitian矩阵分解的方法 | |
CN106445850A (zh) | 一种智能硬件的连接方法及装置 | |
CN110046638A (zh) | 多平台间数据的融合方法、装置及设备 | |
CN104331883B (zh) | 一种基于非对称逆布局模型的图像边界提取方法 | |
CN108418211B (zh) | 一种基于Dijlstra算法和遗传算法的供电路径优化方法 | |
CN109840558A (zh) | 基于密度峰值-核心融合的自适应聚类方法 | |
CN104951442B (zh) | 一种确定结果向量的方法和装置 | |
CN101216890B (zh) | 一种彩色图像分割方法 | |
CN106844605B (zh) | 批量数据逻辑处理方法及装置 | |
CN103559692B (zh) | 处理图像的方法与装置 | |
CN105893145B (zh) | 一种基于遗传算法的任务调度方法及装置 | |
CN104618715A (zh) | 一种获取最小率失真代价的方法及装置 | |
Xiu et al. | Research on a multi-objective constrained optimization evolutionary algorithm | |
CN113505560A (zh) | 一种fpga布线拥塞预测方法及系统 | |
Eraghi et al. | Cellular learning automata-based graph coloring problem | |
CN109712216A (zh) | 图表渲染方法、装置、可读存储介质及电子设备 | |
CN105094790B (zh) | 一种基于标准化结构体的应用程序的运行方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
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: 20160106 Termination date: 20161031 |
|
CF01 | Termination of patent right due to non-payment of annual fee |