第一次作业+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)    收藏  举报

导航