2.边界值分析方法
大量测试实践得出,软件bug多发生在输入或输出范围的边界上,包括稍高及稍低于其边界值的情况。常见的此类bug原因有,疏忽开区间闭区间、疏忽循环变量的初始值(0,1的区别)、数组越界等等。
·几种边界值分析法模型
一般性边界值、健壮性边界值、最坏边界值、最坏健壮性边界值。
(1) 边界条件
如果软件在能力达到极限时能够运行,那么在正常情况下一般也不会有什么问题。普通边界条件在产品说明书中有定义,或在用户实际使用中确定,比较容易发现。
(2) 次边界条件
有些边界值在软件内部,称作内部边界条件,要测试到这些内部边界,要求大体了解软件的工作方式,如2的乘方和ASCII表。
① 2的乘方:
计算机和软件的计数基础是二进制数,在建立等价区间时,要考虑是否需要包含2的乘方边界条件。
例如,联系人号码最多支持500个字符,除考虑0,1,2和499,500,501外,还要覆盖任何可能的2的乘方次边界,包含临近双位边界的14、15和16,以及临近字节边界的254、255和256。
② ASCII表
另一个常见的次边界条件是ASCII字符表。
0~9的后面ASCII值是48~57.斜杠字符“/”在数字0的前面,而冒号字符“:”在数字9的后面。大写字母A~Z对应65~90.小写字母对应97~122.这些情况都代表次边界条件。例如,联系人的邮件地址编辑文本框只接受用户输入字母A~Z、a~z、0~9、“_”、“@”、“.”等字符,就应该在非法区间中包含ASCII表中这些字符前后的值包括:问号“?”、开方括号“[”、开花括号“{”、斜杠“/”、“:”脱字符“^”、开单引号“`”、减号/破折号“-”等。
(3) 设计原则
① 如果输入条件规定了值的范围,刚刚超越范围边界的值,在范围内紧贴边界的值;
② 如果输入条件规定了值的个数,则用最大个数,最大个数多1,最小个数,最小个数少1的数作为测试数据;
③ 前面两条对输出条件同样适用;
④ 如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个和最后一个元素作为测试数据;
⑤ 如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构边界上的值作为测试数据。
⑥ 分析规格说明,找出其他可能的边界条件。