第3次作业+105032014040

1.测试帖链接:

http://www.cnblogs.com/xwhisper/p/6629297.html

2.修正流程图:

 

3.测试用例设计:

 

因用例过多,以下只列举部分。

覆盖方式 用例号 输入 期待结果
语句覆盖 1 2051  3  21 年份超出范围
语句覆盖 2 2050  13  21 月份超出范围
语句覆盖 3 2050  3  32 日期超出范围
语句覆盖 4 2050  2  30 日期超出范围
语句覆盖 5 2050  2  28 2050  3  1
语句覆盖 6 2050  4  30 2050  5  1
语句覆盖 7 2050  12  31 2051  1  1
判定覆盖 8 1914  4  21 年份超出范围
判定覆盖 9 1915  4  21 1915  4  22
判定覆盖 10 1915  13  21 月份超出范围
判定覆盖 11 1915  12  21 1915  12  22
判定覆盖 12 1915  2  32 日期超出范围
判定覆盖 13 1915  2  30 日期超出范围
判定覆盖 14 2000  2  29 2000  3  1
判定覆盖 15 2000  3  31 2000  4  1
判定覆盖 16 2000  12  31 2001  1  1
判定覆盖 17 2000  4  21 2000  4  22
判定/条件覆盖 18 1999  3  31 2000  4  1
判定/条件覆盖 19 2000  2  28 2000  2  29
判定/条件覆盖 20 2000  2  29 2000  3  1
判定/条件覆盖 21 2000  2  30 日期超出范围
判定/条件覆盖 22 1999  12  31 2000  1  1
判定/条件覆盖 23 1999  12  32 日期超出范围
组合覆盖 24 2051  1  1 年份超出范围
组合覆盖 25 2050  12  31 2051  1  1
组合覆盖 26 1914  12  31 年份超出范围
组合覆盖 27 1915  1  1 1915  1  2
组合覆盖 28 1915  13  1 月份超出范围
组合覆盖 29 1915  4  31 日期超出范围
组合覆盖 30 2000  4  30 2000  5  1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4.单元测试框架:

Junit测试代码

 1 import static org.junit.Assert.*;
 2 import org.junit.Test;
 3 
 4 public class NextDateTestTest {
 5 
 6     @Test
 7     //判断输入格式是否正确
 8     public void testCheckDate() {
 9         assertFalse(NextDateTest.checkDate(2051, 3, 21));
10         assertFalse(NextDateTest.checkDate(2050, 13, 21));
11         assertFalse(NextDateTest.checkDate(2050, 3, 32));
12         assertFalse(NextDateTest.checkDate(2050, 2, 30));
13         assertTrue(NextDateTest.checkDate(2050, 12, 31));
14         assertTrue(NextDateTest.checkDate(2050, 2, 28));
15         assertTrue(NextDateTest.checkDate(2050, 4, 30));
16         assertFalse(NextDateTest.checkDate(1914, 4, 21));
17         assertFalse(NextDateTest.checkDate(1915, 13, 21));
18         assertTrue(NextDateTest.checkDate(1915, 4, 21));
19         assertTrue(NextDateTest.checkDate(1915, 12, 21));
20         assertFalse(NextDateTest.checkDate(1915, 2, 32));
21         assertFalse(NextDateTest.checkDate(1915, 2, 30));
22         assertTrue(NextDateTest.checkDate(2000, 2, 29));
23         assertTrue(NextDateTest.checkDate(2000, 3, 31));
24         assertTrue(NextDateTest.checkDate(2000, 12, 31));
25         assertTrue(NextDateTest.checkDate(2000, 4, 21));
26         assertTrue(NextDateTest.checkDate(1999, 3, 31));
27         assertTrue(NextDateTest.checkDate(2000, 2, 28));
28         assertTrue(NextDateTest.checkDate(2000, 2, 29));
29         assertFalse(NextDateTest.checkDate(2000, 2, 30));
30         assertTrue(NextDateTest.checkDate(1999, 12, 31));
31         assertFalse(NextDateTest.checkDate(1999, 12, 32));
32         assertFalse(NextDateTest.checkDate(2051, 1, 1));
33         assertTrue(NextDateTest.checkDate(2050, 12, 31));
34         assertFalse(NextDateTest.checkDate(1914, 12, 31));
35         assertTrue(NextDateTest.checkDate(1915, 1, 1));
36         assertFalse(NextDateTest.checkDate(1915, 13, 1));
37         assertFalse(NextDateTest.checkDate(1915, 4, 31));
38         assertTrue(NextDateTest.checkDate(2000, 4, 30));
39     }
40     
41 
42     @Test
43     //输入格式正确的数据进行日期的计算,所以以下均为上面checkData方法过滤后的正确数据
44     public void testNextDate() {
45         assertEquals("NextDate:2051年1月1日",NextDateTest.nextDate(2050, 12, 31));    
46         assertEquals("NextDate:2050年3月1日",NextDateTest.nextDate(2050, 2, 28));
47         assertEquals("NextDate:2050年5月1日",NextDateTest.nextDate(2050, 4, 30));
48         assertEquals("NextDate:1915年4月22日",NextDateTest.nextDate(1915, 4, 21));
49         assertEquals("NextDate:1915年12月22日",NextDateTest.nextDate(1915, 12, 21));
50         assertEquals("NextDate:2000年3月1日",NextDateTest.nextDate(2000, 2, 29));
51         assertEquals("NextDate:2000年4月1日",NextDateTest.nextDate(2000, 3, 31));
52         assertEquals("NextDate:2001年1月1日",NextDateTest.nextDate(2000, 12, 31));
53         assertEquals("NextDate:2000年4月22日",NextDateTest.nextDate(2000, 4, 21));
54         assertEquals("NextDate:1999年4月1日",NextDateTest.nextDate(1999, 3, 31));
55         assertEquals("NextDate:2000年2月29日",NextDateTest.nextDate(2000, 2, 28));
56         assertEquals("NextDate:2000年3月1日",NextDateTest.nextDate(2000, 2, 29));
57         assertEquals("NextDate:2000年1月1日",NextDateTest.nextDate(1999, 12, 31));
58         assertEquals("NextDate:2051年1月1日",NextDateTest.nextDate(2050, 12, 31));
59         assertEquals("NextDate:1915年1月2日",NextDateTest.nextDate(1915, 1, 1));
60         assertEquals("NextDate:2000年5月1日",NextDateTest.nextDate(2000, 4, 30));
61     }
62 
63 }

 

 

5.测试结果:

测试结果表明以上的用例均通过测试,程序未发现错误。

 

6.测试小结:

  若条件很多,则需要花费很多时间对用例进行编写。所以还要继续熟悉逻辑覆盖的各个要点。

  采用单元测试框架,因为每个方法之间是独立的,则对于一些布尔方法的测试就显得很方便了,而不会因只调用main方法而不清楚内部方法的结果。

 

posted @ 2017-03-30 21:59  elpsy  阅读(127)  评论(0编辑  收藏  举报