边界值分析法就是对输入和输出的边界值进行
测试的一种
黑盒测试方法,通常边界值分析法是作为对等价类划分的补充,这种情况下,其
测试用例来自等价类的边界。
边界值的上点、内点和离点的概念:
上点,就是边界上的点,不管它是开区间还是闭区间,就是说,如果该点是封闭的,那上点就在域范围内,如果该点是开放的,那上点就在域范围外;
内点,就是在域范围内的任意一个点;
离点,就是离上点最近的一个点,如果边界是封闭的,那离点就是域范围外离上点最近的点,如果边界是开放的,那离点就是域范围内离上点最近的点。
如:
[66,88] 上点就是66,88;并且都是在域内,内点就是域内得任意点;离点是65,89。
(66,88] 这种情况上点是66,88;其中一个是域内,一个是域外,内点就是域内得任意点;离点是67,89。
(66,88) 这样得情况上点还是66,88;只是都是在域外,内点还是域内得任意点;离点此时为67,87。
为什么要使用边界值分析法:
无数的测试实践表明,大量的故障往往发生在输入定义域和输出值域的边界上,而不是在其内部。因此针对各种边界情况设计测试用例,通常会取得良好的测试效果。如:一个循环条件为“<=”时,却错写成“<”,计数器发生少计数一次。
1)如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值以及刚刚超越这个边界范围的值作为测试输入数据;
2)如果输入条件规定了值的个数,则用最大个数、最小个数、比最小个数少一,比最大个数多一的数作为测试数据;
3)将规则1和2应用于输出条件,即设计测试用例使输出值达到边界值及其左右的值;
4)如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例;
5)如果程序中使用了一个内部数据结构,则应选取这个内部数据结构的边界上的值作为输入数据;
黑盒测试-边界值分析举例:
假设商店货品价格(R)皆不大於100元(且为整数),若顾客付款在100元内(P),求找给顾客之最少货币个(张)数?(货币面值50元(N50),10元(N10),5元(N5),1元(N1)四种)
一、分析输入的情形:
R>100
0<R<=100
R<=0
P>100
R<=P<=100
P<R
二、分析输出情形:
N50=1
N50=0
4>N10>=1
N10=0
N5=1
N5=0
4>N1>=1
N1=0
三、分析规格中每一决策点之情形,以RR1,RR2,RR3表示计算要找50,10,5元货币数时之剩余金额:
R>100
R<=0
P>100
P<R
RR1>=50
RR2>=10
RR3>=5
四、由上述之输入/输出条件组合出可能的情形:
R>100
R<=0
0<R<=100,P>100
0<R<=100,P<R
0<R<=100,R<=P<=100,RR=50
0<R<=100,R<=P<=100,RR=49
0<R<=100,R<=P<=100,RR=10
0<R<=100,R<=P<=100,RR=9
0<R<=100,R<=P<=100,RR=5
0<R<=100,R<=P<=100,RR=4
0<R<=100,R<=P<=100,RR=1
0<R<=100,R<=P<=100,RR=0
五、为满足以上之各种情形,测试资料设计如下:
1.货品价格=101
2.货品价格=0
3.货品价格=-1
4.货品价格=100,付款金额=101
5.货品价格=100,付款金额=99
6.货品价格=50,付款金额=100
7.货品价格=51,付款金额=100
8.货品价格=90,付款金额=100
9.货品价格=91,付款金额=100
10.货品价格=95,付款金额=100
11.货品价格=96,付款金额=100
12.货品价格=99,付款金额=100
13.货品价格=100,付款金额=100