1、修正流程图:
2、测试用例设计:
覆盖方式 |
用例号 |
输入 |
期待结果 |
实际结果 |
通过 |
时间 |
判断覆盖 |
1 |
2 3 100 |
年份超出范围 |
年份超出范围 |
√ |
|
判断覆盖 |
2 |
20 20 2017 |
月份超出范围 |
月份超出范围 |
√ |
|
判断覆盖 |
3 |
3 20 2017 |
2017年03月21日 |
2017年03月21日 |
√ |
|
语句覆盖 |
4 |
3 31 2017 |
2017年04月01日 |
2017年04月01日 |
√ |
|
语句覆盖 |
5 |
12 31 2017 |
2018年01月01日 |
2018年01月01日 |
√ |
|
判断覆盖 |
6 |
3 32 2017 |
日期超出范围 |
日期超出范围 |
√ |
|
判断覆盖 |
7 |
4 29 2017 |
2017年04月30日 |
2017年04月30日 |
√ |
|
判断覆盖 |
8 |
4 30 2017 |
2017年05月01日 |
2017年05月01日 |
√ |
|
判断覆盖 |
9 |
4 31 2017 |
日期超出范围 |
日期不存在,请重新输入 |
× |
|
组合覆盖 |
10 |
2 28 2016 |
2016年02月29日 |
2016年02月29日 |
√ |
|
组合覆盖 |
11 |
2 29 2016 |
2016年03月01日 |
2016年03月01日 |
√ |
|
组合覆盖 |
12 |
2 30 2016 |
日期超出范围 |
日期不存在,请重新输入 |
× |
|
判断覆盖 |
13 |
2 27 2017 |
2017年02月28日 |
2017年02月28日 |
√ |
|
判断覆盖 |
14 |
2 28 2017 |
2017年03月01日 |
2017年03月01日 |
√ |
|
判断覆盖 |
15 |
2 29 2017 |
日期超出范围 |
日期不存在,请重新输入 |
× |
|
3、单元测试框架:
package testwork; import static org.junit.Assert.*; import org.junit.Before; public class Test { @Before public void setUp() throws Exception { } @org.junit.Test public void testGetNowDay() { String date1=pro1.getNowDay(2,3,100); assertEquals("年份超出范围", date1); String date2=pro1.getNowDay(20,20,2017); assertEquals("月份超出范围", date2); String date3=pro1.getNowDay(3,20,2017); assertEquals("2017年03月21日", date3); String date4=pro1.getNowDay(3,31,2017); assertEquals("2017年04月01日", date4); String date5=pro1.getNowDay(12,31,2017); assertEquals("2018年01月01日", date5); String date6=pro1.getNowDay(3,32,2017); assertEquals("日期超出范围", date6); String date7=pro1.getNowDay(4,29,2017); assertEquals("2017年04月30日", date7); String date8=pro1.getNowDay(4,30,2017); assertEquals("2017年05月01日", date8); String date9=pro1.getNowDay(4,31,2017); assertEquals("日期超出范围", date9); String date10=pro1.getNowDay(2,28,2016); assertEquals("2016年02月29日", date10); String date11=pro1.getNowDay(2,29,2016); assertEquals("2016年03月01日", date11); String date12=pro1.getNowDay(2,30,2016); assertEquals("日期超出范围", date12); String date13=pro1.getNowDay(2,27,2017); assertEquals("2017年02月28日", date13); String date14=pro1.getNowDay(2,28,2017); assertEquals("2017年03月01日", date14); String date15=pro1.getNowDay(2,29,2017); assertEquals("日期超出范围", date15); } }
3、测试结果:
程序错误
4、测试小结:
(1).通过此次的实验,基本掌握了白盒测试的几种覆盖方法
(2).对于如何编写测试用例有了更深一层的了解
(3).采用单元测试框相对于使用main()方法调用,能够提高开发速度;提高软件代码质量;提升系统的可信赖度。
(4).JUNit进行测试,任何一个与期望值不一致的地方都会导致错误