被测项目原博:http://www.cnblogs.com/ChenXh123/p/6800184.html
1.被测项目界面。
2.测试用例设计表
1)等价类划分:
输入 | 有效等价类 | 无效等价类 |
年份 | 1912~2050(1) | 小于1912(7) 大于2050(8) |
月份 | 1~12(2) | 小于1(9) 大于12(10) |
日期 | (1、3、5、7、8、10、12)月 范围为:1~31(3) (4、5、9、11)月 范围为:1~30(4) 闰年2月:1~29(5) 平年2月:1~28(6) | (1、3、5、7、8、10、12)月:小于1或大于31(11) (4、5、9、11)月:小于1或大于30(12) 闰年2月:小于1或大于29(13) 平年2月:小于1或大于28(14) |
测试用例:
用例号 | 覆盖用例 | 输入 | 期望输出 | 实际输出 | 结果 | 时间 | ||
年 | 月 | 日 | ||||||
1 | 1、2 | 2017 | 4 | 8 | 6 2017年4月9日 2017年4月7日 | 6 2017年4月9日 2017年4月7日 | √ | 2017.5.8 |
2 | 3 | 2017 | 1 | 3 | 2 2017年1月4日 2017年1月2日 | 2 2017年1月4日 2017年1月2日 | √ | 2017.5.8 |
3 | 4 | 2017 | 4 | 20 | 4 2017年4月21日 2017年4月19日 | 4 2017年4月21日 2017年4月19日 | √ | 2017.5.8 |
4 | 5 | 2016 | 2 | 20 | 6 2016年2月21日 2016年2月19日 | 6 2016年2月21日 2016年2月19日 | √ | 2017.5.8 |
5 | 6 | 2017 | 2 | 19 | 7 2017年2月20日 2016年2月18日 | 7 2017年2月20日 2016年2月18日 | √ | 2017.5.8 |
6 | 7 | 1911 | 3 | 4 | 年份超出范围! | 年份超出范围! | √ | 2017.5.8 |
7 | 8 | 2052 | 1 | 4 | 年份超出范围! | 年份超出范围! | √ | 2017.5.8 |
8 | 9 | 2017 | 0 | 4 | 输入有误,请重新输入! | 输入有误,请重新输入! | √ | 2017.5.8 |
9 | 10 | 2017 | 13 | 5 | 月份超出范围! | 月份超出范围! | √ | 2017.5.8 |
10 | 11 | 2017 | 1 | 0 | 日期超出范围! | 日期超出范围! | √ | 2017.5.8 |
11 | 11 | 2017 | 3 | 32 | 日期超出范围! | 日期超出范围! | √ | 2017.5.8 |
12 | 12 | 2017 | 4 | 0 | 日期超出范围! | 日期超出范围! | √ | 2017.5.8 |
13 | 12 | 2017 | 4 | 33 | 日期超出范围! | 日期超出范围! | √ | 2017.5.8 |
14 | 13 | 2016 | 2 | 0 | 日期超出范围! | 日期超出范围! | √ | 2017.5.8 |
15 | 13 | 2016 | 2 | 31 | 日期超出范围! | 日期超出范围! | √ | 2017.5.8 |
16 | 14 | 2017 | 2 | 0 | 日期超出范围! | 日期超出范围! | √ | 2017.5.8 |
17 | 14 | 2017 | 2 | 31 | 日期超出范围! | 日期超出范围! | √ | 2017.5.8 |
2)边界值法:
输入 | 等价类 | 边界值 |
年份 | 1912~2050(1) | 1911、1912、2050、2051 |
月份 | 1~12(2) | 0、1、12、13 |
日期 | (1、3、5、7、8、10、12)月 范围为:1~31(3) (4、5、9、11)月 范围为:1~30(4) 闰年2月:1~29(5) 平年2月:1~28(6) | (1、3、5、7、8、10、12)月:0、1、31、32 (4、5、9、11)月:0、1、30 31 闰年2月:0、1、29、30平年2月:0、1、28、29 |
测试用例:
用例号 | 覆盖边界值 | 输入 | 期望输出 | 实际输出 | 结果 | 时间 | ||
年 | 月 | 日 |
|
|
|
| ||
1 | 年份为1911 | 1911 | 4 | 8 | 年份超出范围! | 年份超出范围! | √ | 2017.5.9 |
2 | 年份为1912 | 1912 | 3 | 8 | 5 1912年3月9日 1912年3月7日 | 5 1912年3月9日 1912年3月7日 | √ | 2017.5.9 |
3 | 年份为2050 | 2050 | 5 | 8 | 7 2050年3月9日 2050年3月7日 | 7 2050年3月9日 2050年3月7日 | √ | 2017.5.9 |
4 | 年份为2051 | 2051 | 6 | 8 | 年份超出范围! | 年份超出范围! | √ | 2017.5.9 |
5 | 月份为0 | 2017 | 0 | 8 | 月份超出范围! | 月份超出范围! | √ | 2017.5.9 |
6 | 月份为1 | 2017 | 1 | 8 | 7 2017年1月9日 2017年1月7日 | 7 2017年1月9日 2017年1月7日 | √ | 2017.5.9 |
7 | 月份为13 | 2017 | 13 | 8 | 月份超出范围! | 月份超出范围! | √ | 2017.5.9 |
8 | 月份为12 | 2017 | 12 | 8 | 5 2017年12月9日 2017年12月7日 | 5 2017年12月9日 2017年12月7日
| √ | 2017.5.9 |
9 | (1、3、5、7、8、10、12)月日期为0 | 2017 | 1 | 0 | 日期超出范围! | 日期超出范围! | √ | 2017.5.9 |
10 | (1、3、5、7、8、10、12)月日期为1 | 2017 | 1 | 1 | 7 2017年1月2日 2016年12月31日 | 7 2017年1月2日 2016年12月31日 | √ | 2017.5.9 |
11 | (1、3、5、7、8、10、12)月日期为31 | 2017 | 3 | 31 | 5 2017年4月1日 2017年3月30日 | 5 2017年4月1日 2017年3月30日 | √ | 2017.5.9 |
12 | (1、3、5、7、8、10、12)月日期为32 | 2017 | 3 | 32 | 日期超出范围! | 日期超出范围! | √ | 2017.5.9 |
13 | (4、5、9、11)月日期为0 | 2017 | 4 | 0 | 日期超出范围! | 日期超出范围! | √ | 2017.5.9 |
14 | (4、5、9、11)月日期为1 | 2017 | 4 | 1 | 6 2017年4月2日 2017年3月31日 | 6 2017年4月2日 2017年3月31日 | √ | 2017.5.9 |
15 | (4、5、9、11)月日期为30 | 2017 | 6 | 30 | 5 2017年7月1日 2017年6月29日 | 5 2017年7月1日 2017年6月29日 | √ | 2017.5.9 |
16 | (4、5、9、11)月日期为31 | 2017 | 6 | 31 | 日期超出范围! | 日期超出范围! | √ | 2017.5.9 |
17 | 闰年2月,日期为0 | 2016 | 2 | 0 | 日期超出范围! | 日期超出范围! | √ | 2017.5.9 |
18 | 闰年2月,日期为1 | 2016 | 2 | 1 | 1 2016年2月2日 2016年1月31日 | 1 2016年2月2日 2016年1月31日 | √ | 2017.5.9 |
19 | 闰年2月,日期为29 | 2016 | 2 | 29 | 1 2016年3月1日 2016年2月28日 | 1 2016年3月1日 2016年2月28日 | √ | 2017.5.9 |
20 | 平年2月,日期为30 | 2016 | 2 | 30 | 日期超出范围! | 日期超出范围! | √ | 2017.5.9 |
21 | 平年2月,日期为0 | 2017 | 2 | 0 | 日期超出范围! | 日期超出范围! | √ | 2017.5.9 |
21 | 平年2月,日期为1 | 2017 | 2 | 1 | 3 2017年2月2日 2017年1月31日 | 3 2017年2月2日 2017年1月31日 | √ | 2017.5.9 |
22 | 平年2月,日期为29 | 2017 | 2 | 29 | 日期超出范围! | 日期超出范围! | √ | 2017.5.9 |
3)决策表法:
条件桩:
Y1={year:闰年};
Y2={year:平年};
M1={month:30天};
M2={month:31天,除12月以外};
M3={month:12月};
M4={month:2月}
D1={day:1<=日<=27};
D2={day:日=28};
D3={day:日=29};
D4={day:日=30};
D5={day:日=31};
决策表:
1~3 | 4 | 5 | 6~9 | 10 | 11~14 | 15 | 16 | 17 | 18 | 19 | 20 | 21~22 | ||
条件 | month | M1 | M1 | M1 | M2 | M2 | M3 | M3 | M3 | M4 | M4 | M4 | M4 | M4 |
day | D1~ D3 | D4 | D5 | D1 ~ D4 | D5 | D1 ~ D4 | D5 | D1 | D2 | D2 | D3 | D3 | D4 D5 | |
year | - | - | - | - | - | - | - | - | Y1 | Y2 | Y1 | Y2 | - | |
动作 | 无效 |
|
| √ |
|
|
|
|
|
|
|
| √ | √ |
day加1 | √ |
|
| √ |
| √ |
| √ | √ |
|
|
|
| |
day复位 |
| √ |
|
| √ |
| √ |
|
| √ | √ |
|
| |
month加1 |
| √ |
|
| √ |
|
|
|
| √ | √ |
|
| |
month加复位 |
|
|
|
|
|
| √ |
|
|
|
|
|
| |
year加1 |
|
|
|
|
|
| √ |
|
|
|
|
|
|
测试用例:
用例号 | 输入 | 期望输出 | 实际输出 | 结果 | 时间 | ||
年 | 月 | 日 | |||||
1 | 2017 | 4 | 3 | 3 2017年4月4日 2017年4月2日 | 3 2017年4月4日 2017年4月2日 | √ | 2017.5.10 |
2 | 2017 | 4 | 30 | 3 2017年4月4日 2017年4月2日 | 3 2017年4月4日 2017年4月2日 | √ | 2017.5.10 |
3 | 2017 | 4 | 31 | 输入有误,请重新输入! | 输入有误,请重新输入! | √ | 2017.5.10 |
4 | 2017 | 3 | 3 | 5 2017年3月4日 2017年3月2日 | 5 2017年3月4日 2017年3月2日 | √ | 2017.5.10 |
5 | 2017 | 3 | 31 | 5 2017年4月1日 2017年3月30日 | 5 2017年4月1日 2017年3月30日 | √ | 2017.5.10 |
6 | 2017 | 3 | 31 | 5 2017年4月1日 2017年3月30日 | 5 2017年4月1日 2017年3月30日 | √ | 2017.5.10 |
7 | 2017 | 12 | 31 | 7 2018年1月1日 2017年12月30日 | 7 2018年1月1日 2017年12月30日 | √ | 2017.5.10 |
8 | 2017 | 2 | 10 | 5 2017年2月11日 2017年2月9日 | 5 2017年2月11日 2017年2月9日 | √ | 2017.5.10 |
9 | 2016 | 2 | 28 | 7 2016年2月29日 2016年2月27日 | 7 2016年2月29日 2016年2月27日 | √ | 2017.5.10 |
10 | 2017 | 2 | 28 | 2 2017年3月1日 2016年2月27日 | 2 2017年3月1日 2017年2月27日 | √ | 2017.5.10 |
11 | 2016 | 2 | 29 | 1 2016年3月1日 2016年2月28日 | 1 2016年3月1日 2016年2月28日 | √ | 2017.5.10 |
12 | 2017 | 2 | 29 | 输入有误,请重新输入! | 输入有误,请重新输入! | √ | 2017.5.10 |
13 | 2017 | 2 | 31 | 输入有误,请重新输入! | 输入有误,请重新输入! | √ | 2017.5.10 |
3.测试结论
根据所设计的测试用例,程序测试通过,在本次实验中,发现等价类划分法能够比较简单地通过划分等价类进行测试,操作比较简单,在简单的程序中可以利用等价类划分法,边界值法有利于发现缺陷,在较大较复杂的程序用决策表会比较合理,能够简化逻辑,做到不漏测。
4.给开发同学的建议
本次测试均通过,暂没有修改建议。