开发人员代码:http://www.cnblogs.com/linpanhuang/p/6790891.html
1)被测项目界面。
2)测试用例设计表
等价类
输入条件 | 有效等价类 | 编号 | 无效等价类 | 编号 |
年 | 1912≤year≤2050 | ① | year<1912 | ② |
Year>2050 | ③ | |||
非数字 | ||||
月 | Month= 1,3,5,7,8,10,12 | ④ | Month<1 | ⑤ |
Month= 4,6,9,11 | month>12 | ⑥ | ||
Month= 2 | 非数字 | |||
日 | 1≤ day ≤31 | ⑦ | day<1 | ⑧ |
Day>311 | ⑨ | |||
非数字 |
测试用例表
测试用例编号 | 输入数据 | 预期输出 | 实际结果 | 通过与否 | ||||||
Year | Month | Day | 这天是星期 | 上一天是 | 下一天是 | 这天是星期 | 上一天是 | 下一天是 | ||
1 | 2000 | 12 | 6 | 三
| 2000年12月5日
| 2000年12月7日 | 三
| 2000年12月5日
| 2000年12月7日 | 通过 |
2 | 2000 | 6 | 30 | 五
| 2000年6月29日 | 2000年7月1日 | 五
| 2000年6月29日 | 2000年7月1日 | 通过 |
3 | 2000 | 2 | 28 | 一
| 2000年2月27日 | 2000年2月29日 | 一
| 2000年2月27日 | 2000年2月29日 | 通过 |
4 | 2055 | 12 | 1 |
| 年份超出范围 | 年份超出范围 |
| 年份超出范围 | 年份超出范围 | 通过 |
5 | 2000 | 13 | 1 |
| 月份超出范围 | 月份超出范围 |
| 月份超出范围 | 月份超出范围 | 通过 |
6 | 2000 | 12 | 32 |
| 日期超出范围 | 日期超出范围 |
| 日期超出范围 | 日期超出范围 | 通过 |
7 | 1900 | 12 | 1 |
| 年份超出范围 | 年份超出范围 |
| 年份超出范围 | 年份超出范围 | 通过 |
8 | 2000 | 0 | 1 |
| 月份超出范围 | 月份超出范围 |
| 月份超出范围 | 月份超出范围 | 通过 |
9 | 1999 | 2 | 30 |
| 日期超出范围 | 日期超出范围 |
| 日期超出范围 | 日期超出范围 | 通过 |
10 | a | 2 | 12 |
| 年份超出范围 | 年份超出范围 | 程序出现异常 | 不通过 | ||
11 | 2000 | 2s | 10 |
| 月份超出范围 | 月份超出范围 | 程序出现异常 | 不通过 | ||
12 | 2000 | 2 | Jk |
| 日期超出范围 | 日期超出范围 | 程序出现异常 | 不通过 |
边界值分析法
边界值: 1992≤year≤2050 1≤Month≤12,1≤ day ≤31
测试用例编号 | 输入数据 | 预期输出 | 实际结果 | 通过与否 | ||||||
Year | Month | Day | 这天是星期 | 上一天是 | 下一天是 | 这天是星期 | 上一天是 | 下一天是 | ||
1 | 1911 | 12 | 6 |
| 年份超出范围 | 年份超出范围 |
| 年份超出范围 | 年份超出范围 | 通过 |
2 | 1912-1992 | 12 | 6 | 五 | 1912-1992年12月5日 | 1912-1992年12月7日 |
| 年份超出范围 | 年份超出范围 | 不通过 |
3 | 2049 | 12 | 7 | 二 | 2049年12月6日 | 2049年12月8日 | 二 | 2049年12月6日 | 2049年12月8日 | 通过 |
4 | 2050 | 12 | 7 | 三 | 2050年12月6日 | 2050年12月8日 | 三 | 2050年12月6日 | 2050年12月8日 | 通过 |
5 | 2051 | 12 | 7 |
| 年份超出范围 | 年份超出范围 |
| 年份超出范围 | 年份超出范围 | 通过 |
6 | 2000 | 11 | 7 | 二 | 2000年11月6日 | 2000年11月8日 | 二 | 2000年11月6日 | 2000年11月8日 | 通过 |
7 | 2000 | 12 | 7 | 四 | 2000年12月6日 | 2000年12月8日 | 四 | 2000年12月6日 | 2000年12月8日 | 通过 |
8 | 2000 | 13 | 7 |
| 月份超出范围 | 月份超出范围 |
| 月份超出范围 | 月份超出范围 | 通过 |
9 | 2000 | 2 | 28 | 一 | 2000年2月27日 | 2000年2月29日 | 一 | 2000年2月27日 | 2000年2月29日 | 通过 |
10 | 2000 | 2 | 29 | 二 | 2000年2月28日 | 2000年3月1日 | 一 | 2000年2月28日 | 2000年3月1日 | 不通过 |
11 | 2000 | 2 | 30 |
| 日期超出范围 | 日期超出范围 |
| 日期超出范围 | 日期超出范围 | 通过 |
12 | 2000 | 12 | 30 | 六 | 2000年12月29日 | 2000年12月31日 | 六 | 2000年12月29日 | 2000年12月31日 | 通过 |
13 | 2000 | 12 | 31 | 日 | 2000年12月30日 | 2001年1月1日 | 日 | 2000年12月30日 | 2001年1月1日 | 通过 |
14 | 2000 | 12 | 32 |
| 日期超出范围 | 日期超出范围 |
| 日期超出范围 | 日期超出范围 | 通过 |
15 | 2000 | 4 | 29 | 六 | 2000年4月28 | 2000年4月28 | 六 | 2000年4月28 | 2000年4月28 | 通过 |
16 | 2000 | 4 | 30 | 日 | 2000年4月29日 | 2000年4月29日 | 日 | 2000年4月29日 | 2000年4月29日 | 通过 |
17 | 2000 | 4 | 31 |
| 日期超出范围 | 日期超出范围 |
| 日期超出范围 | 日期超出范围 | 通过 |
决策表
M1:{month:month有30天}
M2:{month:month有31天,12月除外}
M3:{month:month有12月}
M4:{month:month有2月}
D1:{day:1≤day≤27}
D2:{day:day=28}
D3:{day:day=29}
D4:{day:day=30}
D5:{day:day=31}
Y1:{year:year是润年}
Y2:{year:year不是润年}
规则1-5处理30天的月份
规则6-10和规则11-15处理有31天的月份,其中规则6-10处理12月之外的月份
规则11-15处理12月,不肯能规则也列出。
规则16-22关注闰年和2月问题
规则 | 1-3 | 4 | 5 | 6-9 | 10 | 11-14 | 15 | 16 | 17 | 18 | 19 | 20 | 21-22 | ||
C1:month在 | M1 | M1 | M1 | M2 | M2 | M3 | M3 | M4 | M4 | M4 | M4 | M4 | M4 | ||
C2:day在 | D1-D3 | D4 | D5 | D1-D4 | D5 | D1-D4 | D5 | D1 | D2 | D2 | D3 | D3 | D4-D5 | ||
C3:yer在 | - | - | - | - | - | - | - | - | Y1 | Y2 | Y1 | Y2 | - | ||
动作 | |||||||||||||||
a1:不可能 |
|
| 成立 |
|
|
|
|
|
|
|
| 成立 | 成立 | ||
a2:day加1 | 成立 |
|
| 成立 |
| 成立 |
| 成立 | 成立 |
|
|
|
| ||
a3:day复位 |
| 成立 |
|
| 成立 |
| 成立 |
|
| 成立 | 成立 |
|
| ||
a4:month加1 |
| 成立 |
|
| 成立 |
|
|
|
| 成立 | 成立 |
|
| ||
a5:month复位 |
|
|
|
|
|
| 成立 |
|
|
|
|
|
| ||
a6:year加1 |
|
|
|
|
|
| 成立 |
|
|
|
|
|
|
测试用例
测试用例编号 | 输入数据 | 预期输出 | 实际结果 | 通过与否 | ||||||
Year | Month | Day | 这天是星期 | 上一天是 | 下一天是 | 这天是星期 | 上一天是 | 下一天是 | ||
1-3 | 2001 | 8 | 16 |
四 | 2001年8月15日 | 2001年8月17日 |
四 | 2001年8月15日 | 2001年8月17日 | 通过 |
4 | 2004 | 8 | 30 | 一 | 2004年8月29日 | 2004年8月31日 | 一 | 2004年8月29日 | 2004年8月31日 | 通过 |
5 | 2001 | 9 | 31 |
| 日期超出范围 | 日期超出范围 |
| 日期超出范围 | 日期超出范围 | 通过 |
6-9 | 2004 | 1 | 16 | 五 | 2004年1月15日 | 2004年1月17日 | 五 | 2004年1月15日 | 2004年1月17日 | 通过 |
10 | 2001 | 1 | 31 | 三 | 2001年1月30日 | 2002年2月1 | 三 | 2001年1月30日 | 2001年2月1 | 不通过 |
11-14 | 2004 | 12 | 16 | 四 | 2004年12月15日 | 2004年12月17日 | 四 | 2004年12月15日 | 2004年12月17日 | 通过 |
15 | 2001 | 12 | 31 | 一 | 2001年12月30日 | 2002年1月1日 | 一 | 2001年12月30日 | 2002年1月1日 | 通过 |
16 | 2004 | 2 | 16 | 一 | 2004年2月15日 | 2004年2月17日 | 一 | 2004年2月15日 | 2004年2月17日 | 通过 |
17 | 2004 | 2 | 28 | 六 | 2004年2月27日 | 2004年2月29日 | 六 | 2004年2月27日 | 2004年2月29日 | 通过 |
18 | 2001 | 2 | 28 | 三 | 2001年2月27日 | 2001年3月1日 | 三 | 2001年2月27日 | 2001年3月1日 | 通过 |
19 | 2004 | 2 | 29 | 日 | 2004年2月28日 | 2004年3月1日 | 三 | 2004年2月28日 | 2004年3月1日 | 不通过 |
20 | 2001 | 2 | 29 |
| 日期超出范围 | 日期超出范围 |
| 日期超出范围 | 日期超出范围 | 通过 |
21-22 | 2004 | 2 | 30 |
| 日期超出范围 | 日期超出范围 |
| 日期超出范围 | 日期超出范围 | 通过 |
3)测试结论
在等价类测试中,通过寻找等价关系可大大减少工作量,同时可以测试有效类与无效类对测序进行测试正确与否。在边界类测试中,最容易找出程序的缺陷所在,对边界值的确认得到进一步的保证。在决策表中表的规模较大,可将问题进行分解使条件的分配组合更为合理。
4)给开发同学的建议
该程序的年限内范围是从1912-2050,而程序中只有1992-2050在此需要改进,同时在边界值,尤其是月份的时候要注意年的+1以及在天数时月的加一。测试中的不通过用例需对此进行改进。