根据大量的测试统计数据,很多错误是发生在输入或输出范围的边界上,而不是发生在输入/输出范围的中间区域。因此针对各种边界情况设计测试用例,可以查出更多的错误。 比如一个文本框的可输入字符长度为0~15,那么咱们在测试的时候就会习惯性的输入0个或者16个以上的字符,试试程序会不会报错,因为直觉告诉我们这样出错的几率比较大。这就是在不自觉中应用了边界值分析法。
概念
边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。
设计思路
使用边界值分析方法设计测试用例,首先应确定边界情况。通常输入和输出等价类的边界,就是应着重测试的边界情况。应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据。比如下表:
项 | 边界值 | 设计思路 |
字符 | 起始-1个字符/结束+1个字符 | 假设一个文本输入区域允许输入1个到255个 字符,输入1个和255个字符作为有效等价类;输入0个和256个字符作为无效等价类,这几个数值都属于边界条件值。 |
数值 | 最小值-1/最大值+1 | 假设某软件的数据输入域要求输入5位的数据值,可以使用10000作为最小值、99999作为最大值;然后使用刚好小于5位和大于5位的 数值来作为边界条件。 |
空间 | 小于空余空间一点/大于满空间一点 | 例如在用U盘存储数据时,使用比剩余磁盘空间大一点(几KB)的文件作为边界条件。 |
边界值分析与等价类划分的区别 1) 边界值分析不是从某等价类中随便挑一个作为代表,而是使这个等价类的每个边界都要作为测试条件。
2) 边界值分析不仅考虑输入条件,还要考虑输出空间产生的测试情况。
举例说明
例:测试计算平方根的函数 –输入:实数 –输出:实数 –需求说明:当输入一个0或比0大的数的时候,返回其正平方根;当输入一个小于0的数时,显示错误信息”平方根非法-输入值小于0”并返回0;库函数Print-Line可以用来输出错误信息。
A. 等价类划分: I.可以考虑作出如下划分: a、输入 (i)<0 和 (ii)>=0 b、输出 (a)>=0 和 (b) Error
II.测试用例有两个: a、输入4,输出2。对应于 (ii) 和 (a) 。 b、输入-10,输出0和错误提示。对应于 (i) 和 (b) 。
B. 边界值分析: 划分(ii)的边界为0和最大正实数;划分(i)的边界为最小负实数和0。由此得到以下测试用例: a、输入 {最小负实数} b、输入 {绝对值很小的负数} c、输入 0 d、输入 {绝对值很小的正数} e、输入 {最大正实数}
不怕不知道,就怕不知道,其实在平时测试的过程中,我们已经不自觉的用到了很多编写测试用例的方法,只是没有系统的了解一下而已。