一种基于查错率的测试用例选择方法

文档序号:9288377阅读:384来源:国知局
一种基于查错率的测试用例选择方法
【技术领域】
[0001]本发明涉及一种基于查错率的测试用例选择方法,属于测试用例选择领域。
【背景技术】
[0002]测试用例是对软件运行过程中所有可能存在的目标、运动、行动、环境和结果的描述,是对客观世界的一种抽象。测试用例体现了一定的测试方案、方法、技术和策略。由于运行和维护这些测试用例以及回归测试将耗费大量的时间、人力和物力,所以测试用例数量越大,所需要花费的代价就越大。因此人们一直在研究如何设计出一组有效、数量少又能充分满足所有测试需求的测试用例集,从而在保证和提高软件测试质量的同时,降低软件测试的成本。
[0003]随着软件开发过程的不断迭代,测试用例集规模越来越大,导致存在大量冗余测试用例。冗余测试用例的执行、管理和高维护成本将浪费大量资源,但测试资源往往有限,因此需要进行测试用例选择,测试用例选择是过去20年面向演化软件测试的研究热点之一,其目的是使用尽可能少的测试用例,从而提高测试效率、降低测试成本。
[0004]根据不同的选择目标,测试用例选择分为3类:回归测试选择、测试用例集约简和测试用例优先排序。回归测试选择通过分析软件修改影响选择较小规模的测试用例集,以达到较好的性价比。测试用例集约简根据测试目标中的每个测试需求确定出相应的测试用例,然后采用贪心算法、一些启发式算法或整数规划等方法来进行精简,去掉一些冗余的测试用例。测试用例优先排序通过设定特定排序准则,对测试用例进行排序以优化其执行次序,旨在最大化排序目标。
[0005]本发明提出的策略根据查错率进行了测试用例选择,经过多次选择和判断,可以从现有的测试用例集中筛选出查错能力较强的测试用例。

【发明内容】

