资源描述
单击此处编辑母版文本样式,第二级,第三级,第四级,课题名称:,Page,*,制作者:,制作者:,aTool.org,本资料仅供参考,不能作为科学依据。谢谢。本资料仅供参考,不能作为科学依据。谢谢,制作者:,制作者:,aTool.org,本资料仅供参考,不能作为科学依据。谢谢。本资料仅供参考,不能作为科学依据。谢谢,制作者:,aTool.org,单击此处编辑母版文本样式,第二级,第三级,第四级,课题名称:,本资料仅供参考,不能作为科学依据。谢谢。本资料仅供参考,不能作为科学依据。谢谢,主讲:黄老师,NextDate,函数用例设计方法,讲课班级:软件设计班,第1页,NextDate,函数用例设计方法,黑盒测试,等价类划分法,边界值分析法,因果图法,决议表法,第2页,NextDate,函数包含三个变量:,month,(月份)、,day,(日期)和,year,(年),函数输出为输入日期后一天日期。比如,输入为,年,9,月,9,日,则函数输出为,年,9,月,10,日。要求输入变量,month,、,day,和,year,均为整数值,而且满足以下条件:,(,1,),1month12,(,2,),1day31,(,3,),1912year2050,此函数主要特点是输入变量之间逻辑关系比较复杂。复杂性起源有两个:一个是输入域复杂性,另一个是指闰年规则。比如变量,year,和变量,month,取不一样值,对应变量,day,会有不一样取值范围,,day,值范围可能是,1,30,或,1,31,,也可能是,1,28,或,1,29,。,等价类划分法,以输入域划分等价类,第3页,(,1,)简单等价类划分测试,NextDate,函数,有效等价类,简单等价类划分测试,NextDate,函数能够划分以下三种有效等价类:,M1,month,:,1month12,D1,day,:,1day31,Y1,year,:,1912year2050,无效等价类,若条件(,1,)(,3,)中任何一个条件无效,那么,NextDate,函数都会产生一个输出,指明对应变量超出取值范围,比如,month,值不在,1,12,范围当中。,等价类划分法,以输入域划分等价类,第4页,显然还存在着大量,year,、,month,、,day,无效组合,,NextDate,函数将这些组合统一输出为:“无效输入日期”。其无效等价类为:,M2,month,:,month12,D2,day,:,day31,Y2,year,:,year2050,等价类划分法,以输入域划分等价类,第5页,等价类划分法,以输入域划分等价类,普通等价类测试用例,如表,5-2,所表示。,表,5-2 NextDate,函数普通等价类测试用例,测试用例,输入,期望输出,month,day,year,Test Case 1,9,9,9月10日,健壮等价类测试中包含弱健壮等价类测试和健壮壮等价类测试。,弱健壮等价类测试,弱健壮等价类测试中有效测试用例使用每个有效等价类中一个值。弱健壮等价类测试中无效测试用例则只包含一个无效值,其它都是有效值,即含有单缺点假设。如表,5-3,所表示。,第6页,等价类划分法,以输入域划分等价类,表,5-3 NextDate,函数弱健壮等价类测试用例,测试用例,输入,期望输出,month,day,year,Test Case 1,9,9,9月10日,Test Case 2,0,9,month,不在,1,12,中,Test Case 3,13,9,month,不在,1,12,中,Test Case 4,9,0,day,不在,1,31,中,Test Case 5,9,32,day,不在,1,31,中,Test Case 6,9,9,1911,year,不在,1912,2050,中,Test Case 7,9,9,2051,year,不在,1912,2050,中,第7页,健壮壮等价类测试,健壮壮等价类测试考虑了更多无效值情况。健壮壮等价类测试中无效测试用例能够包含多个无效值,即含有多个缺点假设。因为,NextDate,函数有三个变量,所以对应健壮壮等价类测试用例能够包含一个无效值,两个无效值或三个无效值。,如表,5-4,所表示。,等价类划分法,以输入域划分等价类,第8页,等价类划分法,以输入域划分等价类,表,5-4 NextDate,函数健壮壮等价类测试用例,测试用例,输入,期望输出,month,day,year,Test Case 1,-1,9,month,不在,1,12,中,Test Case 2,9,-1,day,不在,1,31,中,Test Case 3,9,9,1900,year,不在,1912,2050,中,Test Case 4,-1,-1,变量,month,、,day,无效,变量,year,有效,Test Case 5,-1,9,1900,变量,month,、,year,无效,变量,day,有效,Test Case 6,9,-1,1900,变量,day,、,year,无效,变量,month,有效,Test Case 7,-1,-1,1900,变量,month,、,day,、,year,无效,第9页,(,2,)改进等价类划分测试,NextDate,函数,在简单等价类划分测试,NextDate,函数中,没有考虑,2,月份天数问题,也没有考虑闰年问题,月份只包含了,30,天和,31,天两种情况。在改进等价类划分测试,NextDate,函数中,要考虑,2,月份天数问题。,关于每个月份天数问题,能够详细划分为以下等价类:,M1,month,:,month,有,30,天,M2,month,:,month,有,31,天,除去,12,月,M3,month,:,month,是,2,月,M4,month,:,month,是,12,月,D1,day,:,1day27,D2,day,:,day,28,D3,day,:,day,29,D4,day,:,day,30,D5,day,:,day,31,Y1,year,:,year,是闰年,Y2,year,:,year,不是闰年,等价类划分法,以输入域划分等价类,第10页,等价类划分法,以输入域划分等价类,改进等价类划分测试,NextDate,函数如表,5-5,所表示。,表,5-5,改进等价类划分法,测试用例,测试用例,输入,期望输出,month,day,year,Test Case 1,6,30,7月1日,Test Case 2,8,31,9月1日,Test Case 3,2,27,2月28日,Test Case 4,2,28,3月1日,Test Case 5,2,29,3月1日(是闰年),Test Case 6,12,31,1月1日,Test Case 7,9,31,不可能输入日期,Test Case 8,2,29,不可能输入日期,Test Case 9,2,30,不可能输入日期,Test Case 10,15,9,变量,month,无效,Test Case 11,9,35,变量,day,无效,Test Case 12,9,9,2100,变量,year,无效,返回,第11页,边界值分析法,边界值分析法设计测试用例,在,NextDate,函数中,要求了变量,month,、,day,、,year,对应取值范围。在上面等价类法设计测试用例中已经提过,详细以下:,M1,month,:,1month12,D1,day,:,1day31,Y1,year,:,1912year2050,第12页,边界值分析法,测试用例,输入,期望输出,month,day,year,Test Case 1,-1,15,month,不在,1,12,中,Test Case 2,0,15,month,不在,1,12,中,Test Case 3,1,15,1月16日,Test Case 4,2,15,2月16日,Test Case 5,11,15,11月16日,Test Case 6,12,15,12月16日,Test Case 7,13,15,month,不在,1,12,中,Test Case 8,6,-1,day,不在,1,31,中,Test Case 9,6,0,day,不在,1,31,中,Test Case 10,6,1,6月2日,Test Case 11,6,2,6月3日,Test Case 12,6,30,7月1日,Test Case 13,6,31,不可能输入日期,Test Case 14,6,32,day,不在,1,31,中,Test Case 15,6,15,1911,year,不在,1912,2050,中,Test Case 16,6,15,1912,196月16日,Test Case 17,6,15,1913,196月16日,Test Case 18,6,15,2049,2049,年,6,月,16,日,Test Case 19,6,15,2050,2050,年,6,月,16,日,Test Case 20,6,15,2051,year,不在,1912,2050,中,返回,第13页,决议表法,NextDate,函数决议表测试用例设计:,NextDate,函数中包含了定义域各个变量之间依赖问题。等价类划分法和边界值分析法只能“独立地”选取各个输入值,不能表达出多个变量依赖关系。决议表法则是依据变量间逻辑依赖关系设计测试输入数据,排除不可能数据组合,很好地处理了定义域依赖问题。,NextDate,函数求解给定某个日期下一个日期可能操作(动作桩)以下:,变量,day,加,1,操作;,变量,day,复位操作;,变量,month,加,1,操作;,变量,month,复位操作;,变量,year,加,1,操作。,第14页,决议表法,依据上述动作桩发觉,NextDate,函数求解关键是日和月问题,通常能够在下面等价类(条件桩)基础上建立决议表:,M1,month,:,month,有,30,天,M2,month,:,month,有,31,天,,12,月除外,M3,month,:,month,是,12,月,M4,month,:,month,是,2,月,D1,day,:,1day27,D2,day,:,day,28,D3,day,:,day,29,D4,day,:,day,30,D5,day,:,day,31,Y1,year,:,year,是闰年,Y2,year,:,year,不是闰年,第15页,决议表法,输入变量间存在大量逻辑关系,NextDate,函数决议表如表,5-7,所表示。,决议表共有,22,条规则:,第,15,条规则处理有,30,天月份;,第,610,条规则处理有,31,天月份(除,12,月份以外);,第,1115,条规则处理,12,月份;,第,1622,条规则处理,2,月份和闰年问题。,不可能规则也在决议表中列出,比如第,5,条规则中在有,30,天月份中也考虑了,31,日。,第16页,决议表法,规则,选项,1,2,3,4,5,6,7,8,9,10,11,条件:,C1:month,在,M1,M1,M1,M1,M1,M2,M2,M2,M2,M2,M3,C2:day,在,D1,D2,D3,D4,D5,D1,D2,D3,D4,D5,D1,C3:year,在,动作:,A1:,不可能,A2:day,加,1,A3:day,复位,A4:month,加,1,A5:month,复位,A6,:,year,加,1,第17页,决议表法,规则,选项,12,13,14,15,16,17,18,19,20,21,22,条件:,C1:month,在,M3,M3,M3,M3,M4,M4,M4,M4,M4,M4,M4,C2:day,在,D2,D3,D4,D5,D1,D2,D2,D3,D3,D4,D5,C3:year,在,Y1,Y2,Y1,Y2,动作:,A1:,不可能,A2:day,加,1,A3:day,复位,A4:month,加,1,A5:month,复位,A6,:,year,加,1,第18页,决议表法,表,5-8,简化,NextDate,函数决议表,选项,规则,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,条件:,C1:month,在,M1,M1,M1,M2,M2,M3,M3,M4,M4,M4,M4,M4,M4,C2:day,在,D1,D2,D3,D4,D5,D1,D2,D3,D4,D5,D1,D2,D3,D4,D5,D1,D2,D2,D3,D3,D4,D5,C3:year,在,Y1,Y2,Y1,Y2,动作:,A1:,不可能,A2:day,加,1,A3:day,复位,A4:month,加,1,A5:month,复位,A6,:,year,加,1,第19页,决议表法,依据简化决议表,5-7,,可设计如表,5-9,所表示测试用例。,表,5-9 NextDate,函数测试用例组,测试用例,month,day,year,预期输出,Test Case 13,6,15,6月16日,Test Case 4,6,30,7月1日,Test Case 5,6,31,不可能输入日期,Test Case 69,1,15,1月16日,Test Case 10,1,31,2月1日,Test Case 1114,12,15,12月16日,Test Case 15,12,31,1月1日,Test Case 16,2,15,2月16日,Test Case 17,2,28,2月29日,Test Case 18,2,28,3月1日,Test Case 19,2,29,3月1日,Test Case 20,2,29,不可能输入日期,Test Case 21,,,22,2,30,不可能输入日期,返回,第20页,
展开阅读全文