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、单元测试框架:
package com.test;
import static org.junit.Assert.*;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
public class TestPracticeTest {
@Before
public void setUp() throws Exception {
}
@After
public void tearDown() throws Exception {
}
@Test
public void testNextDate() {
String date1=TestPractice.NextDate(1911,1,1);
assertEquals("年份超出范围", date1);
String date2=TestPractice.NextDate(2017,0,5);
assertEquals("月份超出范围", date2);
String date3=TestPractice.NextDate(2017,3,20);
assertEquals("2017年3月21日", date3);
String date4=TestPractice.NextDate(2017,3,31);
assertEquals("2017年4月1日", date4);
String date5=TestPractice.NextDate(2017,12,31);
assertEquals("2018年1月1日", date5);
String date6=TestPractice.NextDate(2017,3,32);
assertEquals("日期超出范围", date6);
String date7=TestPractice.NextDate(2017,4,29);
assertEquals("2017年4月30日", date7);
String date8=TestPractice.NextDate(2017,4,30);
assertEquals("2017年5月1日", date8);
String date9=TestPractice.NextDate(2017,4,31);
assertEquals("日期超出范围", date9);
String date10=TestPractice.NextDate(2016,2,28);
assertEquals("2016年2月29日", date10);
String date11=TestPractice.NextDate(2016,2,29);
assertEquals("2016年3月1日", date11);
String date12=TestPractice.NextDate(2016,2,30);
assertEquals("日期超出范围", date12);
String date13=TestPractice.NextDate(2017,2,27);
assertEquals("2017年2月28日", date13);
String date14=TestPractice.NextDate(2017,2,28);
assertEquals("2017年3月1日", date14);
String date15=TestPractice.NextDate(2017,2,29);
assertEquals("日期超出范围", date15);
}
}
4、测试结果:

程序正确
4、测试小结:
编写测试用例要根据流程图从头到尾每条分支都走一遍,有些比较比较复杂的判断语句编写测试用例就显得很麻烦
采用单元测试框架主要是可以把所有的用例都放在一起执行,比较不会遗漏,也免去了一次次执行输入输出的繁琐
测试是发现问题,即去找bug,让程序员修改,而调试则是解决问题,即发现了问题想办法去解决
浙公网安备 33010602011771号