《软件测试-7黑盒测试决策表法.ppt》由会员分享,可在线阅读,更多相关《软件测试-7黑盒测试决策表法.ppt(31页珍藏版)》请在金锄头文库上搜索。
1、黑盒测试用例设计黑盒测试用例设计 决策表法决策表法概述l l在一个程序中,如果输入输出比较在一个程序中,如果输入输出比较多,输入之间、输出之间相互制约多,输入之间、输出之间相互制约的条件比较多,在这种情况下使用的条件比较多,在这种情况下使用决策表更合适,它可以清楚地表达决策表更合适,它可以清楚地表达它们之间的各种复杂关系。它们之间的各种复杂关系。l l决策表法是黑盒测试方法中最为严决策表法是黑盒测试方法中最为严格、最具有逻辑性的测试方法格、最具有逻辑性的测试方法1 决策表的概念决策表的概念l决策表的概念:决策表是分析和表达多逻决策表的概念:决策表是分析和表达多逻辑条件下执行不同操作情况的工具。
2、辑条件下执行不同操作情况的工具。l在一些数据处理问题当中,某些操作的实在一些数据处理问题当中,某些操作的实施依赖于多个逻辑条件的组合,即:针对施依赖于多个逻辑条件的组合,即:针对不同逻辑条件的组合值,分别执行不同的不同逻辑条件的组合值,分别执行不同的操作。决策表很适合于处理这类问题。操作。决策表很适合于处理这类问题。决策表实例决策表实例决策表的优点:决策表的优点:l能够将复杂的问题按照各种可能的情况能够将复杂的问题按照各种可能的情况全部列举出来,简明并且避免遗漏。因全部列举出来,简明并且避免遗漏。因此,利用决策表能够设计出完整的测试此,利用决策表能够设计出完整的测试用例集合。用例集合。决策表的
3、组成决策表的组成l决策表通常由以下决策表通常由以下4部分组成:部分组成:条件桩条件桩列出问题的所有条件列出问题的所有条件条件项条件项针对条件桩给出的条件列出所有可能的取值针对条件桩给出的条件列出所有可能的取值动作桩动作桩列出问题规定的可能采取的操作列出问题规定的可能采取的操作动作项动作项指出在条件项的各组取值情况下应采取的动作指出在条件项的各组取值情况下应采取的动作 条件桩条件桩动作桩动作桩 条件项条件项 动作项动作项规规则则将任何一个条件组合的将任何一个条件组合的特定取值及相应要执行特定取值及相应要执行的动作称为一条规则。的动作称为一条规则。在决策表中贯穿条件项在决策表中贯穿条件项和动作项的
4、一列就是一和动作项的一列就是一条规则。条规则。决策表 规则选项 123,4567,8条件:c1 c2 c3TTTTTFTF-FTTFTFFF-动作:a1 a2 a3 a4条件桩条件桩动作项动作项动作桩动作桩条件项条件项规则规则规则规则决策表的生成决策表的生成l若若c1、c2、c3都为真都为真,则采取动作则采取动作a1和和a2;l若若c1、c2都为真都为真,c3为假为假,则采取动作则采取动作a1和和a3;l将任何一个条件组合的特定取值及相应要执将任何一个条件组合的特定取值及相应要执行的动作称为一条规则,在决策表中贯穿条行的动作称为一条规则,在决策表中贯穿条件项和动作项的一列就是一条规则。件项和动
5、作项的一列就是一条规则。决策表的简化决策表的简化l简化是以合并相似规则为目标;简化是以合并相似规则为目标;l若表中有两条以上规则具有相同的动作,若表中有两条以上规则具有相同的动作,并且在条件项之间存在极为相似的关系,并且在条件项之间存在极为相似的关系,便可以合并。便可以合并。NYNNYYNYNNNYYNY将将“阅读指南阅读指南”决策表简化决策表简化 规则规则选项选项145678问问题题觉得疲倦吗觉得疲倦吗YNNN感兴趣吗感兴趣吗-YYN糊涂吗糊涂吗-YN建建议议重读重读继续继续跳下一章跳下一章休息休息决策表的生成决策表的生成-构造决策表的构造决策表的5个步骤:个步骤:(1)列出所有的条件桩和动
6、作桩。)列出所有的条件桩和动作桩。(2)填入条件项)填入条件项(3)填入动作项)填入动作项(4)确定规则的个数,得到初始决策表。)确定规则的个数,得到初始决策表。有有n个条件的决策表有个条件的决策表有2n个规则(每个条件取真、假值)个规则(每个条件取真、假值)(5) 简化决策表,合并相似规则。简化决策表,合并相似规则。若表中有两条以上规则具有相同的动作,并且在条件项之间存在极若表中有两条以上规则具有相同的动作,并且在条件项之间存在极为相似的关系,便可以合并。为相似的关系,便可以合并。合并后的条件项用符号合并后的条件项用符号“-”表示,说明执行的动作与该条件的取值表示,说明执行的动作与该条件的取
7、值无关。无关。例题:三角形问题决策表例题:三角形问题决策表1.确定条件和动作确定条件和动作2.列出所有的条件桩和动作桩列出所有的条件桩和动作桩3.填入输入项填入输入项4.填入动作项,得到初始决策表填入动作项,得到初始决策表5.化简。(合并相似规则)化简。(合并相似规则)2024/8/113三角形问题的决策表用例设计表表表表1 1 1 11-81-81-81-89 9 9 910101010111111111212121213131313141414141515151516161616C1:abc能否构成三角形?C2:a=b?C3:a=c?C4:b=c?N-YYYYYYYNYYNYYYNNYNY
8、YYNYNYNNYYNNNA1:非三角形A2:一般三角形A3:等腰三角形A4:等边三角形A5:不可能该条件可以扩展成:该条件可以扩展成:该条件可以扩展成:该条件可以扩展成:a+bca+bca+bca+bcb+cab+cab+cab+cac+abc+abc+abc+ab2024/8/114三角形问题的扩展决策表表表表表2 2 2 21 1 1 12 2 2 23 3 3 34 4 4 45 5 5 56 6 6 67 7 7 78 8 8 89 9 9 91010101011111111C1:ab+c?C2:ba+c?C3:ca+b?C4:a=b?C5:a=c?C6:b=c?N-YN-YYN-Y
9、YYYYYYYYYYNYYYYNYYYYYNNYYYNYYYYYNYNYYYNNYYYYNNNA1:非三角形A2:一般三角形A3:等腰三角形A4:等边三角形A5:不可能条件条件条件条件:a,b,c:a,b,c:a,b,c:a,b,c是否可以是否可以是否可以是否可以构成三角形构成三角形构成三角形构成三角形2024/8/115根据决策表测试用例编号编号编号编号a,b,ca,b,ca,b,ca,b,c 期望输出期望输出期望输出期望输出DT1DT2DT3DT4DT5DT6DT7DT8DT9DT10DT114 1 21 4 21 2 45 5 5? ? ? ? ?2 2 3? ? ?2 3 23 2 2
10、3 4 5非三角形非三角形非三角形非三角形非三角形非三角形等边三角形等边三角形不可能不可能不可能不可能等腰三角形等腰三角形不可能不可能等腰三角形等腰三角形等腰三角形等腰三角形一般三角形一般三角形例2:NextDate函数的决策表测试用例设计函数的决策表测试用例设计lmonth变量的有效等价类:变量的有效等价类: M1: month=4,6,9,11 M2: month=1,3,5,7,8,10 M3: month=12 M4: month=2 lday变量的有效等价类:变量的有效等价类: D1: 1day27 D2: day=28 D3: day=29 D4: day=30 D5: day=3
11、1lyear变量的有效等价类:变量的有效等价类: Y1: year是闰年是闰年 Y2: year不是闰年不是闰年l考虑各种有效的输入情况,考虑各种有效的输入情况,程序中可能采程序中可能采取的操作有以下六种取的操作有以下六种: a1: 不可能不可能 a2: day+1 a3: day复位复位 a4: month+1 a5: month复位复位 a6: year+1 规则规则选项选项1234567891011条件:条件:条件:条件:c1:monthc2:dayc3:yearM1D1M1D2M1D3M1D4M1D5M2D1M2D2M2D3M2D4M2D5M3D1动作:动作:动作:动作:a1:不可能不
12、可能a2:day加加1a3:day复位复位a4:month加加1a5:month复位复位a6:year加加1 选项选项规则规则1213141516171819202122条件:条件:条件:条件:c1:monthc2:dayc3:yearM3D2M3D3M3D4M3D5M4D1M4D2Y1M4D2Y2M4D3Y1M4D3Y2M4D4M4D5动作:动作:动作:动作:a1:不可能不可能a2:day加加1a3:day复位复位a4:month加加1a5:month复位复位a6:year加加1简化简化NextDate函数决策表函数决策表l规则规则1、2、3都涉及有都涉及有30天的月份天的月份day类类D1
13、、D2和和D3,并且它们的动作项都是,并且它们的动作项都是day加加1,因此可以将规则,因此可以将规则1、2、3合并。合并。l类似地,有类似地,有31天的月份天的月份day类类D1、D2、D3和和D4也可合并,也可合并,2月的月的D4和和D5也可合也可合并并。简化后的简化后的NextDate函数决策表函数决策表1-3456-91011-1415161718192021-22条件:条件:c1:monthc2:dayc3:yearM1M1D4M1D5M2M2D5M3M3D5M4D1M4D2Y1M4D2Y2M4D3Y1M4D3Y2M4D4、D5动作动作a1:不可能不可能a2:day加加1a3:day
14、复位复位a4:month加加1a5:month复复位位a6:year加加1测试用例表测试用例表测试用例测试用例monthdayyear预期输出预期输出Test1-Test3616200117/6/2001Test463020041/7/2004Test56312001不可能不可能Test6-Test9816200417/8/2004Test1083120011/9/2001Test11-Test141216200417/12/2004Test115123120011/1/2002Test16216200417/2/2004Test17228200429/2/2004Test1822820011
15、/3/2001Test1922920041/3/2001Test202292001不可能不可能Test21-Test222302004不可能不可能决策表测试的适用范围决策表测试的适用范围lif-else逻辑突出;逻辑突出;恒等:恒等: IF A THEN B非:非: IF (NOT A) THEN B或: IF (A OR B) THEN C与:IF (A AND B) THEN Cl输入变量之间存在逻辑关系;输入变量之间存在逻辑关系;l涉及输入变量子集的计算;涉及输入变量子集的计算;l输入与输出之间存在因果关系;输入与输出之间存在因果关系;2024/8/124适用于使用决策表设计测试用例的情
16、况适用于使用决策表设计测试用例的情况:l规格说明以决策表形式给出,或较易转换为决策表.l条件的排列顺序不会也不应该影响执行的操作l规则的排列顺序不会也不应该影响执行的操作l当某一规则的条件已经满足,并确定要执行的操作后,不必检验别的规则.l如果某一规则的条件要执行多个操作任务,这些操作的执行顺序无关紧要.决策表应用决策表应用l决策表最突出的优点是,能够将复杂的问题决策表最突出的优点是,能够将复杂的问题按照各种可能的情况全部列举出来,简明并按照各种可能的情况全部列举出来,简明并避免遗漏。避免遗漏。l利用决策表能够设计出完整的测试用例集合。利用决策表能够设计出完整的测试用例集合。l运用决策表设计测
17、试用例可以将条件理解为运用决策表设计测试用例可以将条件理解为输入,将动作理解为输出输入,将动作理解为输出练习1l某校关于学生升留级的规定为:一学期有三门考试课程不及格,直接留级;一学期考试和考察四门课程不及格者,不予补考,直接留级;练习2l某厂对一部分职工重新分配工作,分配原则是:年龄不满20岁,文化程度是小学者脱产学习,文化程度是中学者当电工;年龄满20岁但不足50岁,文化程度是小学或中学者,男性当钳工,女性当车工;文化程度是大学者技术员;年龄满50及50以上,文化程度是小学或中学者当材料员,文化程度是大学者当技术员。习题习题1、某软件的一个模块的需求规格说明书中描述: “对于功率大于50马
18、力的机器或者维修记录不全的或已经运行10年以上的机器应予以优先的维修处理”。 这里假定“维修记录不全”和“优先维修处理”有严格的定义。 请建立该需求的决策表,并绘制出化简(合并规则)后的决策表。l乘机可免费携带30kg的行李。超出重量按比例收费:l残疾乘客按超出重量的4倍收取费用,若是国内乘客则只收取3倍于超出部分的费用,若是头等舱则只收取2倍于超出重量的费用;l国内乘客头等舱收取4倍于超出部分的费用,否则是6倍;l头等舱的国际乘客收取8倍超出部分的费用,否则是12倍。123456789国内乘客TTTTFFFF头等舱TFTFTFTF残疾乘客FFTTFFTT行李重量W30kgTFFFFFFFF免费(W-30)*2(W-30)*3(W-30)*4(W-30)*6(W-30)*8(W-30)*122024/8/131决策表的化简8F-TF