第三次作业_105032014078

1、修正流程图

 

2、测试用例设计

 

覆盖方法

用例号

输入

期望输出

实际输出

通过

时间

语句覆盖

1

1995 12 19

1995年12月20日

1995年12月20日

通过

2017.3.22

语句覆盖

2

1995 4 15

1995年4月16日

1995年4月16日

通过

2017.3.22

语句覆盖

3

1995 2 28

1995年3月1日

1995年3月1日

通过

2017.3.22

判定覆盖

4

1911 12 1

年份超过范围

年份超过范围

通过

2017.3.22

判定覆盖

5

1912 13 1

月份超过范围

月份超过范围

通过

2017.3.22

判定覆盖

6

1912 12 32

日期超过范围

日期超过范围

通过

2017.3.22

判定覆盖

7

2015 4 30

2015年5月1日

2015年5月1日

通过

2017.3.22

判定覆盖

8

2016 2 29

2016年3月1日

2016年3月1日

通过

2017.3.22

判定覆盖

9

2015 2 28

2015年3月1日

2015年3月1日

通过

2017.3.22

判定覆盖

10

2015 2 29

日期超过范围

日期超过范围

通过

2017.3.22

判定覆盖

11

2016 2 30

日期超过范围

日期超过范围

通过

2017.3.22

判定覆盖

12

2016 4 31

日期超过范围

日期超过范围

通过

2017.3.22

条件覆盖

13

1913 4 26

1913年4月27日

1913年4月27日

通过

2017.3.29

条件覆盖

14

1913 2 28

1913年3月1日

1913年3月1日

通过

2017.3.29

条件覆盖

15

1913 1 20

1913年1月21日

1913年1月21日

通过

2017.3.29

条件覆盖

16

1911 13 32

年份超过范围

年份超过范围

通过

2017.3.29

判定/条件覆盖

17

1995 12 19

1995 12 20

1995 12 20

通过

2017.3.29

判定/条件覆盖

18

1911 13 35

年份超过范围

年份超过范围

通过

2017.3.29

组合覆盖

19

2035 13 33

年份超过范围

年份超过范围

通过

2017.3.29

组合覆盖

20

2012 1 2

2012年1月3日

2012年1月3日

通过

2017.3.29

路径覆盖

21

2016 2 29

2016年2月29日

2016年2月29日

通过

2017.3 29

路径覆盖

21

2005 11 30

2005年12月1日

2005年12月1日

通过

2017.3.29

路径覆盖

22

2005 5 31

2005年6月1日

2005年6月1日

通过

2017.3 29

 

3、单元测试框架:

package File;

import static org.junit.Assert.*;

import org.junit.After;
import org.junit.Test;

public class NextDayTest {

    @Test
    public void testNextdate() {
     assertEquals("1913年4月27日", NextDay.nextdate(1913, 4, 26));
     assertEquals("1913年3月1日", NextDay.nextdate(1913, 2, 28));
     assertEquals("年份超过范围", NextDay.nextdate(1911, 13, 31));
     assertEquals("月份超过范围", NextDay.nextdate(1912, 13, 1));
     assertEquals("日期超过范围", NextDay.nextdate(1912, 12,32));
     assertEquals("2015年5月1日", NextDay.nextdate(2015, 4, 30));
     assertEquals("2016年3月1日", NextDay.nextdate(2016, 3, 1));
     assertEquals("2015年11月1日", NextDay.nextdate(2015, 10, 31));
    }

    @After 
    public void testMain() throws Exception{
        fail("Not yet implemented");
    }

}

 

3、测试结果

测试结果中出现了两个错误,在通过main()方法调用的时候测试通过,后来发现错误原因是源程序中是在main函数中判定的,没有把所有的判定放在一个函数里面,所以出现了错误。

 

4、测试小结

     (1)在编写测试用例前理解回顾了老师上课讲的几种覆盖方法,在编写测试用例时,比起之前有了比较明确的方向,并且能够比较完整地写出每个分支中具有代表性地测试用例;

     (2)本次白盒测试还采用了Junit单元测试框架,测试用例和预期结果写好可以执行自动测试,比main()方法调用方式更快更方便,但是在执行自动化测试时,有可能因为源程序的方法结构不够好,而出现一些错误;

      (3)调试程序主要是使编写地程序能够编译通过,并且成功运行,在这个过程中没有检查程序中某一些部分的错误,而测试的目的在于找出能够成功运行的程序中的一些逻辑等方面的错误,是对已经编译通过的程序的进一步的完善,是程序安全的一个保障。

posted on 2017-03-30 21:20  刘玲志  阅读(176)  评论(0编辑  收藏  举报