等价类划分:
输入条件 | 有效等价类 | 编号 | 无效等价类 | 编号 | ||
Year | >0 && <=9999 | 1 | <=0 || >999 | 7 | ||
Month | >0 && <=12 | 2 | <=0 || >12 | 8 | ||
Day | Month = 4/6/9/11 | >0 && <=30 | 3 | <=0 || >30 | 9 | |
Month = 1/3/5/7/8/10/12 | >0 && <=31 | 4 | <=0 || >31 | 10 | ||
Month = 2 | Year=leap | >0 && <=29 | 5 | <=0 || >29 | 11 | |
Year!=leap | >0 && <=28 | 6 | <=0 || >28 | 12 |
依据上述等价类的划分而设计的测试用例如下:
测试用例编号 | 输入数据 | 覆盖等价类 | 预计输出 | ||
Year | Month | Day | |||
1 | 2010 | 6 | 12 | 1,2,3 | Saturday |
2 | 2010 | 6 | 31 | 1,2,9 | Error |
3 | 0000 | 6 | 12 | 7,2,3 | Error |
4 | 2010 | 13 | 23 | 1,8 | Error |
5 | 2010 | 5 | 23 | 1,2,4 | Sunday |
6 | 2010 | 5 | 32 | 1,2,10 | Error |
7 | 2000 | 2 | 28 | 1,2,5 | Monday |
8 | 2000 | 2 | 30 | 1,2,11 | Error |
9 | 2010 | 2 | 29 | 1,2,12 | Error |
10 | 2010 | 2 | 1 | 1,2,6 | Monday |
这中等价类划分的测试方式没有任何问题。。。。但是,我们往下面看,问题就来了。
输入2001年6月25日 测试时的输出是 sunday,但是电脑windows系统上的时钟是monday
输入2005年7月23日 测试时的输出时 Friday,但是电脑windows系统上的时钟是 saturday
也就是说 有时候是正确的有时候却是错误的。
希望高手给我指正错误!