第一次作业+105032014020
一、流程图

二、测试用例设计和结果。
year,month,day分别缩写为y,m,d.
|
覆盖方式 |
序号 |
输入数据 |
期待结果 |
实际结果结果 |
通过 |
|
判定覆盖 |
1 |
y=2016 m=1 d=1 |
2016年1月2日 |
2016,1,2 |
× |
|
判定覆盖 |
2 |
y=2015 m=12 d=30 |
2015年12月31日 |
2015,12,31 |
× |
|
判定覆盖 |
3 |
y=2015 m=12 d=31 |
2016年1月1日 |
2016,1,1 |
× |
|
判定覆盖 |
4 |
y=2016 m=2 d=28 |
2016年2月29日 |
2016,2,29 |
× |
|
判定覆盖 |
5 |
y=2016 m=2 d=29 |
2016年3月1日 |
2016,3,1 |
× |
|
判定覆盖 |
6 |
y=2016 m=3 d=1 |
2016年3月2日 |
2016,3,2 |
× |
|
判定覆盖 |
7 |
y=2016 m=3 d=30 |
2016年3月31日 |
2016,3,31 |
× |
|
判定覆盖 |
8 |
y=2016 m=3 d=31 |
2016年4月1日 |
2016,4,1 |
× |
|
判定覆盖 |
9 |
y=2016 m=3 d=32 |
日期超出范围 |
日期超出范围 |
√ |
|
判定覆盖 |
10 |
y=2000 m=2 d=28 |
2000年2月29日 |
2000,2,29 |
× |
|
判定覆盖 |
11 |
y=2000 m=2 d=29 |
2000年3月1日 |
2000,3,1 |
× |
|
判定覆盖 |
12 |
y=2000 m=2 d=30 |
日期超出范围 |
日期超出范围 |
√ |
|
判定覆盖 |
13 |
y=2000 m=3 d=1 |
2000年3月2日 |
2000,3,2 |
× |
|
判定覆盖 |
14 |
y=2015 m=2 d=27 |
2015年2月28日 |
2015,2,28 |
× |
|
判定覆盖 |
15 |
y=2015 m=2 d=28 |
2015年3月1日 |
2015,3,1 |
× |
|
判定覆盖 |
16 |
y=2015 m=2 d=29 |
日期超出范围 |
日期超出范围 |
√ |
|
判定覆盖 |
17 |
y=2015 m=3 d=1 |
2015年3月2日 |
2015,3,2, |
× |
|
判定覆盖 |
18 |
y=2015 m=4 d=29 |
2015年4月30日 |
2015,4,30, |
× |
|
判定覆盖 |
19 |
y=2015 m=4 d=30 |
2015年5月1日 |
2015,5,1, |
× |
|
判定覆盖 |
20 |
y=2015 m=5 d=1 |
2015年5月2日 |
2015,5,2, |
× |
|
判定覆盖 |
21 |
y=2015 m=8 d=30 |
2015年8月31日 |
2015,8,31, |
× |
|
判定覆盖 |
22 |
y=2015 m=8 d=31 |
2015年9月1日 |
2015,9,1, |
× |
|
判定覆盖 |
23 |
y=2015 m=8 d=1 |
2015年8月2日 |
2015,8,2, |
× |
|
判定覆盖 |
24 |
y=2018 m=9 d=23 |
2018年9月24日 |
2018,9,24, |
× |
|
判定覆盖 |
25 |
y=1912 m=3 d=16 |
1912年3月17日 |
1912,3,17, |
× |
|
判定覆盖 |
26 |
y=1911 m=3 d=16 |
年份超出范围 |
年份超出范围 |
√ |
|
判定覆盖 |
27 |
y=2050年3 d=16 |
2050年3月17日 |
2050,3,17 |
× |
|
判定覆盖 |
28 |
y=2051 m=3 d=16 |
年份超出范围 |
年份超出范围 |
√ |
|
判定覆盖 |
29 |
y=2018 m=0 d=23 |
月份超出范围 |
月份超出范围 |
√ |
|
判定覆盖 |
30 |
y=2018 m=13 d=23 |
月份超出范围 |
月份超出范围 |
√ |
|
判定覆盖 |
31 |
y=2018 m=20 d=23 |
月份超出范围 |
月份超出范围 |
√ |
|
判定覆盖 |
32 |
y=2018 m=1 d=32 |
日期超出范围 |
日期超出范围 |
√ |
|
判定覆盖 |
33 |
y=2018 m=1 d=33 |
日期超出范围 |
日期超出范围 |
√ |
|
判定覆盖 |
34 |
y=2018 m=1 d=0 |
日期超出范围 |
2018,1,1 |
× |
|
判定覆盖 |
35 |
y=2018 m=1 d=-1 |
日期超出范围 |
2018,1,0 |
× |
|
判定覆盖 |
36 |
-1 |
程序退出 |
程序退出 |
√ |
|
判定覆盖 |
37 |
y=2015 m=13 d=32 |
月份超出范围 |
月份超出范围 日期超出范围 |
× |
三、测试结果和总结
测试小结:没有通过大部分测试
缺陷列表:所有预期结果为日期的测试样例以及34、35、37
缺陷集中在哪几个方面:日期边界,输出格式
没有考虑日期小于1的非法输入情况,出错返回多个出错的信息,没有按问题中要求的先错误先返回。另外程序的输出结果都没有按照要求的“****年**月**日”格式输出,而是变成如1995,1,1的形式
四、代码优化建议
代码没有做适当的注释,同时使用大量的if和switch语句,各种操作也杂糅在一起。如果将各种判断功能用函数封装好,可能会对可读性带来比较大的提高。
posted on 2017-03-22 12:46 StackOverflow! 阅读(185) 评论(0) 收藏 举报
浙公网安备 33010602011771号