为了弄清楚边界值分析,我们先来看2个概念。
==>单缺陷假设:一个变量取边界值,其他变量取正常值。
==>多缺陷假设:同时让多个变量取边界值。
边界值分析一般分为4种:边界值测试、健壮性边界测试、最坏情况测试、健壮性最坏情况测试。对于前两者,是基于单缺陷假设,后两者是基于多缺陷假设。
一、边界值测试:
基本思想:基于单缺陷假设,使用输入变量的最小值(min)、略大于最小值(min-)、正常值(nom)、略小于最大值(max-)、最大值(max)来设计测试用例。
下面来看看按照这种方法会有多少个测试用例:
①只有一个变量:(a∈[1,10])
很明显有五个测试用例:{<1>, <2>, <5>, <9>, <10>}.【5个测试用例】
②有两个变量:(a,b ∈[1,10]])
变量值a的取值1、2、5、9、10,变量b也一样。
于是可以组合出{<1,5>, <2,5>, <5,5>, <9,5>, <10,5>, <5,1>, <5,2>, <5,9>, <5,10>}.【9个测试用例】
③有三个变量:(a,b,c ∈[1,10]])
变量值a的取值1、2、5、9、10,变量b、c也一样。
于是可以组合出{<1,5,5>, <2,5,5>, <5,5,5>, <9,5,5>, <10,5,5>, <5,1,5>, <5,2,5>, <5,9,5>, <5,10,5>, <5,5,1>, <5,5,2>, <5,5,9>, <5,5,10>}.【13个测试用例】
小结:从上面可以归纳出测试用例个数:N = 4n + 1(n为输入变量的个数)。其实也可以直接推导出来,首先从n个变量中选择一个取边界值,有种可能;然后对每一种可能,从5个可能取值中任选其一,有种可能;然而对于每一种可能均取了一个用例<nom,nom,nom>,出现了重复,必须只能保留一个,于是减去(n-1)。综上:可以得出测试用例个数:
二、健壮性边界测试:
基本思想:基于单缺陷假设,使用输入变量的略小于最小值(min-)、最小值(min)、略大于最小值(min-)、正常值(nom)、略小于最大值(max-)、最大值(max)、略大于最大值(max+)来设计测试用例。
按照上面的推导过程,可以推出该方法产生的测试用例个数:N = 6n + 1(n为输入变量的个数)。
三、最坏情况测试:
基本思想:基于多缺陷假设,使用输入变量的最小值(min)、略大于最小值(min-)、正常值(nom)、略小于最大值(max-)、最大值(max)来设计测试用例。
在计算测试用例的个数的时候,就需要求笛卡尔积了,所以:N = 5^n(n为输入变量的个数)。
四、健壮性最坏情况测试:
基本思想:基于单缺陷假设,使用输入变量的略小于最小值(min-)、最小值(min)、略大于最小值(min-)、正常值(nom)、略小于最大值(max-)、最大值(max)、略大于最大值(max+)来设计测试用例。
按照上面的推导过程,可以推出该方法产生的测试用例个数:N = 7^n(n为输入变量的个数)。
在利用边界值分析方法设计测试用例的时候,可以按照如下步骤:
①分析各变量取值:上面讲到的那5个值或者7个值。
②计算测试用例的个数:
a.边界值测试: N = 4n + 1(n为输入变量的个数)
b.健壮性边界值测试: N = 6n + 1(n为输入变量的个数)
c.最坏情况测试: N = 5^n(n为输入变量的个数)
d.健壮性最坏情况测试:N = 7^n(n为输入变量的个数)
③设计测试用例并填表
下面来看一个例子:
输入三个整数a、b、c,分别作为三角形的三条边,通过程序判断这三条边是否构成三角形,如果构成三角形,则判断三角形的类型(等边△,等腰△,一般△)。要求:1 ≤ a、b、c ≤ 100。请用边界值测试方法设计测试用例。
解:
①分析变量取值:按照基本思想,a、b、c的取值均可以取为:1,2,50,99,100。
②计算测试用例的个数:按照公式N = 4n + 1 = 4 × 3 + 1 = 13(个)
③设计并填表: