7.2 边界值法
边界值法是对输入或输出的边界值进行测试的一种黑盒测试方法,边界值法是对等价类划分法的一个补充。
边界值法的理论基础,是假定大多数的错误发生在各种输入条件的边界上,如果在边界附近的取值不会导致程序出错,那么其它的取值导致程序错误的可能性很小。
7.2.1 方法
输入条件明确了一个值的取值范围,或是规定了值的个数,或者明确了一个有序集合。
如果输入(输出)条件规定了取值范围,则应该以该范围的边界值及边界附近的值作为测试用例。
如果输入(输出)条件规定了值的个数的取值范围,则用最大个数,最小个数,比最小个数少一,比最大个数多一的数作为测试数据。
如果输入(输出)条件规定了值是一个有序的集合,应该注意选取有序集合的第一个和最后一个元素作为测试用例。
7.2.2 边界值点定义
上点
边界上的点,如果域的边界是封闭的,上点就在域范围内;如果域的边界是开放的,上点就在域范围外。
离点
就是离上点最近的一个点,如果域的边界是封闭的,离点就在域范围外,如果域的边界是开放的,离点就在域范围内。
内点
顾名思义,就是在域范围内的任意一个点。
闭离点在外,开离点在内
可以这样理解:当是闭区间时,上点已经包含了内部范围的边界点,此时外部的边界点还没有覆盖,所以离点在外部;当是开区间时,上点已经包含了外部范围的边界点,此时内部的边界点还没有覆盖,所以离点在内部。
举例说明:
案例 | 4 < = x < 16 | 3 < x < 16 | ||
---|---|---|---|---|
边界 | 左边界 | 右边界 | 左边界 | 右边界 |
上点 | 4 | 16 | 3 | 16 |
离点 | 3 | 15 | 4 | 15 |
案例1和案例2在x为整数值域的条件下,是一样的表达。在上点离点的设置下,得到的用例结果是一样的。都是二值边界测试,如果是三值边界测试,那么将在边界的左右两边各取一值,但略有冗余,所以通常采取二值边界测试。
7.2.3 步骤
分析输入参数的类型:从测试规格中分析得到输入参数类型;
等价类划分(可选):使用等价类划分方法对输入进行等价类划分;
确定边界:运用域测试分析方法确定域范围的边界(上点、离点与内点);
相关性分析(可选):如果存在多个输入域,则需要运用因果图,判定表方法对这些输入域边界值的组合情况进行进一步分析;
形成测试项:选择这些上点、离点与内点或者这些点的组合形成测试项。
7.2.4 练习
使用边界值法设计测试用例:
1.注册新浪邮箱的邮箱名,密码。https://mail.sina.com.cn/register/regmail.php
需求:
邮箱名:4-16个字符,可使用英文小写、数字、下划线,下划线不能在首尾。
密码:6-16位字符(字母、数字、特殊符号),区分大小写。
2.输入三个正整数 a、b、c 分别作为三边的边长构成三角形。通过程序判定所构成的三角形的类型,即:一般三角形、等腰三角形及等边三角形。
需求:
三条边:3个数,非零数,整数,正数。
一般三角形:任意两边之和大于第三边。
等腰三角形:一般三角形中,两条边相等。
等边三角形:三条边相等。