一、实验目的
(1)掌握应用黑盒测试技术进行测试用例设计。
(2)掌握对测试用例进行优化设计方法。
二、实验内容
日期问题
测试以下程序:该程序有三个输入变量month、day、year(month、day和year均为整数值,并且满足:1≤month≤12、1≤day≤31和1900≤year≤2050),分别作为输入日期的月份、日、年份,通过程序可以输出该输入日期在日历上隔一天的日期。例如,输入为2004 年11月30日,则该程序的输出为2004年12月1日。
(1)划分等价类,按照等价类划分法设计测试用例;
(2)编写nextDate函数;
(3)掌握Junit4的用法,使用Junit4测试nextDate函数。
JUnit4是JUnit框架有史以来的最大改进,其主要目标便是利用Java5的Annotation特性简化测试用例的编写。
掌握Junit4定义的一些常见Annotations:
org.junit.Test
org.junit.Before
org.junit.After
org.junit.BeforeClass
org.junit.AfterClass
org.junit.Ignore
org.junit.runner.RunWith
org.junit.runners.Suite.SuiteClasses
org.junit.runners.Parameterized.Parameters
三、实验要求
(1)根据题目要求编写测试用例;
(2)准备nextDate函数,使用Junit4测试执行测试;
(3)撰写实验报告。
四、实验过程
(1)根据题目要求编写测试用例
1)划分等价类并编号
输入数据
有效等价类
无效等价类
年
(1) 1900到2050内的闰年整数
(10) year<1900
(2) 1900到2050内的平年整数
(11) year>2050
(12) 其他输入
月
(3) 1,3,5,7,8,10,12内的整数
(13) month<1
(4) 4,6,9,11内的整数
(14) 12
(5) 2
(15) 其他输入
日
(6) 1~28
(16) day<1
(7) 29
(17) year为闰年 month=2时,29
(8) 30
(18) year为非闰年 month=2时,28
(9) 31
(19) month=1,3,5,7,8,10,12时,31
(20) month=4,6,9,11时,30
(21) day>31
(22) 其他输入
2)为有效等价类设计测试用例
序号
测试数据
期望结果
覆盖范围
1
2016 2 29
下一天是2016年3月1日!
(1)(5)(7)
2
2017 1 28
下一天是2017年1月29