一、流程图
二、测试用例设计
用例编号 |
覆盖方式 |
输入数据 | 预期结果 | 实际结果 | 测试结论 |
1 |
语句、条件覆盖 |
2051,1,1 | 年份超出范围 | 年份超出范围 | 通过 |
2 |
语句、条件覆盖 |
2000,0,31 | 月份超出范围 | 月份超出范围 | 通过 |
3 |
语句、条件覆盖 |
2014,3,32 | 日期超出范围 | 日期超出范围 | 通过 |
4 |
语句、条件覆盖 |
2000,2,30 | 日期超出范围 | 日期超出范围 | 通过 |
5 |
语句覆盖 |
2016,2,28 | 2016,2,29 |
2016,2,29 2016,2,29 |
不通过 |
6 |
语句、条件覆盖 |
2016,2,29 | 2016,3,1 | 2016,3,1 | 不通过 |
7 |
语句、条件覆盖 |
1987,4,30 | 1987,5,1 |
1987,5,1 1987,5,1 |
不通过 |
8 |
语句、条件覆盖 |
2050,12,31 | 1935,1,1 |
2051,12,31 2051,12,31 |
不通过 |
9 |
语句、条件覆盖 |
2016,1,31 | 2016,2,1 |
2016,2,1 2016,2,1 |
不通过 |
10 |
语句覆盖 |
1934,4,4 | 1934,4,5 | 1934,4,5 | 不通过 |
11 |
语句覆盖 |
1971,2,29 | 日期超出范围 | 1971,2,30 | 不通过 |
三、代码优化建议
1、缺少对非闰年2月的日期界限判断;
2、缺少返回值导致错误,如下图:
要在适当的语句块中添加return语句;
3、符合switch语句中if条件句的日期会出现两次输出,可以优化一下。