《软件测试---nextdate函数---测试用例详解》由会员分享,可在线阅读,更多相关《软件测试---nextdate函数---测试用例详解(20页珍藏版)》请在金锄头文库上搜索。
1、主讲:黄老师,NextDate函数的用例设计方法,授课班级:软件设计班,NextDate函数的用例设计方法,黑盒测试 等价类划分法 边界值分析法 因果图法 决策表法,NextDate 函数包含三个变量:month(月份)、day(日期) 和 year(年),函数的输出为输入日期后一天的日期。 例如,输入为 2007年9月 9日,则函数的输出为 2007年9月10日 。要求输入变量 month 、 day 和 year 均为整数值,并且满足下列条件: (1)1month12 (2)1day31 (3)1912year2050 此函数的主要特点是输入变量之间的逻辑关系比较复杂。复杂性的来源有两个:
2、一个是输入域的复杂性,另一个是指闰年的规则。例如变量year和变量month取不同的值,对应的变量day会有不同的取值范围,day值的范围可能是130或131,也可能是128或129。,等价类划分法以输入域划分等价类,(1)简单等价类划分测试NextDate函数 有效等价类 简单等价类划分测试NextDate函数可以划分以下三种有效等价类: M1month:1month12 D1day:1day31 Y1year:1912year2050 无效等价类 若条件 (1)(3)中任何一个条件无效,那么NextDate 函数都会产生一个输出,指明相应的变量超出取值范围,例如month 的值不在 112
3、 范围当中。,等价类划分法以输入域划分等价类,显然还存在着大量的 year 、 month 、 day 的无效组合, NextDate 函数将这些组合统一输出为:“无效输入日期”。其无效等价类为: M2month:month12 D2day:day31 Y2year:year2050,等价类划分法以输入域划分等价类,等价类划分法以输入域划分等价类,一般等价类测试用例如表5-2所示。 表5-2 NextDate函数的一般等价类测试用例,健壮等价类测试中包含弱健壮等价类测试和强健壮等价类测试。,弱健壮等价类测试 弱健壮等价类测试中的有效测试用例使用每个有效等价类中的一个值。弱健壮等价类测试中的无效
4、测试用例则只包含一个无效值,其他都是有效值,即含有单缺陷假设。如表5-3所示。,等价类划分法以输入域划分等价类,表5-3 NextDate函数的弱健壮等价类测试用例,强健壮等价类测试 强健壮等价类测试考虑了更多的无效值情况。强健壮等价类测试中的无效测试用例可以包含多个无效值,即含有多个缺陷假设。因为NextDate函数有三个变量,所以对应的强健壮等价类测试用例可以包含一个无效值,两个无效值或三个无效值。如表5-4所示。,等价类划分法以输入域划分等价类,等价类划分法以输入域划分等价类,表5-4 NextDate函数的强健壮等价类测试用例,(2)改进等价类划分测试NextDate函数 在简单等价类
5、划分测试NextDate函数中,没有考虑2月份的天数问题,也没有考虑闰年的问题,月份只包含了30天和31天两种情况。在改进等价类划分测试NextDate函数中,要考虑2月份天数的问题。 关于每个月份的天数问题,可以详细划分为以下等价类: M1month:month有30天 M2month:month有31天, 除去12月 M3month:month是2月 M4month:month是12月 D1day:1day27 D2day:day28 D3day:day29 D4day:day30 D5day:day31 Y1year:year是闰年 Y2year:year不是闰年,等价类划分法以输入域划
6、分等价类,等价类划分法以输入域划分等价类,改进等价类划分测试NextDate函数如表5-5所示。 表5-5 改进等价类划分法测试用例,返回,边界值分析法,边界值分析法设计测试用例 在NextDate函数中,规定了变量month、day、year的相应取值范围。在上面等价类法设计测试用例中已经提过,具体如下: M1month:1month12 D1day:1day31 Y1year:1912year2050,边界值分析法,返回,决策表法,NextDate函数的决策表测试用例设计: NextDate函数中包含了定义域各个变量之间的依赖问题。等价类划分法和边界值分析法只能“独立地”选取各个输入值,不
7、能体现出多个变量的依赖关系。决策表法则是根据变量间的逻辑依赖关系设计测试输入数据,排除不可能的数据组合,很好地解决了定义域的依赖问题。 NextDate函数求解给定某个日期的下一个日期的可能操作(动作桩)如下: 变量day加1操作; 变量day复位操作; 变量month加1操作; 变量month复位操作; 变量year加1操作。,决策表法,根据上述动作桩发现NextDate函数的求解关键是日和月的问题,通常可以在下面等价类(条件桩)的基础上建立决策表: M1month:month有30天 M2month:month有31天,12月除外 M3month:month是12月 M4month:mon
8、th是2月 D1day:1day27 D2day:day28 D3day:day29 D4day:day30 D5day:day31 Y1year:year是闰年 Y2year:year不是闰年,决策表法,输入变量间存在大量逻辑关系的NextDate函数决策表如表5-7所示。 决策表共有22条规则: 第15条规则解决有30天的月份; 第610条规则解决有31天的月份(除12月份以外); 第1115条规则解决12月份; 第1622条规则解决2月份和闰年的问题。 不可能规则也在决策表中列出,比如第5条规则中在有30天的月份中也考虑了31日。,决策表法,决策表法,决策表法,表5-8 简化的NextDate函数决策表,决策表法,根据简化的决策表5-7,可设计如表5-9所示的测试用例。 表5-9 NextDate函数的测试用例组,返回,