黑盒测试——nextDate函数测试(等价类划分法边界值分析法判定表驱动法)

Posted Starzkg

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了黑盒测试——nextDate函数测试(等价类划分法边界值分析法判定表驱动法)相关的知识,希望对你有一定的参考价值。

实验目的

(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)按照等价类划分法设计测试用例;
(3)按照边界值分析法设计测试用例;
(4)按照判定表驱动法设计测试用例。
(5)编写nextDate函数;
(6)掌握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)实验结果要求给出测试用例集测试效果比较。
(4)撰写实验报告。

实验过程

(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<month
(5) 2(15) 其他输入
(6) 1~28(16) day<1
(7) 29(17) year为闰年 month=2时,29<day
(8) 30(18) year为非闰年 month=2时,28<day
(9) 31(19) month=1,3,5,7,8,10,12时,31<day
(20) month=4,6,9,11时,30<day
(21) day>31
(22) 其他输入

按照等价类划分法设计测试用例

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

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

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

序号输入数据期望结果覆盖范围
61899 3 1年的值不在指定范围之内(10)
72051 3 1年的值不在指定范围之内(11)
8205% 3 1无效的输入日期!(12)
91901 -1 1月的值不在指定范围之内(13)
101901 13 1月的值不在指定范围之内(14)
111901 1% 1无效的输入日期!(15)
121901 1 -1日的值不在指定范围之内(16)
132016 2 30日的值不在指定范围之内(17)
142017 2 29日的值不在指定范围之内(18)
152017 3 32日的值不在指定范围之内(19)
162017 4 31日的值不在指定范围之内(20)
172017 4 32日的值不在指定范围之内(21)
182017 4 3%无效的输入日期!(22)

按照边界值分析法设计测试用例

测试用例monthdayYear针对的有效类期望输出
17101889(1)(2)年的值不在指定范围内
27101900(1)(2)19000711
37101901(1)(2)19010711
47102049(1)(2)20490711
57102050(1)(2)20500711
67102051(1)(2)年的值不在指定范围内
70102019(3)~(6)月的值不在指定范围内
81102019(3)~(6)20190111
92102019(3)~(6)20190211
1011102019(3)~(6)20191111
1112102019(3)~(6)20191211
1213102019(3)~(6)月的值不在指定范围内
132272019(5)(7)~(9)20190228
142282019(5)(7)~(9)20190301
152292019(5)(7)~(9)日的值不在指定范围内
162282020(5)(7)~(9)20200229
172292020(5)(7)~(9)20200301
182302020(5)(7)~(9)日的值不在指定范围内
191302019(3)(9)(10)20190131
201312019(3)(9)(10)20190201
211322019(3)(9)(10)日的值不在指定范围内
224302019(4)(9)(10)20190501
234312019(4)(9)(10)日的值不在指定范围内
244322019(4)(9)(10)日的值不在指定范围内

按照判定表驱动法设计测试用例

条件桩

M 1 = m o n t h : 这 个 月 有 30 天 M_1={month:这个月有30天} M1=month:30
M 2 = m o n t h : 这 个 月 有 31 天 , 除 了 12 月 M_2={month:这个月有31天,除了12月} M2=month:3112
M 3 = m o n t h : 这 个 月 是 12 月 M_3={month:这个月是12月} M3=month:12
M 4 = m o n t h : 这 个 月 是 2 月 M_4={month:这个月是2月} M4=month:2
D 1 = d a y : 1 ≤ d a y ≤ 27 D_1={day:1≤day≤27} D1=day:1day27
D 2 = d a y : d a y = 28 D_2={day:day=28} D2=day:day=28
D 3 = d a y : d a y = 29 D_3={day:day=29} D3=day:day=29
D 4 = d a y : d a y = 30 D_4={day:day=30} D4=day:day=30
D 5 = d a y : d a y = 31 D_5={day:day=31} D5=day:day=31
Y 1 = y e a r : y e a r 是 闰 年 Y_1={year:year是闰年} Y1=year:year
Y 2 = y e a r : y e a r 不 是 闰 年 Y_2={year:year不是闰年} Y2=year:year

动作桩

A 0 : 不 可 能 A_0:不可能 A0
A 1 : d a y + 1 A_1:day+1 A1:day+1
A 2 : d a y 复 位 A_2:day复位 A2:day
A 3 : m o n t h + 1 A_3:month+1 A3:month+1
A 4 : m o n t h 复 位 A_4:month复位 A4:month
A 5 : y e a r + 1 A_5:year+1 A5:year+1

判断表

规则12345678910111213141516171819202122
条件:
C 1 : m o n t h 是 C_1:month是 C1:month M 1 M_1 M1 M 1 M_1 M1 M 1 M_1 M1 M 1 M_1 M1 M 1 M_1 M1 M 2 M_2 M2 M 2 M_2 M2 M 2 M_2 M2 M 2 M_2 M2 M 2 M_2 M2 M 3 M_3 M3 M 3 M_3 M3 M 3 M_3 M3 M 3 M_3 M3 M 3 M_3 M3 M 4 M_4 M4 M 4 M_4 M4

以上是关于黑盒测试——nextDate函数测试(等价类划分法边界值分析法判定表驱动法)的主要内容,如果未能解决你的问题,请参考以下文章

黑盒测试之等价类划分法

黑盒测试之等价类划分法

黑盒测试之等价类划分法

黑盒测试方法——等价类划分

黑盒测试之等价类划分法干货篇

黑盒测试用例设计方法之等价类划分法

(c)2006-2024 SYSTEM All Rights Reserved IT常识