软件测试用例的设计方法.ppt
第三章软件测试用例的设计方法黑盒测试用例设计方法黑盒测试用例设计方法 -决策表方法决策表方法5.决策表法5.1 概述在一个程序中,如果在一个程序中,如果输入入输出比出比较多,多,输入之入之间、输出之出之间相互制相互制约的条件比的条件比较多,在多,在这种情况下使用种情况下使用决策表更合适,它可以清楚地表达决策表更合适,它可以清楚地表达它它们之之间的各种复的各种复杂关系。关系。决策表法是黑盒决策表法是黑盒测试方法中最方法中最为严格、最具有格、最具有逻辑性的性的测试方法方法5.决策表法决策表通常由四部分组成:条件桩动作桩条件项动作项规则条件条件桩:列出列出问题的所有条件的所有条件条件条件项:针对条件条件桩给出的条件列出所出的条件列出所有可能的取有可能的取值动作作桩:给出出问题规定的可能采取的操定的可能采取的操作作动作作项:与条件:与条件项紧密相关,指出在条密相关,指出在条件件项的各的各组取取值情况下情况下应采取的采取的动作作项中的每一列是一条中的每一列是一条规则决策表 规则选项 123,4567,8条件:c1 c2 c3TTTTTFTF-FTTFTFFF-动作:a1 a2 a3 a4条件桩条件桩动作项动作项动作桩动作桩条件项条件项阅读指南决策表单 规则规则选项选项12345678问问题题觉得疲倦觉得疲倦吗吗YYYYNNNN感兴趣吗感兴趣吗YYNNYYNN糊涂吗糊涂吗YNYNYNYN建建议议重读重读继续继续跳下一章跳下一章休息休息5.决策表法5.2决策表:5.决策表法规则指示在规则的条件部分中指示的条件环境下要采取什么行动.在上图的决策表中,如果条件1条件2为真,而条件3条件4为假,那么采取行动3.规则1中的条件1.2.3称为“不关心”条目.不关心条目解释有两种:条件无关或条件不适用.5.3决策表的化简有有n n个条件的决策表个条件的决策表,对应的的规则将有将有2 2n n条,当条,当n n非常大的非常大的时候,候,这是非常繁是非常繁琐的。因此的。因此,应对决策决策表表进行化行化简.决策表的化决策表的化简包括两个方面包括两个方面:5.3决策表的化简(1)合并如果一个条件如果一个条件项(表中某列中的条件表中某列中的条件值)和另外一个条件和另外一个条件项所所产生的生的动作作是相同的是相同的,且两个条件且两个条件项对应的每一的每一行的行的值只有一个是不同的只有一个是不同的,则可以将可以将其合并其合并.合并的合并的项除了不同除了不同值变成成”不关心不关心”条目外条目外,其余不其余不变5.3决策表的化简(2)包含如果两个条件如果两个条件项的的动作是相同的作是相同的,对任任意条件意条件1 1的的值和条件和条件2 2中中对应的的值,如果如果满足足:A.A.如果条件如果条件1 1的的值是是T(F),T(F),则条件条件2 2中的中的值也是也是T(F).T(F).B.B.如果条件如果条件1 1的的值是是-(-(不关心不关心),),则条件条件2 2中的中的值是是T,F,-,T,F,-,称条件称条件1 1包含条件包含条件2 2,条件条件2 2可以撤去可以撤去.重复重复A,BA,B就可以得到精就可以得到精简的决策表的决策表.决策表的简化简化是以合并相似规则为目标;简化是以合并相似规则为目标;若表中有两条以上规则具有相同的动作,并且若表中有两条以上规则具有相同的动作,并且在条件项之间存在极为相似的关系,便可以合在条件项之间存在极为相似的关系,便可以合并。并。NYNNYYNYNNNYYNY将“阅读指南”决策表简化 规则规则选项选项145678问问题题觉得疲倦觉得疲倦吗吗YNNN感兴趣吗感兴趣吗YYN糊涂吗糊涂吗YN建建议议重读重读继续继续跳下一章跳下一章休息休息5.3决策表的化简8F-TF5.决策表法构造决策表的步骤:(1)确定规则的个数(2)列出所有的条件桩和动作桩(3)填入输入项(4)填入动作项,得到初始的决策表(5)对初始的决策表化简5.决策表法5.4三角形问题的决策表用例设计表表表表1 1 1 11-81-81-81-89 9 9 910101010111111111212121213131313141414141515151516161616C1:abc能否构成三角形?C2:a=b?C3:a=c?C4:b=c?N-YYYYYYYNYYNYYYNNYNYYYNYNYNNYYNNNA1:非三角形A2:一般三角形A3:等腰三角形A4:等边三角形A5:不可能该条件可以扩展成:该条件可以扩展成:该条件可以扩展成:该条件可以扩展成:a+bca+bca+bca+bcb+cab+cab+cab+cac+abc+abc+abc+ab5.决策表法表表表表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-YNN-YYN-YYYYYYYYYYYNYYYYNYYYYYNNYYYNYYYYYNYNYYYNNYYYYNNNA1:非三角形A2:一般三角形A3:等腰三角形A4:等边三角形A5:不可能三角形问题的扩展决策表a,b,ca,b,ca,b,ca,b,c是否可以构成是否可以构成是否可以构成是否可以构成三角形三角形三角形三角形根据决策表测试用例编号编号编号编号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 23 4 5非三角形非三角形非三角形非三角形非三角形非三角形等边三角形等边三角形不可能不可能不可能不可能等腰三角形等腰三角形不可能不可能等腰三角形等腰三角形等腰三角形等腰三角形一般三角形一般三角形5.决策表法5.5 NextDate函数的决策表涉及的操作:a1:不可能a2:day加1a3:day复位a4:month加1a5:month复位a6:year加15.决策表法根据如下等价类:M1:月:月有30天M2:月:月有31天,12月除外M3:月:月有12月M4:月:月是2月D1:day:1day 27D2:day:day=28D3:day:day=29D4:day:day=30D5:day:day=31Y1:year:year是闰年Y2:year:year不是闰年5.决策表法建立条件:c1:month在Mi中(如M1,M2)c2:day在Di中c3:year在Yi中5.决策表法表表表表3 3 3 31 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:month在c2:day在c3:year在M1D1-M1D2-M1D3-M1D4-M1D5-M2D1-M2D2-M2D3-M2D4-M2D5-M3D1-a1:不可能a2:day加1a3:day复位a4:month加1a5:month复位a6:year加15.决策表法表表表表3 3 3 3续续续续1212121213131313141414141515151516161616R1R1R1R11818181819191919202020202121212122222222c1:month在c2:day在c3:year在M3D2-M3D3-M3D4-M3D4-M4D1-M4D2Y1M4D2Y2M4D3Y1M4D3Y2M4D4-M4D5-a1:不可能a2:day加1a3:day复位a4:month加1a5:month复位a6:year加15.决策表法化简决策表:表表表表4 4 4 41-31-31-31-34 4 4 45 5 5 56-96-96-96-91010101011-1411-1411-1411-1415151515c1:month在c2:day在c3:year在M1D1D3-M1D4-M1D5-M2D1D4-M2D5-M3D1D4-M3D5-a1:不可能a2:day加1a3:day复位a4:month加1a5:month复位a6:year加1表表表表4 4 4 4续续续续161616161717171718181818191919192020202021-2221-2221-2221-22c1:month在c2:day在c3:year在M4D1-M4D2Y1M4D2Y2M4D3Y1M4D3Y2M4D4-D5-a1:不可能a2:day加1a3:day复位a4:month加1a5:month复位a6:year加1 根据决策表设计测试用例根据决策表设计测试用例根据决策表设计测试用例根据决策表设计测试用例:编号编号编号编号month,day,yearmonth,day,yearmonth,day,yearmonth,day,year期望输出期望输出期望输出期望输出Test1Test3Test4Test5Test6Test9Test10Test1114Test15Test16Test17Test18Test19Test20Test21228 16 20018 30 20049 31 20011 16 20041 31 200112 16 200412 31 20012 16 20042 28 20042 28 20012 29 20042 29 20012 30 200417/8/200131/8/2004不可能不可能17/1/20041/2/200117/12/20041/1/200217/2/200129/2/20041/3/20011/3/2004不可能不可能不可能不可能5.决策表法5.6决策表测试法的适用范围决策表测试法适用于具有以下特征的应用程序:决策表测试法适用于具有以下特征的应用程序:(1)if-then-else逻辑突出(2)输入变量之间存在逻辑关系(3)涉及输入变量子集的计算(4)输入和输出之间存在因果关系5.决策表法适用于使用决策表设计测试用例的情况适用于使用决策表设计测试用例的情况:(1)规格说明以决策表形式给出,或较容易转换为决策表.(2)条件的排列顺序不会也不应该影响执行的操作(3)规则的排列顺序不会也不应该影响执行的操作(4)当某一规则的条件已经满足,并确定要执行的操作后,不必检验别的规则.(5)如果某一规则的条件要执行多个操作任务,这些操作的执行顺序无关紧要.某厂对一部分职工重新分配工作,分配原则是:年龄不满20岁,文化程度是小学者脱产学习,文化程度是中学者当电工;年龄满20岁但不足50岁,文化程度是小学或中学者,男性当钳工,女性当车工;文化程度是大学者技术员;年龄满50及50以上,文化程度是小学或中学者当材料员,文化程度是大学者当技术员。某校关于学生升留级的规定为:一学期有三门考试课程不及格,直接留级;一学期考试和考察四门课程不及格者,不予补考,直接留级;