单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,Phd Thesis-Haris Baltzakis,*,黑盒测试用例设计,决策表法,概述,在一个程序中,如果输入输出比较多,输入之间、输出之间相互制约的条件比较多,在这种情况下使用决策表更合适,它可以清楚地表达它们之间的各种复杂关系决策表法是黑盒测试方法中最为严格、最具有逻辑性的测试方法,1,决策表的概念,决策表的概念:决策表是分析和表达多逻辑条件下执行不同操作情况的工具在一些数据处理问题当中,某些操作的实施依赖于多个逻辑条件的组合,即:针对不同逻辑条件的组合值,分别执行不同的操作决策表很适合于处理这类问题决策表实例,规则,选项,1,2,3,4,5,6,7,8,问题,觉得疲倦?,Y,Y,Y,Y,N,N,N,N,感兴趣吗?,Y,Y,N,N,Y,Y,N,N,糊涂吗?,Y,N,Y,N,Y,N,Y,N,建议,重读,继续,跳下一章,休息,“,阅读指南,”,决策表,决策表的优点:,能够将复杂的问题按照各种可能的情况全部列举出来,简明并且避免遗漏。
因此,利用决策表能够设计出完整的测试用例集合决策表的组成,决策表通常由以下,4,部分组成:,条件桩,列出问题的所有条件,条件项,针对条件桩给出的条件列出所有可能的取值,动作桩,列出问题规定的可能采取的操作,动作项,指出在条件项的各组取值情况下应采取的动作,条件桩,动作桩,条件项,动作项,规则,将任何一个条件组合的特定取值及相应要执行的动作称为一条规则在决策表中贯穿条件项和动作项的一列就是一条规则决策表,规则,选项,1,2,3,,,4,5,6,7,,,8,条件,:c1,c2,c3,T,T,T,T,T,F,T,F,-,F,T,T,F,T,F,F,F,-,动作,:a1,a2,a3,a4,条件桩,动作项,动作桩,条件项,规则,决策表的生成,若,c1,、,c2,、,c3,都为真,则采取动作,a1,和,a2;,若,c1,、,c2,都为真,c3,为假,则采取动作,a1,和,a3;,将任何一个条件组合的特定取值及相应要执行的动作称为一条规则,在决策表中贯穿条件项和动作项的一列就是一条规则决策表的简化,简化是以合并相似规则为目标;,若表中有两条以上规则具有相同的动作,并且在条件项之间存在极为相似的关系,便可以合并。
N,Y,N,N,Y,Y,N,Y,N,N,N,Y,Y,N,Y,将,“,阅读指南,”,决策表简化,规则,选项,1,4,5,6,7,8,问,题,觉得疲倦吗,Y,N,N,N,感兴趣吗,-,Y,Y,N,糊涂吗,-,Y,N,建,议,重读,继续,跳下一章,休息,决策表的生成,-,构造决策表的,5,个步骤:,(,1,)列出所有的条件桩和动作桩2,)填入条件项,(,3,)填入动作项,(,4,)确定规则的个数,得到初始决策表有,n,个条件的决策表有,2,n,个规则(每个条件取真、假值),(,5,)简化决策表,合并相似规则若表中有两条以上规则具有相同的动作,并且在条件项之间存在极为相似的关系,便可以合并合并后的条件项用符号“,-”,表示,说明执行的动作与该条件的取值无关例题:三角形问题决策表,确定条件和动作,列出所有的条件桩和动作桩,填入输入项,填入动作项,得到初始决策表,化简合并相似规则),2024/12/10,13,三角形问题的决策表用例设计,表,1,1-8,9,10,11,12,13,14,15,16,C1:abc,能否构成三角形,?,C2:a=b?,C3:a=c?,C4:b=c?,N,-,-,-,Y,Y,Y,Y,Y,Y,Y,N,Y,Y,N,Y,Y,Y,N,N,Y,N,Y,Y,Y,N,Y,N,Y,N,N,Y,Y,N,N,N,A1:,非三角形,A2:,一般三角形,A3:,等腰三角形,A4:,等边三角形,A5:,不可能,该条件可以扩展成:,a+bcb+cac+ab,2024/12/10,14,三角形问题的扩展决策表,表,2,1,2,3,4,5,6,7,8,9,10,11,C1:ab+c?,C2:ba+c?,C3:ca+b?,C4:a=b?,C5:a=c?,C6:b=c?,N,-,-,-,-,-,Y,N,-,-,-,-,Y,Y,N,-,-,-,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,N,Y,Y,Y,Y,N,Y,Y,Y,Y,Y,N,N,Y,Y,Y,N,Y,Y,Y,Y,Y,N,Y,N,Y,Y,Y,N,N,Y,Y,Y,Y,N,N,N,A1:,非三角形,A2:,一般三角形,A3:,等腰三角形,A4:,等边三角形,A5:,不可能,条件,:a,b,c,是否可以,构成三角形,2024/12/10,15,根据决策表测试用例,编号,a,b,c,期望输出,DT1,DT2,DT3,DT4,DT5,DT6,DT7,DT8,DT9,DT10,DT11,4 1 2,1 4 2,1 2 4,5 5 5,?,?,2 2 3,?,2 3 2,3 2 2,3 4 5,非三角形,非三角形,非三角形,等边三角形,不可能,不可能,等腰三角形,不可能,等腰三角形,等腰三角形,一般三角形,例,2,:,NextDate,函数的决策表测试用例设计,month,变量的有效等价类:,M1:month=4,6,9,11,M2:month=1,3,5,7,8,10,M3:month=12 M4:month=2,day,变量的有效等价类:,D1:1day27 D2:day=28,D3:day=29 D4:day=30 D5:day=31,year,变量的有效等价类:,Y1:year,是闰年,Y2:year,不是闰年,考虑各种有效的输入情况,,程序中可能采取的操作有以下六种,:,a1:,不可能,a2:day+1 a3:day,复位,a4:month+1 a5:month,复位,a6:year+1,规则,选项,1,2,3,4,5,6,7,8,9,10,11,条件:,c1:month,c2:day,c3:year,M1,D1,M1,D2,M1,D3,M1,D4,M1,D5,M2,D1,M2,D2,M2,D3,M2,D4,M2,D5,M3,D1,动作:,a1:,不可能,a2:day,加,1,a3:day,复位,a4:month,加,1,a5:month,复位,a6:year,加,1,选项,规则,12,13,14,15,16,17,18,19,20,21,22,条件:,c1:month,c2:day,c3:year,M3,D2,M3,D3,M3,D4,M3,D5,M4,D1,M4,D2,Y1,M4,D2,Y2,M4,D3,Y1,M4,D3,Y2,M4,D4,M4,D5,动作:,a1:,不可能,a2:day,加,1,a3:day,复位,a4:month,加,1,a5:month,复位,a6:year,加,1,简化,NextDate,函数决策表,规则,1,、,2,、,3,都涉及有,30,天的月份,day,类,D1,、,D2,和,D3,,并且它们的动作项都是,day,加,1,,因此可以将规则,1,、,2,、,3,合并。
类似地,有,31,天的月份,day,类,D1,、,D2,、,D3,和,D4,也可合并,,2,月的,D4,和,D5,也可合并,简化后的,NextDate,函数决策表,1-3,4,5,6-9,10,11-14,15,16,17,18,19,20,21-22,条件:,c1:month,c2:day,c3:year,M1,M1,D4,M1,D5,M2,M2,D5,M3,M3,D5,M4,D1,M4,D2,Y1,M4,D2,Y2,M4,D3,Y1,M4,D3,Y2,M4,D4,、,D5,动作,a1:,不可能,a2:day,加,1,a3:day,复位,a4:month,加,1,a5:month,复位,a6:year,加,1,测试用例表,测试用例,month,day,year,预期输出,Test1-Test3,6,16,2001,17/6/2001,Test4,6,30,2004,1/7/2004,Test5,6,31,2001,不可能,Test6-Test9,8,16,2004,17/8/2004,Test10,8,31,2001,1/9/2001,Test11-Test14,12,16,2004,17/12/2004,Test115,12,31,2001,1/1/2002,Test16,2,16,2004,17/2/2004,Test17,2,28,2004,29/2/2004,Test18,2,28,2001,1/3/2001,Test19,2,29,2004,1/3/2001,Test20,2,29,2001,不可能,Test21-Test22,2,30,2004,不可能,决策表测试的适用范围,if-else,逻辑突出;,恒等:,IF A THEN B,非:,IF(NOT A)THEN B,或:,IF(A OR B)THEN C,与:,IF(A AND B)THEN C,输入变量之间存在逻辑关系;,涉及输入变量子集的计算;,输入与输出之间存在因果关系;,2024/12/10,24,适用于使用决策表设计测试用例的情况,:,规格说明以决策表形式给出,或较易转换为决策表,.,条件的排列顺序不会也不应该影响执行的操作,规则的排列顺序不会也不应该影响执行的操作,当某一规则的条件已经满足,并确定要执行的操作后,不必检验别的规则,.,如果某一规则的条件要执行多个操作任务,这些操作的执行顺序无关紧要,.,决策表应用,决策表最突出的优点是,能够将复杂的问题按照各种可能的情况全部列举出来,简明并避免遗漏。
利用决策表能够设计出完整的测试用例集合运用决策表设计测试用例可以将条件理解为输入,将动作理解为输出,练习1,某校关于学生升留级的规定为:,一学期有三门考试课程不及格,直接留级;,一学期考试和考察四门课程不及格者,不予补考,直接留级;,练习2,某厂对一部分职工重新分配工作,分配原则是,:,年龄不满,20,岁,文化程度是小学者脱产学习,文化程度是中学者当电工;,年龄满,20,岁但不足,50,岁,文化程度是小学或中学者,男性当钳工,女性当车工;文化程度是大学者技术员;,年龄满,50,及,50,以上,文化程度是小学或中学者当材料员,文化程度是大学者当技术员习题,1,、某软件的一个模块的需求规格说明书中描述:,“,对于功率大于,50,马力的机器或者维修记录不全的或已经运行,10,年以上的机器应予以优先的维修处理,”,这里假定“维修记录不全”和“优先维修处理”有严格的定义请建立该需求的决策表,并绘制出化简(合并规则)后的决策表乘机可免费携带30kg的行李超出重量按比例收费:,残疾乘客按超出重量的4倍收取费用,若是国内乘客则只收取3倍于超出部分的费用,若是头等舱则只收取2倍于超出重量的费用;,国内乘客头等舱收取4倍于超出部分的费用,否则是6倍;,头等舱的国际乘客收取8倍超出部分的费用,否则是12倍。
1,2,3,4,5,6,7,8,9,国内乘客,T,T,T,T,F,F,F,F,头等舱,T,F,T,F,T,F,T,F,残疾乘客,F,F,T,T,F,F,T,T,行李重量,W,30kg,T,F,F,F,F,F,F,F,F,免费,(,W-30,),*2,(,W-30,),*3,(,W-30,),*4,(,W-30,),*6,(,W-30,),*8,(,W-30,),*12,2024/12/10,31,决策表的化简,8,F,-,T,F,。