(1)程序流程图

(2)测试用例设计
|
覆盖方式 |
用例号 |
输入 |
期待结果 |
实际结果 |
通过 |
时间 |
|
判断覆盖 |
1 |
1911 1 1 |
年份超出范围 |
年份超出范围 |
√ |
|
|
判断覆盖 |
2 |
2017 0 5 |
月份超出范围 |
月份超出范围 |
√ |
|
|
判断覆盖 |
3 |
2017 3 20 |
2017年3月21日 |
2017年3月21日 |
√ |
|
|
判断覆盖 |
4 |
2017 3 31 |
2017年4月1日 |
2017年4月1日 |
√ |
|
|
判断覆盖 |
5 |
2017 12 31 |
2018年1月1日 |
2018年1月1日 |
√ |
|
|
判断覆盖 |
6 |
2017 3 32 |
日期超出范围 |
日期超出范围 |
√ |
|
|
判断覆盖 |
7 |
2017 4 29 |
2017年4月30日 |
日期超出范围 |
× |
|
|
判断覆盖 |
8 |
2017 4 30 |
2017年5月1日 |
2017年5月1日 |
√ |
|
|
判断覆盖 |
9 |
2017 4 31 |
日期超出范围 |
日期超出范围 |
√ |
|
|
判断覆盖 |
10 |
2016 2 28 |
2016年2月29日 |
日期超出范围 |
× |
|
|
判断覆盖 |
11 |
2016 2 29 |
2016年3月1日 |
2016年3月1日 |
√ |
|
|
判断覆盖 |
12 |
2016 2 30 |
日期超出范围 |
日期超出范围 |
√ |
|
|
判断覆盖 |
13 |
2017 2 27 |
2017年2月28日 |
日期超出范围 |
× |
|
|
判断覆盖 |
14 |
2017 2 28 |
2017年3月1日 |
2017年3月1日 |
√ |
|
|
判断覆盖 |
15 |
2017 2 29 |
日期超出范围 |
日期超出范围 |
√ |
|
(3)测试结果
基本上是正确的,但是在判断日期的时候,小月(只有30天)的第29天以及2月的第28天(闰年)和第27天(非闰年)没有包含在内,有一点小瑕疵。
(4)代码优化建议
public static boolean isLeapYear(int y) { if((y % 4 == 0 && y % 100 != 0)||y % 400 == 0) return true; else return false; }
if(isLeapYear(y))
isLeapYear()是多余的,在判断是否为闰年的时候,直接在if语句里判断就可以了
还有就是测试结果的小瑕疵,后面加上“=”就可以了
if(1 <= 1d && d < 29) if(1 <= d && d < 28) if(1 <= d && d < 27)
浙公网安备 33010602011771号