7.2 边界值法

边界值法是对输入或输出的边界值进行测试的一种黑盒测试方法,边界值法是对等价类划分法的一个补充。

边界值法的理论基础,是假定大多数的错误发生在各种输入条件的边界上,如果在边界附近的取值不会导致程序出错,那么其它的取值导致程序错误的可能性很小。

7.2.1 方法

输入条件明确了一个值的取值范围,或是规定了值的个数,或者明确了一个有序集合。

  1. 如果输入(输出)条件规定了取值范围,则应该以该范围的边界值及边界附近的值作为测试用例。

  2. 如果输入(输出)条件规定了值的个数的取值范围,则用最大个数,最小个数,比最小个数少一,比最大个数多一的数作为测试数据。

  3. 如果输入(输出)条件规定了值是一个有序的集合,应该注意选取有序集合的第一个和最后一个元素作为测试用例。

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个数,非零数,整数,正数。
一般三角形:任意两边之和大于第三边。
等腰三角形:一般三角形中,两条边相等。
等边三角形:三条边相等。