[0006]针对上述问题,本发明提供了一种基于查错率的测试用例选择方法,以用于选出查错率高的测试用例。
[0007]本发明的技术方案是:一种基于查错率的测试用例选择方法,所述方法的具体步骤如下:
Stepl、将 Sum 个测试用例均分成 η 组,得到 Gc[i] (i=l, 2,...,η);其中,Gp[i]、Gc[i]、Gn[i]分别为上一次选择的分组、本次选择的分组、下一次选择分组,i为分组号,每个分组的测试用例个数为Sum/n个,Fp [i]和Fc[i]分别表示上一次选择分组的查错率和本次选择分组的查错率,Fp[i]=0,Fc[i]=0,Gp[i]=null,Gn[i]=null ;i=l, 2,..., n ;
St印2、设置i=l ;
Step3、依次执行本次选择的每个分组,并分别计算每个分组的查错率;
Step4、将每个分组的查错率Fc[i]按照从大到小的顺序进行排序,同时将分组Gc[i]按照查错率从大到小的顺序进行排序; Step5、判断Fp [I]是否小于Fe [I]:如果是,则执行步骤Step6,否则,选择上一次选择查错率最高的分组作为最终的选择结果;
St印6、将i重新置为I ;
Step7、判断i是否小于η:如果是,则执行步骤Step8 ;否则,执行步骤Stepll ;
St印8、将Gc[i]和Gp[i]取交集,并将交集个数设为count ;
Step9、判断Sum/n是否等于count:如果是,则执行步骤SteplO ;否则,执行步骤Stepl3 ;
SteplO、将Ge [i]与Gp[i]的交集放入Gn [i]中,继续步骤Stepl4 ;
Stepll、判断i是否等于η:如果是,则执行步骤Stepl2 ;否则,执行步骤Stepl5 ; Stepl2、将剩下所有未被选择的测试用例放入Gn [i]中,继续步骤Stepl4 ;
Stepl3、判断count是否等于O:如果等于0,则从Gc[i]和Gc[i+1]中未被选择过的部分随机选取Sum/n个测试用例放入Gn[i]中,继续步骤Stepl4 ;否则,将Gc[i]和Gp[i]交集中的测试用例放入Gn[i]中,Gn[i]剩余部分测试用例从Ge [i+1]中选取,继续步骤Stepl4 ;
Stepl4、i 加 1,返回步骤 Step7 ;
Stepl5、将 Fe [i] (i=l, 2,…,η)中的值依次放入 Fp [i] (i=l, 2,…,η),分组 Ge [i](i=l, 2,..., η)中的测试用例依次放入Gp[i] (i=l, 2,…,η),将Gn[i] (i=l, 2,…,η)中的测试用例依次放入Gc[i] (i=l, 2,...,η)中,返回步骤Step2。
[0008]所述查错率=error[?] / Σ error [i] (i=l, 2,..., η);其中,error [i]为第 i 个分组发现的缺陷数。
[0009]其中,
步骤St印4中,将查错率按照从大到小的顺序放入Fc[i]中,并将每个分组的测试用例按照它们的查错率从大到小依次放入Ge [i]中,这样使得最高查错率及其分组固定为第一组。
[0010]步骤Step5中,以本次选择的最高查错率Fe [I]是否低于上一次选择的最高查错率Fp [I]作为选择是否结束的标准,因为随着选择的不断进行,查错率会不断提高,如果本次选择的查错率低于上一次选择的查错率,那就证明本次选择是失败的或是查错率已经达到最高,因而应该终止选择,并以上一次选择的结果作为最终结果。
[0011]步骤Step7,通过判断i是否小于n,使得本次选择中每个分组的测试用例都按照策略进行选择。
[0012]步骤Step9中,以sum/n即每个分组测试用例个数和count中个数做比较,count中测试用例的个数的不同则影响了如何来进行其余测试用例的选择。
[0013]从Gc[i]和Gp[i]的交集中选取测试用例,由于每次选择第一个分组的测试用例取自于上一次选择查错率最高的分组和本次选择查错率最高的分组的交集,因此第一个分组的测试用例具有较强的发现缺陷的能力的可能性较大。
[0014]本发明的工作原理是:
本发明首先说明了以查错率作为标准来对测试用例进行选择,查错率定义为检测出的错误与全部错误的百分比。一般情况下,当一组测试用例发现的缺陷越多,则该组测试用例含有较多查错能力强的测试用例的可能性较大。即一组测试用例发现缺陷越多,则该组测试用例查错率也就越高,也表明该组测试用例发现缺陷的能力越强,因此我们需要选择出查错率较高的一组测试用例。
[0015]为了选出查错率高的测试用例,通常需要经过多次选择。如果能将每次选择查错率最高的分组与上一次选择查错率最高的分组的测试用例取交集,将这些交集放入一个集合中,则查错能力强的测试用例在集合中的可能性相对较大,如果从该集合中选取测试用例,则有可能取到查错能力较强的测试用例。随着选择的不断进行,选出的测试用例的查错率也在不断提高。
[0016]本发明的有益效果是:
I)以查错率作为标准来对测试用例进行选择与判断。
[0017]2)通过将每次选择与上一次选择查错率最高的分组的公共部分放入一个临时变量中,并从该临时变量和上一次选择查错率次高的分组中来选择测试用例,最终选择出高质量的一组测试用例。
[0018]3)依据策略对测试用例不断的选择与重新分组,最终能够以较小的代价选择出查错率最高的分组。
【附图说明】
[0019]图1是本发明的流程图。
【具体实施方式】
[0020]实施例1:如图1所示,一种基于查错率的测试用例选择方法,所述方法的具体步骤如下:
Stepl、将 Sum 个测试用例均分成 η 组,得到 Gc[i] (i=l, 2,...,η);其中,Gp[i]、Gc[i]、Gn[i]分别为上一次选择的分组、本次选择的分组、下一次选择分组,i为分组号,每个分组的测试用例个数为Sum/n个,Fp [i]和Fc[i]分别表示上一次选择分组的查错率和本次选择分组的查错率,Fp[i]=0,Fc[i]=0,Gp[i]=null,Gn[i]=null ;i=l, 2,..., n ;
St印2、设置i=l ;
Step3、依次执行本次选择的每个分组,并分别计算每个分组的查错率;
Step4、将每个分组的查错率Fc[i]按照从大到小的顺序进行排序,同时将分组Gc[i]按照查错率从大到小的顺序进行排序;
Step5、判断Fp [I]是否小于Fe [I]:如果是,则执行步骤Step6,否则,选择上一次选择查错率最高的分组作为最终的选择结果;
St印6、将i重新置为I ;
Step7、判断i是否小于η:如果是,则执行步骤Step8 ;否则,执行步骤Stepll ;
St印8、将Gc[i]和Gp[i]取交集,并将交集个数设为count ;
Step9、判断Sum/n是否等于count:如果是,则执行步骤SteplO ;否则,执行步骤Stepl3 ;
SteplO、将Ge [i]与Gp[i]的交集放入Gn [i]中,继续步骤Stepl4 ;
Stepll、判断i是否等于η:如果是,则执行步骤Stepl2 ;否则,执行步骤Stepl5 ; Stepl2、将剩下所有未被选择的测试用例放入Gn [i]中,继续步骤Stepl4 ; Stepl3、判断count是否等于O:如果等于O,则从Gc[i]和Gc[i+1]中未被选择过的部分随机选取Sum/n个测试用例放入Gn[i]中,继续步骤Stepl4 ;否则,将Gc[i]和Gp[i]交集中的测试用例放入Gn[i]中,Gn[i]剩余部分测试用例从Ge [i+1]中选取,继续步骤Stepl4 ;
Stepl4、i 加 1,返回步骤 Step7 ;
Stepl5、将 Fe [i] (i=l, 2,…,η)中的值依次放入 Fp [i] (i=l, 2,…,η),分组 Ge [i](i=l, 2,..., η)中的测试用例依次放入Gp[i] (i=l, 2,…,η),将Gn[i] (i=l, 2,…,η)中的测试用例依次放入Gc[i] (i=l, 2,...,η)中,返回步骤Step2。
[0021]所述查错率=error[i] / Σ error [i] (i=l, 2,..., n);其中,error [i]为第 i 个分组发现的缺陷数。
[0022]实施例2:如图1所示,一种基于查错率的测试用例选择方法,所述方法的具体步骤如下:
Stepl、将 Sum 个测试用例均分成 η 组,得到 Gc[i] (i=l, 2,...,η);其中,Gp[i]、Gc[i]、Gn[i]分别为上一次选择的分组、本次选择的分组、下一次选择分组,i为分组号,每个分组的测试用例个数为Sum/n个,Fp [i]和Fc[i]分别表示上一次选择分组的查错率和本次选择分组的查错率,Fp[i]=0,Fc[i]=0,Gp[i]=null,Gn[i]=null ;i=l, 2,..., n ;
St印2、设置i=l ;
Step3、依次执行本次选择的每个分组,并分别计算每个分组的查错率;
Step4、将每个分组的查错率Fc[i]按照从大到小的顺序进行排序,同时将分组Gc[i]按照查错率从大到小的顺序进行排序;
Step5、判断Fp [I]是否小于Fe [I]:如果是,则执行步骤Step6,否则,选择上一次选择查错率最高的分组作为最终的选择结果;
St印6、将i重新置为I ;
Step7、判断i是否小于η:如果是,则执行步骤Step8 ;否则,执行
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1