某直辖市的电话号码由三部分组成,这三部分的名称和内容分别是:
(1)地区码:空白或3位数字;
(2)前缀:非“0”和非“1”开头的4位数字;
(3)后缀:4位数字
假定被测程序接受一切符合上述规定的电话号码,拒绝所有不符合的号码,试设计它的等价类以及测试用例(仅支持单缺陷假设)。
要求:给出详细等价类分析过程,列出等价类,并设计测试用例。
根据题目以及书上的案例,我由结论一:输入条件规定了个数可确定一个有效等价类和两个无效等价类。
这里的条件一:地区码为3位数字可得
有效等价类:
1、 3位有效数字。
无效等价类:
2、多于3个数字。
3、少于三个数字 ;
条件二:前缀为4位数字得:
有效等价类:
1、前缀4位数字 。
无效等价类:
1、 少于4位数字 。
2、 多于4位数字;
条件三:后缀四位数字得:
有效等价类:
1、 后缀4位数字。
无效等价类:
1、 多于四位数字。
2、 少于四位数字 。
由结论二:在输入条件规定了输入值的集合或规定了必须如何的条件下,可以确定一个有效等价类和一个无效等价类。
这里条件一:地区码为空白得:
有效等价类:1、 空白 。
无效等价类:2 、这里的2可以为:不为空白,但就和无效等价类:多于/少于三位数字存在交集;
故分析得:2、 存在非数字字符;
条件二:前缀开头数字非0或非1
可得有效等价类:
1、前缀开头数字非零非一开头
无效等价类:
1、前缀0开头 。
2、 前缀1开头 ;
条件三:前缀为数字得:
1、有效等价类:前缀为数字,
无效等价类:2、 前缀存在非数字字符。
条件四:后缀是数字:
得有效等价类:
1、后缀是数字 ,无效等价类
1、后缀存在非数字字符。
最后在 地区码、前缀、后缀中将有交集的等价类进行合并,即进行抽象。有效等价类中前缀码部分,
有效等价类:
1、前缀开头数字非零非一开头。
2、 前缀为数字。
3、前缀四位数字可合并为有效等价类:前缀是2000--9999之间的数字;
后缀部分有效等价类:
1、后缀4位数字。
2、后缀是数字可以合并为有效等价类:
1、后缀是四位数字。
总上所述,所有等价类如下:
输入 | 有效等价类 | 无效等价类 |
地区码 | ①空白 | ③有非数字字符 |
|
|
|
前缀 | ⑥2000~9999 | ⑦有非数字字符 |
后缀 | ⑫4位数字 | ⑬有非数字字符 |
因为此题仅支持单缺陷假设。故设计测试用例要仅有一个无效等价类,不能多个无效等价类存在。故设计如下测试用例:
ID | 输入值 | 预期输出 | 覆盖的等价类 | ||
| 地区码 | 前缀 | 后缀 |
|
|
1 | 空白 | 2000 | 1234 | 有效 | ①⑥⑫ |
2 | 123 | 2000 | 1234 | 有效 | ②⑥⑫ |
3 | H11 | 2000 | 1234 | 无效 | ③ |
4 | 12 | 2000 | 1234 | 无效 | ④ |
5 | 1234 | 2000 | 1234 | 无效 | ⑤ |
6 | 123 | 2HWY | 1234 | 无效 | ⑦ |
7 | 123 | 0123 | 1234 | 无效 | ⑧ |
8 | 123 | 1234 | 1234 | 无效 | ⑨ |
9 | 123 | 200 | 1234 | 无效 | ⑩ |
10 | 123 | 20000 | 1234 | 无效 | ⑪ |
11 | 123 | 2000 | 1HWY | 无效 | ⑬ |
12 | 123 | 2000 | 123 | 无效 | ⑭ |
13 | 123 | 2000 | 12345 | 无效 | ⑮ |