NextDate
函数的用例设计方法
NextDate函数的用例设计方法
函数的用例设计方法
NextDate
主讲:黄老师
授课班级:软件设计班
制作者:aTool.org
NextDate
函数的用例设计方法
NextDate函数的用例设计方法
函数的用例设计方法
NextDate
n 黑盒测试
n 等价类划分法
n 边界值分析法
n 因果图法
n 决策表法
制作者:aTool.org
Page
2
制作者:
等价类划分法——————以输入域划分等价类
等价类划分法
以输入域划分等价类
以输入域划分等价类
等价类划分法
NextDate 函数包含三个变量:month(月份)、day(日期)
和 year(年),函数的输出为输入日期后一天的日期。 例如,
输入为 2007年9月 9日,则函数的输出为 2007年9月10日 。
要求输入变量 month 、 day 和 year 均为整数值,并且满足
下列条件:
(1)1≤month≤12
(2)1≤day≤31
(3)1912≤year≤2050
此函数的主要特点是输入变量之间的逻辑关系比较复杂。复杂
性的来源有两个:一个是输入域的复杂性,另一个是指闰年
的规则。例如变量year和变量month取不同的值,对应的变
量day会有不同的取值范围,day值的范围可能是1~30或1~
31,也可能是1~28或1~29。
制作者:aTool.org
Page
3
制作者:
等价类划分法——————以输入域划分等价类
等价类划分法
以输入域划分等价类
以输入域划分等价类
等价类划分法
(1)简单等价类划分测试NextDate函数
有效等价类
简单等价类划分测试NextDate函数可以划分以下三种有效等价类:
M1={month:1≤month≤12}
D1={day:1≤day≤31}
Y1={year:1912≤year≤2050}
无效等价类
若条件 (1)~(3)中任何一个条件无效,那么NextDate 函数
都会产生一个输出,指明相应的变量超出取值范围,例如
month 的值不在 1~12 范围当中。
制作者:aTool.org
Page
4
制作者:
等价类划分法——————以输入域划分等价类
等价类划分法
以输入域划分等价类
以输入域划分等价类
等价类划分法
显然还存在着大量的 year 、 month 、 day 的无效组
合, NextDate 函数将这些组合统一输出为:“无效
输入日期”。其无效等价类为:
M2={month:month<1}
M3={month:month>12}
D2={day:day<1}
D3={day:day>31}
Y2={year:year<1912}
Y3={year:year>2050}
制作者:aTool.org
Page
5
制作者:
等价类划分法——————以输入域划分等价类
等价类划分法
以输入域划分等价类
以输入域划分等价类
等价类划分法
一般等价类测试用例如表5-2所示。
表5-2 NextDate函数的一般等价类测试用例
测试
用例
Test
Case 1
month
9
输入
day
9
year
2007
期望输出
2007年9月10日
健壮等价类测试中包含弱健壮等价类测试和强健壮等价类测试。
• 弱健壮等价类测试
弱健壮等价类测试中的有效测试用例使用每个有效等价
类中的一个值。弱健壮等价类测试中的无效测试用例则只
包含一个无效值,其他都是有效值,即含有单缺陷假设。
如表5-3所示。
制作者:aTool.org
Page
6
制作者:
等价类划分法——————以输入域划分等价类
等价类划分法
以输入域划分等价类
以输入域划分等价类
等价类划分法
测试用例
Test Case 1
Test Case 2
Test Case 3
Test Case 4
Test Case 5
Test Case 6
Test Case 7
month
9
0
13
9
9
9
9
输入
day
9
9
9
0
32
9
9
year
2007
2007
2007
2007
2007
1911
2051
期望输出
2007年9月10日
month不在1~12中
month不在1~12中
day不在1~31中
day不在1~31中
year不在1912~2050中
year不在1912~2050中
表5-3 NextDate函数的弱健壮等价类测试用例
制作者:aTool.org
Page
7
制作者:
等价类划分法——————以输入域划分等价类
等价类划分法
以输入域划分等价类
以输入域划分等价类
等价类划分法
n 强健壮等价类测试
n 强健壮等价类测试考虑了更多的无效值情况。强健壮
等价类测试中的无效测试用例可以包含多个无效值,
即含有多个缺陷假设。因为NextDate函数有三个变量,
所以对应的强健壮等价类测试用例可以包含一个无效
值,两个无效值或三个无效值。如表5-4所示。
制作者:aTool.org
Page
8
制作者: