第三次作业+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) 收藏 举报
浙公网安备 33010602011771号