软件测试课程习题总结
1、某城市电话号码由三部分组成。它们的名称和内容分别是:
地区码:空白或三位数字;
前 缀:非'0'或'1'的三位数字;
后 缀:4位数字。
假定被测程序能接受一切符合上述规定的电话号码,拒绝所有不符合规定的电话号码。根据该程序的规格说明,作等价类的划分,并设计测试方案。
表1 等价类划分表
输入条件 |
有效等价类 |
编号 |
无效等价类 |
编号 |
地区码 |
空白 |
1 |
1位数字 |
5 |
3位数字 |
2 |
2位数字 |
6 |
|
前缀 |
非0且非1的3位数字(这里将或字改为且字,当前缀为有1或有0的3位数字时,与无效类7或8冲突) |
3 |
有0的3位数字 |
7 |
有1的3位数字 |
8 |
|||
1位数字 |
9 |
|||
2位数字 |
10 |
|||
后缀 |
4位数字 |
4 |
1位数字 |
11 |
2位数字 |
12 |
|||
3位数字 |
13 |
|||
有非数字的字符 |
14 |
表2 测试用例表
测试用例编号 |
覆盖的有效/无效等价类 |
输入数据 |
预期输出 |
||
|
|
地区码 |
前缀 |
后缀 |
电话号码 |
1,3,4 |
空白 |
222 |
2234 |
( )222-2234 |
|
2 |
1,3,11 |
空白 |
222 |
2 |
无效 |
3 |
1,3,12 |
空白 |
222 |
22 |
无效 |
4 |
1,3,13 |
空白 |
222 |
223 |
无效 |
5 |
1,3,14 |
空白 |
222 |
223a |
无效 |
6 |
1,7,4 |
空白 |
220 |
2234 |
无效 |
7 |
1,7,11 |
空白 |
220 |
2 |
无效 |
8 |
1,7,12 |
空白 |
220 |
22 |
无效 |
9 |
1,7,13 |
空白 |
220 |
223 |
无效 |
10 |
1,7,14 |
空白 |
220 |
223a |
无效 |
11 |
1,8,4 |
空白 |
221 |
2234 |
无效 |
12 |
1,8,11 |
空白 |
221 |
2 |
无效 |
13 |
1,8,12 |
空白 |
221 |
22 |
无效 |
14 |
1,8,13 |
空白 |
221 |
223 |
无效 |
15 |
1,8,14 |
空白 |
221 |
223a |
无效 |
16 |
1,9,4 |
空白 |
2 |
2234 |
无效 |
17 |
1,9,11 |
空白 |
2 |
2 |
无效 |
18 |
1,9,12 |
空白 |
2 |
22 |
无效 |
19 |
1,9,13 |
空白 |
2 |
223 |
无效 |
20 |
1,9,14 |
空白 |
2 |
223a |
无效 |
21 |
1,10,4 |
空白 |
22 |
2234 |
无效 |
22 |
1,10,11 |
空白 |
22 |
2 |
无效 |
23 |
1,10,12 |
空白 |
22 |
22 |
无效 |
24 |
1,10,13 |
空白 |
22 |
223 |
无效 |
25 |
1,10,14 |
空白 |
22 |
223a |
无效 |
26 |
2,3,4 |
111 |
222 |
2234 |
(111)222-2234 |
27 |
2,3,11 |
111 |
222 |
2 |
无效 |
28 |
2,3,12 |
111 |
222 |
22 |
无效 |
29 |
2,3,13 |
111 |
222 |
223 |
无效 |
30 |
2,3,14 |
111 |
222 |
223a |
无效 |
31 |
2,7,4 |
111 |
220 |
2234 |
无效 |
32 |
2,7,11 |
111 |
220 |
2 |
无效 |
33 |
2,7,12 |
111 |
220 |
22 |
无效 |
34 |
2,7,13 |
111 |
220 |
223 |
无效 |
35 |
2,7,14 |
111 |
220 |
223a |
无效 |
36 |
2,8,4 |
111 |
221 |
2234 |
无效 |
37 |
2,8,11 |
111 |
221 |
2 |
无效 |
38 |
2,8,12 |
111 |
221 |
22 |
无效 |
39 |
2,8,13 |
111 |
221 |
223 |
无效 |
40 |
2,8,14 |
111 |
221 |
223a |
无效 |
41 |
2,9,4 |
111 |
2 |
2234 |
无效 |
42 |
2,9,11 |
111 |
2 |
2 |
无效 |
43 |
2,9,12 |
111 |
2 |
22 |
无效 |
44 |
2,9,13 |
111 |
2 |
223 |
无效 |
45 |
2,9,14 |
111 |
2 |
223a |
无效 |
46 |
2,10,4 |
111 |
22 |
2234 |
无效 |
47 |
2,10,11 |
111 |
22 |
2 |
无效 |
48 |
2,10,12 |
111 |
22 |
22 |
无效 |
49 |
2,10,13 |
111 |
22 |
223 |
无效 |
50 |
2,10,14 |
111 |
22 |
223a |
无效 |
51 |
5,3,4 |
1 |
222 |
2234 |
无效 |
52 |
5,3,11 |
1 |
222 |
2 |
无效 |
53 |
5,3,12 |
1 |
222 |
22 |
无效 |
54 |
5,3,13 |
1 |
222 |
223 |
无效 |
55 |
5,3,14 |
1 |
222 |
223a |
无效 |
56 |
5,7,4 |
1 |
220 |
2234 |
无效 |
57 |
5,7,11 |
1 |
220 |
2 |
无效 |
58 |
5,7,12 |
1 |
220 |
22 |
无效 |
59 |
5,7,13 |
1 |
220 |
223 |
无效 |
60 |
5,7,14 |
1 |
220 |
223a |
无效 |
61 |
5,8,4 |
1 |
221 |
2234 |
无效 |
62 |
5,8,11 |
1 |
221 |
2 |
无效 |
63 |
5,8,12 |
1 |
221 |
22 |
无效 |
64 |
5,8,13 |
1 |
221 |
223 |
无效 |
65 |
5,8,14 |
1 |
221 |
223a |
无效 |
66 |
5,9,4 |
1 |
2 |
2234 |
无效 |
67 |
5,9,11 |
1 |
2 |
2 |
无效 |
68 |
5,9,12 |
1 |
2 |
22 |
无效 |
69 |
5,9,13 |
1 |
2 |
223 |
无效 |
70 |
5,9,14 |
1 |
2 |
223a |
无效 |
71 |
5,10,4 |
1 |
22 |
2234 |
无效 |
72 |
5,10,11 |
1 |
22 |
2 |
无效 |
73 |
5,10,12 |
1 |
22 |
22 |
无效 |
74 |
5,10,13 |
1 |
22 |
223 |
无效 |
75 |
5,10,14 |
1 |
22 |
223a |
无效 |
76 |
6,3,4 |
11 |
222 |
2234 |
无效 |
77 |
6,3,11 |
11 |
222 |
2 |
无效 |
78 |
6,3,12 |
11 |
222 |
22 |
无效 |
79 |
6,3,13 |
11 |
222 |
223 |
无效 |
80 |
6,3,14 |
11 |
222 |
223a |
无效 |
81 |
6,7,4 |
11 |
220 |
2234 |
无效 |
82 |
6,7,11 |
11 |
220 |
2 |
无效 |
83 |
6,7,12 |
11 |
220 |
22 |
无效 |
84 |
6,7,13 |
11 |
220 |
223 |
无效 |
85 |
6,7,14 |
11 |
220 |
223a |
无效 |
86 |
6,8,4 |
11 |
221 |
2234 |
无效 |
87 |
6,8,11 |
11 |
221 |
2 |
无效 |
88 |
6,8,12 |
11 |
221 |
22 |
无效 |
89 |
6,8,13 |
11 |
221 |
223 |
无效 |
90 |
6,8,14 |
11 |
221 |
223a |
无效 |
91 |
6,9,4 |
11 |
2 |
2234 |
无效 |
92 |
6,9,11 |
11 |
2 |
2 |
无效 |
93 |
6,9,12 |
11 |
2 |
22 |
无效 |
94 |
6,9,13 |
11 |
2 |
223 |
无效 |
95 |
6,9,14 |
11 |
2 |
223a |
无效 |
96 |
6,10,4 |
11 |
22 |
2234 |
无效 |
97 |
6,10,11 |
11 |
22 |
2 |
无效 |
98 |
6,10,12 |
11 |
22 |
22 |
无效 |
99 |
6,10,13 |
11 |
22 |
223 |
无效 |
100 |
6,10,14 |
11 |
22 |
223a |
无效 |
以上测试用例中,一共有4x5x5=100种测试用例,有效的用例组合为1-3-4, 2-3-4,其余均为无效。
2、用边界值方法设计如下函数的测试用例:
函数原型:
Int NextDate(int year,int month,int day)
函数功能:对给定的year,month, day给出下一天的日期,其中year在1900~2050范围内。例如,如果给出1910,4,1其下一天是1910年4月2日。
假定:函数的错误可能只是某个变量引起的,如1900年1月1日的下一天它得到1900年1月3日。
要求:先分析函数形参中每个变量的取值范围,然后按边界值分析的方法给出测试用例。
表3 各变量取值范围
变量名 |
最小值 |
最大值 |
year |
1900 |
2050 |
month |
1 |
12 |
day |
1 |
31 |
表4 测试用例
测试用例编号 |
year |
month |
day |
预期输出 |
1 |
1899 |
2 |
1 |
无效 |
2 |
2051 |
2 |
1 |
无效 |
3 |
1900 |
0 |
1 |
无效 |
4 |
1900 |
13 |
1 |
无效 |
5 |
1900 |
2 |
0 |
无效 |
6 |
1900 |
2 |
29 |
1900/3/1 |
7 |
1900 |
2 |
30 |
无效 |
8 |
1901 |
2 |
28 |
1901/3/1 |
9 |
1901 |
2 |
29 |
无效 |
10 |
1900 |
4 |
30 |
1900/5/1 |
11 |
1900 |
4 |
31 |
无效 |
12 |
1900 |
5 |
31 |
1900/6/1 |
13 |
1900 |
5 |
32 |
无效 |
15 |
1900 |
12 |
31 |
1813/1/1 |
16 |
2050 |
12 |
31 |
无效 |
年无效(比年最小值小1、最大值大1),月和天均有效,输出无效。用例(1,2)
年有效,月无效(比月最小值小1、最大值大1),天有效,输出无效。用例(3,4)
年有效(闰年),2月,天无效(比最小值小1),输出无效。用例(5)
年有效(闰年),2月,29日,正常输出1900/3/1。用例(6)
年有效(闰年),2月,30日无效(比闰年2月最大天数大一),输出无效。用例(7)
年有效(非闰年),2月,28日,正常输出1901/3/1。用例(8)
年有效(非闰年),2月,39日无效(比非闰年2月最大天数大一),输出无效。用例(9)
年有效,月有效(小月),30日有效,输出1900/5/1。用例(10)
年有效,月有效(小月),31日无效(比小月最大天数大一),输出无效。用例(11)
年有效,月有效(大月),31日有效,输出1900/6/1。用例(12)
年有效,月有效(大月),32日无效(比大月最大天数大一),输出无效。用例(13)
年有效,月有效最大值,日有效最大值,输出1813/1/1,输出有效。用例(15)
年有效(最大值),月有效最大值12,日有效最大值31,输出无效,超出年的最大值。用例16
自己做的,也不知道对不对,欢迎指出错误和提出疑问。