第3次作业+105032014124
注:测试代码链接
http://www.cnblogs.com/ChenXh123/p/6622262.html
1、修改后代码的流程图:
2、测试用例设计:
用例编号 |
覆盖方式 |
输入数据 (月、日、年) |
期待结果 |
实际结果 |
结论 |
U01 |
语句覆盖 |
a,b,c |
输入格式错误 |
输入格式错误 |
通过 |
U02 |
语句覆盖 |
-1,7,2009 |
月份超出范围 |
月份超出范围 |
通过 |
U03 |
语句覆盖 |
5,32,2009 |
日期超出范围 |
日期超出范围 |
通过 |
U04 |
语句覆盖 |
5,7,1911 |
年份超出范围 |
年份超出范围 |
通过 |
U05 |
语句覆盖 |
2,28,2008 |
2008年2月29日 |
2008年2月29日 |
通过 |
U06 |
语句覆盖 |
2,29,2008 |
2008年3月1日 |
2008年3月1日 |
通过 |
U07 |
语句覆盖 |
12,31,2008 |
2009年1月1日 |
2009年1月1日 |
通过 |
U08 |
语句覆盖 |
2,28,2009 |
2009年3月1日 |
2009年3月1日 |
通过 |
U09 |
语句覆盖 |
12,31,2009 |
2010年1月1日 |
2010年1月1日 |
通过 |
U10 |
语句覆盖 |
5,5,2009 |
2009年5月6日 |
2009年5月6日 |
通过 |
U11 |
判定覆盖 |
a,b,c |
输入格式错误 |
输入格式错误 |
通过 |
U12 |
判定覆盖 |
-1,32,1911 |
月份超出范围 |
月份超出范围 |
通过 |
U13 |
判定覆盖 |
2,28,1996 |
1996年2月29日 |
1996年2月29日 |
通过 |
U14 |
判定覆盖 |
12,31,1996 |
1997年1月1日 |
1997年1月1日 |
通过 |
U15 |
判定覆盖 |
2,29,1996 |
1996年3月1日 |
1996年3月1日 |
通过 |
U16 |
判定覆盖 |
1,1,1997 |
1997年1月2日 |
1997年1月2日 |
通过 |
U17 |
判定覆盖 |
12,31,1997 |
1998年1月1日 |
1998年1月1日 |
通过 |
U18 |
判定覆盖 |
6,30,1997 |
1997年7月1日 |
1997年7月1日 |
通过 |
U19 |
条件覆盖 |
-1,-1,1911 |
月份超出范围 |
月份超出范围 |
通过 |
U20 |
条件覆盖 |
13,32,2051 |
月份超出范围 |
月份超出范围 |
通过 |
U21 |
条件覆盖 |
2,28,2008 |
2008年2月29日 |
2008年2月29日 |
通过 |
U22 |
条件覆盖 |
2,29,2008 |
2008年3月1日 |
2008年3月1日 |
通过 |
U23 |
条件覆盖 |
12,31,2008 |
2009年1月1日 |
2009年1月1日 |
通过 |
U24 |
条件覆盖 |
2,28,2000 |
2000年2月29日 |
2000年2月29日 |
通过 |
U25 |
条件覆盖 |
2,29,2000 |
2000年3月1日 |
2000年3月1日 |
通过 |
U26 |
条件覆盖 |
12,31,2000 |
2001年1月1日 |
2001年1月1日 |
通过 |
U27 |
条件覆盖 |
2,28,2009 |
2009年3月1日 |
2009年3月1日 |
通过 |
U28 |
条件覆盖 |
12,31,2009 |
2010年1月1日 |
2010年1月1日 |
通过 |
U29 |
条件覆盖 |
5,5,2009 |
2009年5月6日 |
2009年5月6日 |
通过 |
U30 |
条件/判定覆盖 |
-1,-1,1911 |
月份超出范围 |
月份超出范围 |
通过 |
U31 |
条件/判定覆盖 |
13,32,2051 |
月份超出范围 |
月份超出范围 |
通过 |
U32 |
条件/判定覆盖 |
2,28,2000 |
2000年2月29日 |
2000年2月29日 |
通过 |
U33 |
条件/判定覆盖 |
2,29,2000 |
2000年3月1日 |
2000年3月1日 |
通过 |
U34 |
条件/判定覆盖 |
12,31,2000 |
2001年1月1日 |
2001年1月1日 |
通过 |
U35 |
多条件覆盖 |
2,28,2008 |
2008年2月29日 |
2008年2月29日 |
通过 |
U36 |
多条件覆盖 |
2,29,2008 |
2008年3月1日 |
2008年3月1日 |
通过 |
U37 |
多条件覆盖 |
12,31,2008 |
2009年1月1日 |
2009年1月1日 |
通过 |
U38 |
多条件覆盖 |
2,28,2000 |
2000年2月29日 |
2000年2月29日 |
通过 |
U39 |
多条件覆盖 |
2,29,2000 |
2000年3月1日 |
2000年3月1日 |
通过 |
U40 |
多条件覆盖 |
12,31,2000 |
2001年1月1日 |
2001年1月1日 |
通过 |
U41 |
多条件覆盖 |
2,28,2009 |
2009年3月1日 |
2009年3月1日 |
通过 |
U42 |
多条件覆盖 |
12,31,2009 |
2010年1月1日 |
2010年1月1日 |
通过 |
U43 |
多条件覆盖 |
5,5,2009 |
2009年5月6日 |
2009年5月6日 |
通过 |
U44 |
路径覆盖 |
-1,1,1996 |
月份超出范围 |
月份超出范围 |
通过 |
U45 |
路径覆盖 |
-1,32,1996 |
月份超出范围 |
月份超出范围 |
通过 |
U46 |
路径覆盖 |
-1,1,2051 |
月份超出范围 |
月份超出范围 |
通过 |
U47 |
路径覆盖 |
-1,32,2051 |
月份超出范围 |
月份超出范围 |
通过 |
U48 |
路径覆盖 |
2,28,2008 |
2008年2月29日 |
2008年2月29日 |
通过 |
U49 |
路径覆盖 |
2,29,2008 |
2008年3月1日 |
2008年3月1日 |
通过 |
U50 |
路径覆盖 |
12,31,2008 |
2009年1月1日 |
2009年1月1日 |
通过 |
U51 |
路径覆盖 |
2,28,2009 |
2009年3月1日 |
2009年3月1日 |
通过 |
U52 |
路径覆盖 |
12,31,2009 |
2010年1月1日 |
2010年1月1日 |
通过 |
U53 |
路径覆盖 |
5,5,2009 |
2009年5月6日 |
2009年5月6日 |
通过 |
3、单元测试框架:
1 package 软件测试实验1; 2 3 import static org.junit.Assert.*; 4 5 import org.junit.Before; 6 import org.junit.Test; 7 8 public class NextDateTest { 9 10 @Before 11 public void setUp() throws Exception { 12 } 13 14 @Test 15 public void testNextdate() { 16 String date1=NextDate.nextdate(-1,-1,1911); 17 assertEquals("月份超出范围",date1); 18 String date2=NextDate.nextdate(2, 28, 2008); 19 assertEquals("2008年2月29日",date2); 20 String date3=NextDate.nextdate(2, 28, 2009); 21 assertEquals("2009年3月1日",date3); 22 String date4=NextDate.nextdate(13,32,2051); 23 assertEquals("月份超出范围",date4); 24 String date5=NextDate.nextdate(12,31,2000); 25 assertEquals("2001年1月1日",date5); 26 String date6=NextDate.nextdate(2,32,2009); 27 assertEquals("日期超出范围",date6); 28 String date7=NextDate.nextdate(2,30,2051); 29 assertEquals("年份超出范围",date7); 30 String date8=NextDate.nextdate(5,5,2009); 31 assertEquals("2009年5月6日",date8); 32 String date9=NextDate.nextdate(2, 29, 2009); 33 assertEquals("日期超出范围",date9); 34 String date10=NextDate.nextdate(2, 28, 2009); 35 assertEquals("2009年3月1日",date10); 36 } 37 38 39 40 }
4、测试结果:
5、测试小结:
(1)修改后的程序可以进行反复输入与测试,并且可以通过目前编写的测试用例的全部测试;
(2)这次实验进行了语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、多条件覆盖、路径覆盖,在编写各自的测试用例时,我发现,他们的测试用例会出现重叠的情况;上次实验的语句覆盖写得不够全面,相较而言,这次在编写测试用例时,我对逻辑覆盖有了更进一步的了解;
(3)作为一名测试人员,本次实验采用单元测试框架Junit进行测试,利用eclipse软件测试,我觉得这相比之前的测试来说,更方便、更新颖。