被侧代码:http://www.cnblogs.com/5257yu/p/6532671.html
(1)程序流程图
(2)测试用例设计
覆盖方式 | 用例号 | 输入 | 期待结果 | 实际结果 | 通过 | 时间 |
语句覆盖 | 1 | 2016.12.31 | 2017.1.1 | 2017.1.1 | Yes |
|
语句覆盖 | 2 | 2080.12.31 | 年份超出范围 | 2080.1.1 | N0 |
|
语句覆盖 | 3 | 2016.1.6 | 2016.1.7 | 2016.1.7 | Yes |
|
判定覆盖 | 4 | 2080.13.35 | 年份超出范围 | 年份超出范围! 月份超出范围! 日期超出范围! 2080.13.35 | N0 |
|
判定覆盖 | 5 | 2014.12.31 | 2015.1.1 | 2015.1.1 | Yes |
|
条件覆盖 | 6 | 2014.2.28 | 2014.3.1 | 2014.2.29 | N0 |
|
条件覆盖 | 7 | 2017.4.30 | 2017.5.1 | 2017.4.31 | N0 |
|
组合覆盖 | 8 | 2016.5.31 | 2016.6.1 | 2016.6.1 | Yes |
|
组合覆盖 | 9 | 2016.11.5 | 2016.11.6 | 2016.11.6 | Yes |
(3)测试结果
该代码只通过判断月份和天数是否为最后一月的一天的情况,没有考虑年份为闰年2月份只有29天以及4,6,9,11月只有30天的情况,
并且年份月份日期超出范围依然输出了错误日期,综上,该程序并未通过测试。
(4)代码优化建议
程序中代码块多处重复冗余,对输入日期的判断建议单独使用一个函数来写,减少无用代码,另外要考虑实际需求,增加如下判断条件: