全程软件测试(二十):测试用例设计—边界值分析法——读书笔记

云平台

  大量软件测试实践表明,许多错误往往出现在输入输出数据范围的边界上,因此针对输入输出数据范围的边界来设计测试用例,可检测出更多的错误,这就是黑盒测试中的边界值分析法。

  例如,上篇《全程软件测试(十九):测试用例设计—等价类划分法——读书笔记》三角形判断案例,其中需要输入3个数值(A、B、C)作为三角形的三条边长,3个数值满足A>0、B>0、C>0且A+B>C、A+C>B、B+C>A才能构成三角形。

  若把上述不等式中的任何一个“>”错写成“≥”,则不能构成三角形。许多错误容易出现在被忽略的边界上,此处的边界是就输入等价类和输出等价类而言的,即稍高于其边界值及稍低于其边界值的一些特定情况。

  1.边界条件软件在能力发挥到极限的情况下能够正常运行,那么在普通情况下运行一般也就不会存在问题;正如人在悬崖峭壁边可以安全行走,那么在平地一般也能安全行走。

  2.普通边界条件一般在产品说明书中有明确定义,或者在使用软件的过程中能够得知,因此较为容易确定。而有些边界条件在软件内部,软件使用者基本无法得知,但软件测试人员必须考虑。此类边界条件称为次边界条件或者内部边界条件。

  寻找次边界并不要求软件测试人员具有编码人员那样的阅读源代码的能力,但要求对软件的工作方式大体了解,包括2的幂和ASCII码表。

  (1)2的幂。计算机和软件是以二进制数进行计数的,用位(bit)表示0和1,一个字节(Byte)由8位组成,一个字由两个字节(16位)组成等。软件中常用的二进制存储单位和对应的转换关系如下表所示。

软件中常用存储单位及对应的转换关系

  上表中的范围或值是作为边界条件的重要数据,上述范围或值一般不会在需求文档中指明,它们通常在软件内部使用,在软件有缺陷的情况下可能会显示。

  (2)ASCII 码表。ASCII 码表是另一个常见的次边界条件。ASCII 码表的部分内容如下表所示。

部分ASCII码表

  上表并不是ASCII码的连续表。0~9对应的ASCII码是48~57,斜杠字符(/)在数字0的前面,而冒号字符(:)在数字9的后面,大写字母A~Z对应的ASCII码是65~90,小写字母对应的ASCII码是97~122,它们均代表次边界条件。

  若被测试软件的功能是进行文本输入或文本转换,在定义数据区间包含数值时,应参考ASCII码表。例如,若测试的文本框只接受用户输入字符A~Z和a~z,非法区间应包含ASCII码表中的@、[和{字符,因为这些字符是字符A~Z和a~z的前后字符。

  (3)其他边界条件。用户在输入框中输入登录信息或填写其他信息时,可能并没有输入数据,即直接回车,产品说明书一般会将这类情况忽略,而这在现实生活中却是时常发生的。

  完善的软件通常会将输入内容默认为合法边界内的最小值或合法边界内的某个合理值,当没有值时直接返回提示信息,如“此信息不能为空”等。

  3.边界值的选择方法

  边界值分析是对等价类划分的一种补充,它不是在等价类中选择任意元素进行测试,而是选择等价类的边界元素作为测试数据进行测试。在边界附近设计测试用例可取得良好的测试效果。

  使用边界值分析法设计测试用例应遵循的原则如下。

  (1)若输入条件规定了值的范围,则应选取刚达到此范围边界的值以及恰好超过此范围边界的值作为测试数据。

  (2)若输入条件规定了值的个数,则应选取最大个数、最小个数、比最大个数多1、比最小个数少1的值作为测试数据。

  (3)若程序规格说明书给出的输入或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试数据。

  (4)若程序使用了一个内部数据结构,则应选取此内部数据结构边界上的值作为测试数据。

  (5)分析规格说明书,找出其他可能的边界条件。

标签: 云平台