本文通过案例的形式,详细讲解黑盒测试用例设计技术中的边界值分析法。
无数的测试实践表明,大量的故障往往发生在输入定义域或输出值域的边界上,而不是在其内部。因此,针对各种边界情况设计测试用例,通常会取得很好的测试效果。
边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法,通常作为对等价类划分法的补充,其测试用例来自等价类的边界。
边界值分析使用与等价类划分法相同的划分,只是边界值分析假定错误更多地存在于划分的边界上,因此在等价类的边界上以及两侧的情况设计测试用例。
如果你对等价类划分法还不了解,可先阅读【黑盒测试用例设计技术–等价类划分法】。
对边界值设计测试用例的原则
(1)如果输入条件规定了值的范围,则应取刚达到这个范围的边界值以及刚刚超过这个范围边界的值作为测试输入数据。
(2)如果输入条件规定了值的个数,则用最大个数、最小个数和比最大个数多1个、比最小个数少1个的数作为测试数据。
(3)根据程序规格说明的每个输出条件,使用原则(1)。
(4)根据程序规格说明的每个输出条件,使用原则(2)。
(5)如果程序的规格说明给出的输入域或输出域是有序集合(如有序表、顺序文件等),则应选取集合中的第一个和最后一个元素作为测试用例。
(6)如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试用例。
(7)分析程序规格说明,找出其它可能的边界条件。
Example
某程序具有如下功能:文本框要求输入日期信息,日期限定在1990年1月~2049年12月,并规定日期由6位数字字符组成,前4位表示年,后2位表示月;程序需对输入的日期有效性进行校验。
用等价类划分方法和边界值分析法为该程序的“日期检查功能”设计测试用例。
划分等价类 & 选取边界值
步骤一、要求输入6个数字字符yyyynn;参照等价类划分法规则5,划分为一个有效等价类和三个无效等价类。
- 有效等价类(1):输入6个数字字符
- 无效等价类(2):输入6个字符,存在非数字的情况
- 采用边界值,6个字符全为非数字:abcdef
- 采用边界值,6个字符中有1个为非数字:19930m
- 无效等价类(3):输入少于6个数字字符
- 采用边界值,输入5个数字字符
- 无效等价类(4):输入多于6个数字字符
- 采用边界值,输入7个数字字符
步骤二、在有效等价类(1)的基础上,参照等价类划分法规则6,对该等价类进行细分;考察6个数是否满足日期格式要求,1990<=yyyy<=2049,01<=nn<=12,参照规则,划分为一个有效等价类和四个无效等价类。
- 有效等价类(5):日期格式满足要求,1990<=yyyy<=2049,01<=nn<=12
- 采用边界值,[yyyy,nn]取值为:[1990,06],[1991,06],[2020,06],[2020,11],[2020,12]
- 无效等价类(6):yyyy不满足要求,yyyy<1990
- 采用边界值,[yyyy,nn]取值为:[1989,06]
- 无效等价类(7):yyyy不满足要求,yyyy>2049
- 采用边界值,[yyyy,nn]取值为:[2050,06]
- 无效等价类(8):nn不满足要求,nn<01
- 采用边界值,[yyyy,nn]取值为:[2020,00]
- 无效等价类(9):nn不满足要求,nn>12
- 采用边界值,[yyyy,nn]取值为:[2020,13]
设计测试用例
序号 | yyyynn | 覆盖等价类 | 预期输出结果 |
---|---|---|---|
– | – | 覆盖有效等价类和边界值 | – |
1 | 199006 | (1)(5) | 日期格式有效 |
2 | 199106 | (1)(5) | 日期格式有效 |
3 | 202006 | (1)(5) | 日期格式有效 |
4 | 202011 | (1)(5) | 日期格式有效 |
5 | 202012 | (1)(5) | 日期格式有效 |
– | – | 覆盖无效等价类和边界值 | – |
6 | abcdef | (2) | 日期格式无效 |
7 | 19930m | (2) | 日期格式无效 |
8 | 19935 | (3) | 日期格式无效 |
9 | 1993050 | (4) | 日期格式无效 |
10 | 198906 | (6) | 日期格式无效 |
11 | 205006 | (7) | 日期格式无效 |
12 | 202000 | (8) | 日期格式无效 |
13 | 202013 | (9) | 日期格式无效 |