边界值分析法
对程序输入或输出的边界值进行分析和测试,是对等价类划分法的一种补充。
边界值的基本概念
- 开区间:介于固定的两点间的所有点的集合(不包含给定的两点)
记为(a,b):a<x<b 取值不包括a、b - 闭区间:介于固定的两点间的所有点的集合 (包含给定的两点)
记为[a,b]:a<=x<=b 取值包括a、b - 上点:就是边界上的点,不管它是开区间还是闭区间。
就是说,如果该点是封闭的,那上点就在域范围内,如果该点是开放的,那上点就在域范围外 - 内点:就是在域范围内的任意一个点 。
- 离点:就是离上点最近的一个点。
如果边界是封闭的,那离点就是域范围外离上点最近的点,如果边界是开放的,那离点就是域范 围内离上点最近的点。
边界条件类型
边界条件:可以在产品说明书中有定义或者在使用软件过程中确定
隐含的边界值:
x的n次方 x n 此处除了x和n需要测试整型的边界值,还隐含 了x n 整个结果也必须是整数
ASCII表 隐含需求是0256或-128127
其他边界条件:如输入信息为空、非法、错误、 不正确和垃圾数据
通常情况下,软件测试所包含的边界检验有多种类型:数字、字符、尺寸、空间等。
相应地,以上类型的边界值应该在:最大 /最小、首位/末位、最短/最长、 空/满等情况下。
边界值方法小结
- 输入、输出、判断、循环最容易产生边界错误
边界值的选择
如果输入条件规定了值的范围,则应该取刚达到这个范围的边界值,以及刚刚超过这个范围边界的值作为测试输入数据;
(例如:0-50,0、50、51、-1)
如果输入条件规定了值的个数,则用最大个数、最小个数、 比最大个数多1个、比最小个数少1个的数做为测试数据;
(例如:运动员的参赛项目为1-3项,则0项、1项、3项、4项)
如果程序用了一个内部结构,应该选取这个内部数据结构的 边界值作为测试用例;
分析规格说明,找出其他可能的边界条件。
常见的边界值
- 对16-bit 的整数而言 32767 和 -32768 是边界
- 屏幕上光标在最左上、最右下位置
- 报表的第一行和最后一行
- 数组元素的第一个和最后一个
- 循环的第 0 次、第 1 次和倒数第 2 次、最后一次
边界值方法小结
- 确定边界值的方法
- 对取值范围进行界定
- 对取值个数进行界定
- 有序集合
- 分析规格说明,找出其他边界条件
与等价划分的区别
- 边界值是特定明确的值,不是从某等价类中抽取一个作为代表,而是每个边界值都要作为测试条件。
- 等价类是范围值,从范围中抽取一个。
- 边界值是为了准确的测试边界效应,等价类是为了在有限测试成本内控制测试范围并尽可能多的覆盖。
等价类、边界值小结
等价类、边界值都是以数据为中心,为用例设计、挑选数据的方法。是几乎所有黑盒测试方法的基础,也是工作中最常用(甚至是首要)的设计方法
由于涉及到数据类型、数据取值范围,要深度掌握这些方法需要一定开发语言基础