问答题 某函数包含3个变量:month, day, year。函数的输出是输入日期后一天的日期。例如:若输入为2008年3月7日,则函数输出应为2008年3月8日。要求函数的变量输入month、day、year均为整数值,并且满足条件:1=<month<=12,1=<day<=31,2001=<year<=2008。
采用等价类法为该函数设计测试用例,写出具体的等价类划分。
【正确答案】
【答案解析】有效等价类:
M1={month: 1=<month<=12}
D1={day: 1=<day<=31}
Y1={year: 2001=<year<=2008}
无效等价类:
M2={month: month<1}
M3={month: month>12}
M4={month: month非数字}
D2={day: day<1}
D3={day: day>31}
D4={day: day非数字}
Y2={year: year<2001}
Y3={year: year>2008}
Y4={year: year非数字}
表1 等价类表格
输入条件 有效等价类 无效等价类
标识符个数 1个(1),多个(2) 0个(3)
标识符字符个数 1~8个(4) 0个(5),大于8个(6),大于80个(7)
标识符组成 字母(8),数字(9) 非字母数字字符(10),保留字(11)
标识符第一个字符 字母(12) 非字母(13)
标识符使用 先说明后使用(14) 未说明已使用(15)
表2 弱一般等价类测试用例
测试用例 a b c 预期输出
WN1 5 5 5 等边三角形,属等价类R1
WN2 2 2 3 等腰三角形,属等价类R2
WN3 3 4 5 不等边三角形,属等价类R3
WN4 4 1 2 非三角形,属等价类R4
表3 追加的弱健壮等价类测试用例(针对无效等价类)
测试用例 a b c 预期输出
WR1 -1 5 5 a取值不在所允许的取值值域内
WR2 5 -1 5 b取值不在所允许的取值值域内
WR3 5 5 -1 c取值不在所允许的取值值域内
WR4 201 5 5 a取值不在所允许的取值值域内
WR5 5 201 5 b取值不在所允许的取值值域内
WR6 5 5 201 c取值不在所允许的取值值域内
表4 追加的强健壮等价类测试用例(不良输入)
测试用例 a b c 预期输出
SR1 -1 5 5 a取值不在所允许的取值值域内
SR2 5 -1 5 b取值不在所允许的取值值域内
SR3 5 5 -1 c取值不在所允许的取值值域内
SR4 -1 -1 5 a、b取值不在所允许的取值值域内
SR5 5 -1 -1 b、c取值不在所允许的取值值域内
SR6 -1 5 -1 a、c取值不在所允许的取值值域内
SR7 -1 -1 -1 a、b、c取值不在所允许的取值值域内