-
1 电子教材
-
2 PPT
寻找这样的边界不要求软件测试员成为程序员或者具有阅读源代码的能力,但是确实要求大体了解软件的工作方式。2的乘方和ASCII表是这样的两个例子。
Ø 2的乘方
计算机和软件的基础是二进制数——用位来表示0和1,一个字节由8位组成,一个汉字由2个字节组成,lKB等于1024字节,1MB等于1024KB等。这些范围和值也是作为边界条件的重要数据。除非软件向用户提出这些范围,否则在需求文档中不会指明。
然而,它们通常由软件内部使用,外部是看不见的,是隐含在程序内部的边界值情况。
例如在一个两位数加法的程序中,计算结果的范围是从-198到198,如果程序员以一个字节来存储计算结果,要想能够存储负数,一个字节所能表示的数据的范围只能从-128到127,这时程序在处理大于127的计算结果时就会出错。所以有时候也有必要在建立等价区间时考虑是否需要包含2的乘方的边界条件。这样就可以添加测试用例为表7-3所示的例子。
表7-3 等价类表补充边界值测试用例
| 测试用例编号 | 输入数值 | 被测边界 | 预期输出 |
| 1 2 3 | -100 -99+ (-99) -98+ (-98) | -99 | 错误信息 正确输出: -198 正确输出: -196 |
| 4 5 6 | 98+98 99+99 100 | 99 | 正确输出: 196 正确输出: 198 错误信息 |
| 7 8 9 | -64+ (-64) -64+ (-63) -63+ (-63) | -127 | 正确输出: -128 正确输出: -127 正确输出: -126 |
| 10 11 12 | 64+64 64+63 63+63 | 127 | 正确输出: 128 正确输出: 127 正确输出: 126 |
Ø ASCII表
另一个常见次边界条件是ASCII字符表(表7-4)。
表7-4 ASCII字符表
| 字符 | ASCII值 | 字符 | ASCII值 |
| null | 0 | B | 66 |
| space | 32 | Y | 89 |
| / | 47 | Z | 90 |
| 0 | 48 | [ | 91 |
| 1 | 49 | ‘ | 96 |
| 2 | 50 | a | 97 |
| 9 | 57 | b | 98 |
| : | 58 | y | 121 |
| @ | 64 | z | 122 |
| A | 65 | { | 123 |
注意:上表不是连续表。0-9的后面ASCII值是48-57。斜杠字符(/)在数字0的前面,而冒号字符(:)在数字9的后面,大写字母A~Z对应65~90,小写字母对应97~122。这些情况都代表次边界条件。
如果测试进行文本输入或文本转换的软件,在定义数据区间包含哪些值时,最好参考一下ASCII表。例如,如果测试的文本框只接受用户输入字符A-Z和a-z,就应该在非法区间中包含ASCII表中这些字符前后的值——@、[、‘和{ 。又如,在两位数加法程序中,输入只能是数字而不能为其他字符。如果程序对用户输入的字符是根据字符的ASCII码来进行处理的,此时,测试人员就需要对这些判断条件的临界值(47、48、57、58)进行测试,以确定程序员没有写错判断条件。尽管ASCII码仍然是软件表示字符数据非常流行的方式,但是它已经被称为统一编码(Unicode)的新标准取代了。Unicode于1991年由统一编码联合会开发,以解决ASCII无法表示所有书写语言字符的问题。ASCII只有8位,能表示256种不同的字符。Unicode使用16位,可以表示65536种字符。目前已经为39000多种字符指定了数值,其中21000多种用于表示中国象形符号。

