测试链接:http://www.cnblogs.com/wxcclub/p/6792634.html
一、被测项目界面。
二、测试用例设计表
1.等价类
等价类划分法 | ||||
输入及外部条件 | 有效等价类 | 等价类编号 | 无效等价类 | 等价类编号 |
日期类型 | 数字 | 1 | 非数字 | 8 |
年 | 1912≤year≤2050 | 2 | year<1912 | 9 |
year>2050 | 10 | |||
月 | 1≤month≤12 | 3 | month<1 | 11 |
month>12 | 12 | |||
非闰年2月 | 1<=day<=28 | 4 | day<1 | 13 |
day>28 | 14 | |||
闰年2月 | 1<=day<=29 | 5 | day<1 | 15 |
day>29 | 16 | |||
小月(30天) | 1<=day<=30 | 6 | day<1 | 17 |
day>30 | 18 | |||
大月(31天) | 1<=day<=31 | 7 | day<1 | 19 |
day>31 | 20 |
有效等价类测试用例 | 测试结果 | |||||||||||
测试用例 | 覆盖等价类编号 | 输入 | 期望输出 | 实际输出 | ||||||||
year | month | day | 下一天 | 上一天 | 星期 | 下一天 | 上一天 | 星期 | ||||
1 | 1234 | 2001 | 2 | 15 | 2001年2月16日 | 2001年2月14日 | 星期四 | 2001年2月16日 | 2001年2月14日 | 星期四 | √ | |
2 | 1235 | 2008 | 2 | 16 | 2008年2月17日 | 2008年2月15日 | 星期六 | 2008年2月17日 | 2008年2月15日 | 星期六 | √ | |
3 | 1236 | 2017 | 4 | 17 | 2017年4月18日 | 2017年4月16日 | 星期一 | 2017年4月18日 | 2017年4月16日 | 星期一 | √ | |
4 | 1237 | 2017 | 5 | 18 | 2017年5月19日 | 2017年5月17日 | 星期四 | 2017年5月19日 | 2017年5月17日 | 星期四 | √ | |
无效等价类测试用例 | 测试结果 | ||||||||||
测试用例 | 覆盖等价类编号 | 输入 | 期望输出 | 实际输出 | |||||||
year | month | day | 下一天 | 上一天 | 星期几 | 下一天 | 上一天 | 星期几 | |||
1 | 8 | a | b | 12.2 | 月份超出范围 | 程序异常 | × | ||||
2 | 9,3,7 | 1910 | 5 | 15 | 年份超出范围 | 1910年5月16日 | 1910年5月14日 | null | × | ||
3 | 10,3,7 | 2052 | 5 | 15 | 年份超出范围 | 2052年5月16日 | 2052年5月14日 | null | × | ||
4 | 2,11,7 | 2017 | 0 | 5 | 月份超出范围 | 2017年0月6日 | 2017年0月4日 | null | × | ||
5 | 2,12,7 | 2017 | 13 | 1 | 月份超出范围 | 2017年13月2日 | 2017年12月31日 | null | × | ||
6 | 2,3,13 | 2017 | 2 | 0 | 日期超出范围 | 2017年2月1日 | 2017年2月-1日 | null | × | ||
7 | 2,3,14 | 2017 | 2 | 29 | 输入错误(自定义错误) | 2017年2月30日 | 2017年2月28日 | 星期三 | × | ||
8 | 2,3,15 | 2008 | 2 | 0 | 日期超出范围 | 2008年2月1日 | 2008年2月-1日 | null | × | ||
9 | 2,3,16 | 2008 | 2 | 30 | 输入错误(自定义错误) | 2008年2月31日 | 2008年2月29日 | null | × | ||
10 | 2,3,17 | 2017 | 5 | 0 | 日期超出范围 | 2017年5月1日 | 2017年5月-1日 | 星期三 | × | ||
11 | 2,3,18 | 2017 | 4 | 31 | 输入错误(自定义错误) | 2017年4月32日 | 2017年4月30日 | 星期一 | × | ||
12 | 2,3,19 | 2017 | 5 | 0 | 日期超出范围 | 2017年5月1日 | 2017年5月-1日 | 星期一 | × | ||
13 | 2,3,20 | 2017 | 5 | 32 | 日期超出范围 | 2017年5月33日 | 2017年5月31日 | 星期一 | × | ||
测试结果:不通过!
2.边界值
测试用例 | 输入保留 | 输入 | 期望输出 | 实际输出 | 测试结果 | ||||||
year | month | day | 下一天 | 上一天 | 星期 | 下一天 | 上一天 | 星期 | |||
1 | 年 | 1911 | 1 | 2 | 年份超出范围 | 1911年1月3日 | 1911年1月1日 | null | × | ||
2 | 1912 | 1 | 2 | 1912年1月3日 | 1912年1月1日 | 星期二 | 1912年1月3日 | 1912年1月1日 | null | × | |
3 | 1913 | 1 | 2 | 1913年1月3日 | 1913年1月1日 | 星期三 | 1913年1月3日 | 1913年1月1日 | null | × | |
4 | 2000 | 1 | 2 | 2000年1月3日 | 2000年1月1日 | 星期日 | 2000年1月3日 | 2000年1月1日 | 星期日 | √ | |
5 | 2049 | 1 | 2 | 2049年1月3日 | 2049年1月1日 | 星期六 | 2049年1月3日 | 2049年1月1日 | 星期六 | √ | |
6 | 2050 | 1 | 2 | 2050年1月3日 | 2050年1月1日 | 星期日 | 2050年1月3日 | 2050年1月1日 | 星期日 | √ | |
7 | 2051 | 1 | 2 | 年份超出范围 | 2051年1月3日 | 2051年1月1日 | null | × | |||
8 | 月 | 2017 | 0 | 2 | 月份超出范围 | 2017年0月3日 | 2017年0月1日 | 星期日 | × | ||
9 | 2017 | 1 | 2 | 2017年1月3日 | 2017年1月1日 | 星期一 | 2017年1月3日 | 2017年1月1日 | 星期一 | √ | |
10 | 2017 | 2 | 2 | 2017年2月3日 | 2017年2月1日 | 星期四 | 2017年2月3日 | 2017年2月1日 | 星期四 | √ | |
11 | 2017 | 11 | 2 | 2017年11月3日 | 2017年11月1日 | 星期四 | 2017年11月3日 | 2017年11月1日 | 星期四 | √ | |
12 | 2017 | 12 | 2 | 2017年12月3日 | 2017年12月1日 | 星期六 | 2017年12月3日 | 2017年12月1日 | 星期六 | √ | |
13 | 2017 | 13 | 2 | 月份超出范围 | 2017年13月3日 | 2017年13月1日 | 星期日 | × | |||
14 | 日 | 2017 | 1 | 0 | 日期超出范围 | 2017年1月1日 | 2017年1月-1日 | 星期六 | × | ||
15 | 2017 | 1 | 1 | 2017年1月2日 | 2016年12月31日 | 星期日 | 2017年1月2日 | 2016年12月31日 | 星期日 | √ | |
16 | 2017 | 1 | 2 | 2017年1月3日 | 2017年1月1日 | 星期一 | 2017年1月3日 | 2017年1月1日 | 星期一 | √ | |
17 | 2017 | 1 | 30 | 2017年1月31日 | 2017年1月29日 | 星期一 | 2017年1月31日 | 2017年1月29日 | 星期一 | √ | |
18 | 2017 | 1 | 31 | 2017年2月1日 | 2017年1月30日 | 星期二 | 2017年2月1日 | 2017年1月30日 | 星期二 | √ | |
19 | 2017 | 1 | 32 | 日期超出范围 | 2017年1月33日 | 2017年1月31日 | 星期三 | × |
测试结果:不通过!
3.决策表
决策表 | |||||||
条件 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
1912≤ year ≤2050 | - | - | - | - | - | F | T |
1≤ month ≤12 | F | T | T | T | T | T | T |
非闰年2月1<=day<=28 | - | F | - | - | - | T | T |
闰年2月1<=day<=29 | - | - | F | - | - | T | T |
小月1<=day<=30 | - | - | F | - | T | T | |
大月1<=day<=31 | - | - | - | - | F | T | T |
动作 | |||||||
月份超出范围 | √ | ||||||
日期超出范围 | √ | √ | √ | √ | |||
年份超出范围 | √ | ||||||
计算上/下一天、星期 | √ |
决策表测试用例 | 测试结果 | |||||||||||
测试用例 | 覆盖等价类编号 | 输入 | 期望输出 | 实际输出 | ||||||||
year | month | day | 下一天 | 上一天 | 星期 | 下一天 | 上一天 | 星期 | ||||
1 | 1 | 2017 | 0 | 5 | 月份超出范围 | 2017年0月6日 | 2017年0月4日 | null | × | |||
2 | 2 | 2017 | 2 | 29 | 日期超出范围 | 2017年2月30日 | 2017年2月28日 | 星期三 | × | |||
3 | 3 | 2008 | 2 | 30 | 日期超出范围 | 2008年2月31日 | 2008年2月29日 | null | × | |||
4 | 4 | 2017 | 4 | 31 | 日期超出范围 | 2017年4月32日 | 2017年4月30日 | 星期一 | × | |||
5 | 5 | 2017 | 5 | 32 | 日期超出范围 | 2017年5月33日 | 2017年5月31日 | 星期一 | × | |||
6 | 6 | 1910 | 5 | 15 | 年份超出范围 | 1910年5月16日 | 1910年5月14日 | null | × | |||
7 | 7 | 2017 | 5 | 18 | 2017年5月19日 | 2017年5月17日 | 星期四 | 2017年5月19日 | 2017年5月17日 | 星期四 | √ | |
测试结果:不通过!
三、测试结论
对于正确输入除了对于边界的1912,1913没有给他计算星期其它测试基本通过,但是没有对不正确输入进行处理,不正确输入包括题目要求和常识要求。
四、给开发同学的建议
1.将输入框内容放到字符串变量中,利用正则表达式判断输入是否为数字
2.限制题目要求的条件: 条件1 1≤ month ≤12 否则输出,月份超出范围
条件2 1≤ day ≤31 否则输出,日期超出范围
条件3 1912≤ year ≤2050 否则输出:年份超出范围
3.注意闰年与非闰年2月,和大小月相应的日期,设置错误提示