第三次作业+105032014020

被测代码地址:http://www.cnblogs.com/linpanhuang/p/6611626.html

一、修正流程图

流程图的改变非常大:

二、测试用例设计和结果

三、单元测试框架

Junit测试代码:

 1 package test01;
 2 import static org.junit.Assert.*;
 3 
 4 import org.junit.Test;
 5 
 6 public class unit_est {
 7     @Test
 8     public void test() {
 9         assertEquals("2016年1月2日",aaa.nextDate(2016, 1, 1));    
10         assertEquals("2015年12月31日",aaa.nextDate(2015, 12, 30));
11         assertEquals("2016年1月1日",aaa.nextDate(2015, 12, 31));
12         assertEquals("2016年2月29日",aaa.nextDate(2016, 2, 28));
13         assertEquals("2016年3月1日",aaa.nextDate(2016, 2, 29));
14         assertEquals("2016年3月2日",aaa.nextDate(2016, 3, 1));
15         assertEquals("2016年3月31日",aaa.nextDate(2016, 3, 30));
16         assertEquals("2016年4月1日",aaa.nextDate(2016, 3, 31));
17         assertEquals("日期超出范围",aaa.nextDate(2016, 3, 32));
18         assertEquals("2000年2月29日",aaa.nextDate(2000, 2, 28));
19         assertEquals("2000年3月1日",aaa.nextDate(2000, 2, 29));
20         assertEquals("日期超出范围",aaa.nextDate(2000, 2, 30));
21         assertEquals("2000年3月2日",aaa.nextDate(2000, 3, 1));
22         assertEquals("2015年2月28日",aaa.nextDate(2015, 2, 27));
23         assertEquals("2015年3月1日",aaa.nextDate(2015, 2, 28));
24         assertEquals("日期超出范围",aaa.nextDate(2015, 2, 29));
25         assertEquals("2015年3月2日",aaa.nextDate(2015, 3, 1));
26         assertEquals("2015年4月30日",aaa.nextDate(2015, 4, 29));
27         assertEquals("2015年5月1日",aaa.nextDate(2015, 4, 30));
28         assertEquals("2015年5月2日",aaa.nextDate(2015, 5, 1));
29         assertEquals("2015年8月31日",aaa.nextDate(2015, 8, 30));
30         assertEquals("2015年9月1日",aaa.nextDate(2015, 8, 31));
31         assertEquals("2015年8月2日",aaa.nextDate(2015, 8, 1));
32         assertEquals("2018年9月24日",aaa.nextDate(2018, 9, 23));
33         assertEquals("1912年3月17日",aaa.nextDate(1912, 3, 16));
34         assertEquals("年份超出范围",aaa.nextDate(1911, 3, 16));
35         assertEquals("2050年3月17日",aaa.nextDate(2050, 3, 16));
36         assertEquals("年份超出范围",aaa.nextDate(2051, 3, 16));
37         assertEquals("月份超出范围",aaa.nextDate(2018, 0, 23));    
38         assertEquals("月份超出范围",aaa.nextDate(2018, 20, 23));
39         assertEquals("月份超出范围",aaa.nextDate(2018, 1, 32));
40         assertEquals("日期超出范围",aaa.nextDate(2018, 1, 33));
41         assertEquals("日期超出范围",aaa.nextDate(2018, 1, 0));
42         assertEquals("日期超出范围",aaa.nextDate(2018, 1, -1));
43         assertEquals("2015年13月32日",aaa.nextDate(2015, 13, 32));
44     }
45 }

四、测试结果

Junit测试结果,有一个错误:

五、测试小结

心得体会:

    要计算下一天的日期,其中涉及的非常多的判断和选择。对于测试来说,这增加了测试的复杂性,因为条件与条件不同状态的组合与叠加会导致组合爆炸。本次编写的样例,使用了多种覆盖方法,试图更好的找出程序的缺陷。

测试框架体会:

    利用工具测试并不是第一次,之前接触过Visual Studio中自带的测试工具,和Junit的功能十分相近,都可以让我们快速的对程序进行检验,而不需要频繁的手动输入,这极大地提高了效率。

调试与测试的不同体会:

    因为ACM程序设计竞赛的经历,平时在调试程序时已经养成了经常测试的习惯,不仅仅是通过最简单的样例,也会自发的去测试一些条件的不同组合,边界等。但作为测试人员,更是把这个过程系统化规范化,同时也使用了一些技巧,比之前单纯的靠经验、靠逻辑进行测试,更容易发现问题。

posted on 2017-03-29 22:11  StackOverflow!  阅读(268)  评论(0)    收藏  举报

导航