使用等价类划分法以及Junit的参数化测试,测试nextDate函数

需求

​ 日期问题

​ 测试以下程序:该程序有三个输入变量 month、day、year (month、day 和 year 均为整数值,并且满足:1 ≤ months ≤ 12、1 ≤ days ≤ 31 和 1900 ≤ year ≤ 2050),分别作为输入日期的月份、日、年份,通过程序可以输出该输入日期在日历上隔天的日期。例如,输入为 2004 年 11 月 30 日,则该程序的输出为 2004 年 12 月 1 日。

(1) 划分等价类,按照等价类划分法设计测试用例;
(2) 编写 nextDate 函数
(3) 掌握 Junit4 的用法,使用 Junit4 测试 nextdate 函数。

实现

(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时,day>31
(20) month=4,6,9,11时 30
(21) day>31
(22) 其他输入

2)为有效等价类设计测试用例

测试数据 期望结果 覆盖范围
2016 2 29 下一天是2016年3月1日! (1)(5)(7)
2017 1 28 下一天是2017年1月29日! (2)(3)(6)
2017 1 31 下一天是2017年2月1日! (2)(3)(9)
2017 4 30 下一天是2017年5月1日! (2)(4)(8)

3)为每一个无效等价类至少设计一个测试用例

输入数据 期望结果 覆盖范围
1899 3 1 年的值不在指定范围之内 (10)
2051 3 1 年的值不在指定范围之内 (11)
205% 3 1 无效的输入日期! (12)
1901 -1 1 月的值不在指定范围之内 (13)
1901 13 1 月的值不在指定范围之内 (14)
1901 1% 1 无效的输入日期! (15)
1901 1 -1 日的值不在指定范围之内 (16)
2016 2 30 日的值不在指定范围之内 (17)
2017 2 29 日的值不在指定范围之内 (18)
2017 3 32 日的值不在指定范围之内 (19)
2017 4 31 日的值不在指定范围之内 (20)
2017 4 32 日的值不在指定范围之内 (21)
2017 4 3% 无效的输入日期! (22)

(2)编写nextDate函数,使用Junit4测试执行测试

源代码文件地址
nextDate函数
使用等价类划分法以及Junit的参数化测试,测试nextDate函数_第1张图片

​ 测试类

使用等价类划分法以及Junit的参数化测试,测试nextDate函数_第2张图片

测试结果

使用等价类划分法以及Junit的参数化测试,测试nextDate函数_第3张图片

你可能感兴趣的:(实验,软件测试,java)