您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 经营企划 > 第2章黑盒测试决策表
2019/8/301第2章黑盒测试用例设计方法2019/8/302黑盒测试用例设计方法-----------决策表方法2019/8/3035.决策表法5.1概述在一个程序中,如果输入输出比较多,输入之间、输出之间相互制约的条件比较多,在这种情况下使用决策表更合适,它可以清楚地表达它们之间的各种复杂关系。决策表法是黑盒测试方法中最为严格、最具有逻辑性的测试方法2019/8/3055.决策表法5.2决策表:2019/8/3065.决策表法决策表通常由四部分组成:条件桩动作桩条件项动作项规则2019/8/307条件桩:列出问题的所有条件条件项:针对条件桩给出的条件列出所有可能的取值动作桩:给出问题规定的可能采取的操作动作项:与条件项紧密相关,指出在条件项的各组取值情况下应采取的动作项中的每一列是一条规则2019/8/3085.决策表法规则指示在条件部分中指示的条件环境下要采取什么行动.在上图的决策表中,如果条件1条件2为真,而条件3条件4为假,那么采取行动3.规则1中的条件1.2.3称为“不关心”条目.不关心条目解释有两种:条件无关或条件不适用.2019/8/3095.3决策表的化简有n个条件的决策表,对应的规则将有2n条,当n非常大的时候,这是非常繁琐的。因此,应对决策表进行化简.决策表的化简包括两个方面:2019/8/30105.3决策表的化简(1)合并如果一个条件项(表中某列中的条件值)和另外一个条件项所产生的动作是相同的,且两个条件项对应的每一行的值只有一个是不同的,则可以将其合并.合并的项除了不同值变成”不关心”条目外,其余不变(1)两条规则合并成一条2019/8/3011条件项“—”表示与取值无关。(2)包含如果两个条件项的动作是相同的,对任意条件1的值和条件2中对应的值,如果满足:A.如果条件1的值是T(F),则条件2中的值也是T(F).B.如果条件1的值是-(不关心),则条件2中的值是T,F,-,称条件1包含条件2,条件2可以撤去.重复A,B就可以得到精简的决策表.(2)两条规则的进一步合并2019/8/3013条件项“—”在逻辑上包含其它的条件。2019/8/30145.3决策表的化简8F-TF×2019/8/30155.决策表法构造决策表的步骤:(1)列出所有的条件桩和动作桩(2)确定规则的个数(3)填入条件项(4)填入动作项,得到初始的决策表(5)对初始的决策表化简2019/8/3016例:维修机器问题问题描述:“……对于功率大于50马力的机器,并且维修记录不全或已运行10年以上的机器,应给予优先的维修处理……”请建立决策表。例:维修机器问题(续)(1)列出所有的条件桩和动作桩条件桩C1:功率大于50马力吗?C2:维修记录不全吗?C3:运行超过10年吗?动作桩A1:进行优先处理A2:作其他处理2019/8/3017(2)确定规则个数输入条件个数:3;每个条件的取值:“是”或“否”;规则个数:2*2*2=8;2019/8/3018功率大于50马力吗维修记录不全吗运行超过10年吗例:维修机器问题(续)(3)填入条件项;2019/8/301912345678条件功率大于50马力吗?YYYYNNNN维修记录不全吗?YYNNYYNN运行超过10年吗?YNYNYNYN动作进行优先处理作其他处理利用集合的笛卡尔积计算条件项的取值例:维修机器问题(续)2019/8/3020(4)填入动作项;12345678条件功率大于50马力吗?YYYYNNNN维修记录不全吗?YYNNYYNN运行超过10年吗?YNYNYNYN动作进行优先处理作其他处理1,2合并,5,7合并,6,8合并例:维修机器问题(续)2019/8/3021(1)(2)(3)(4)(5)条件功率大于50马力吗?YYYNN维修记录不全吗?YNN——运行超过10年吗?—YNYN动作进行优先处理作其他处理三角形问题2019/8/3022问题描述输入三个正整数a、b、c,分别作为三角形的三条边,通过程序判断三条边是否能构成三角形?如果能构成三角形,判断三角形的类型(等边三角形、等腰三角形、一般三角形)。请用基于判定表的方法设计测试用例。一、设计判定表2019/8/3023•(1)条件桩•C1:a,b,c构成三角形?•C2:a=b?•C3:a=c?•C4:b=c?•(2)规则数•共有四个条件,每个条件的取值为“是”或“否”,因此有24=16条规则。2019/8/3024(3)动作桩A1:非三角形;A2:不等边三角形;A3:等腰三角形;A4:等边三角形;A5:不可能;2019/8/30255.决策表法5.4三角形问题的决策表用例设计表11-8910111213141516C1:abc能否构成三角形?C2:a=b?C3:a=c?C4:b=c?N---YYYYYYYNYYNYYYNNYNYYYNYNYNNYYNNNA1:非三角形A2:一般三角形A3:等腰三角形A4:等边三角形A5:不可能√√√√√√√√√该条件可以扩展成:a+bcb+cac+ab2019/8/30265.决策表法表21234567891011C1:ab+c?C2:ba+c?C3:ca+b?C4:a=b?C5:a=c?C6:b=c?N-----YN----YYN---YYYYYYYYYYYNYYYYNYYYYYNNYYYNYYYYYNYNYYYNNYYYYNNNA1:非三角形A2:一般三角形A3:等腰三角形A4:等边三角形A5:不可能√√√√√√√√√√√三角形问题的扩展决策表条件:a,b,c是否可以构成三角形2019/8/3027根据决策表测试用例编号[a,b,c]期望输出DT1DT2DT3DT4DT5DT6DT7DT8DT9DT10DT11412142124555??????223???232322345非三角形非三角形非三角形等边三角形不可能不可能等腰三角形不可能等腰三角形等腰三角形一般三角形2019/8/3028NextDate函数的决策表问题描述程序有三个输入变量month、day、year,并且满足:1≤month≤12、1≤day≤31、1900≤year≤2050。它们分别作为输入日期的月份、日、年份,通过程序可以输出该输入日期在日历上下一天的日期。例如,输入为2005年11月29日,则该程序的输出为2005年11月30日。2019/8/30295.决策表法涉及的操作:a1:不可能a2:day加1a3:day复位a4:month加1a5:month复位a6:year加1第一次尝试M1={月份:每月有30天}M2={月份:每月有31天}M3={月份:此月是2月}D1={日期:1≤日期≤28}D2={日期:日期=29}D3={日期:日期=30}D4={日期:日期=31}Y1={年:年是闰年}Y2={年:年是平年}有256条规则的第一次尝试条件c1:月份在M1中?Tc2:月份在M2中?Tc3:月份在M3中?Tc4:日期在D1中?c5:日期在D2中?c6:日期在D3中?c7:日期在D4中?c8:年在Y1中?a1:不可能a2:NextDate年变量对应的等价类收缩为表中的一个条件第二次尝试(关注日期和月份)M1={月份:每月有30天}M2={月份:每月有31天,12月除外}M3={月份:此月是12月}M4={月份:此月是2月}D1={日期:1≤日期≤27}D2={日期:日期=28}D3={日期:日期=29}D4={日期:日期=30}D5={日期:日期=31}Y1={年:年是闰年}Y2={年:年不是闰年}2019/8/30335.决策表法建立条件:c1:month在Mi中(如M1,M2…)c2:day在Di中c3:year在Yi中NextDate函数的判定表12345678910c1:月份在M1M1M1M1M1M2M2M2M2M2c2:日期在D1D2D3D4D5D1D2D3D4D5c3:年在——————————行为a1:不可能Xa2:日期增1XXXXXXXa3:日期复位XXa4:月份增1XXa5:月份复位a6:年增1每月30天每月31天,12月除外续……111213141516171819202122c1:月份在M3M3M3M3M3M4M4M4M4M4M4M4c2:日期在D1D2D3D4D5D1D2D2D3D3D4D5c3:年在——————Y1Y2Y1Y2——行为a1:不可能XXXa2:日期增1XXXXXXa3:日期复位XXXa4:月份增1XXa5:月份复位Xa6:年增1X此月是12月此月是2月此年是闰年NextDate函数的精简判定表4510c1:月份在M1M1M2c2:日期在D4D5D5c3:年在———行为a1:不可能Xa2:日期增1a3:日期复位XXa4:月份增1XXa5:月份复位a6:年增11~3M1D1,D2,D3—X6~9M2D1,D2,D3,D4—X续……15161718192021,22c1:月份在M3M4M4M4M4M4c2:日期在D5D1D2D2D3D3c3:年在——Y1Y2Y1Y2行为a1:不可能Xa2:日期增1XXa3:日期复位XXXa4:月份增1XXa5:月份复位Xa6:年增1X11~14M3D1,D2,D3,D4—XXM4D4,D5—NextDate函数的测试用例用例ID月份日期年预期输出1~341520012001年4月16日443020012001年5月1日54312001不可能6~911520012001年1月16日1013120012001年2月1日11~14121520012001年12月16日15123120012002年1月1日1621520012001年2月16日1722820042004年2月29日1822820012001年3月1日1922920042004年3月1日202292001不可能21,222302001不可能2019/8/30395.决策表法5.6决策表测试法的适用范围决策表测试法适用于具有以下特征的应用程序:(1)if-then-else逻辑突出(2)输入变量之间存在逻辑关系(3)涉及输入变量子集的计算(4)输入和输出之间存在因果关系2019/8/30405.决策表法适用于使用决策表设计测试用例的情况:(1)规格说明以决策表形式给出,或较容易转换为决策表.(2)条件的排列顺序不会也不应该影响执行的操作(3)规则的排列顺序不会也不应该影响执行的操作2019/8/3041(4)当某一规则的条件已经满足,并确定要执行的操作后,不必检验别的规则.(5)如果某一规则的条件要执行多个操作任务,这些操作的执行顺序无关紧要.假设一个中国的航空公司规定:中国去欧美的航线所有座位都有食物供应。每个座位都可以播放电影。中国去非欧美的国外航线都有食物供应,只有商务舱可以播放电影。中国国内的航班的商务舱有食物供应,但是不可以播放电影。中国国内的航班的经济舱除非飞行时间大于2小时就有食物供应,但是不可以播放电影。2019/8/3042判定表2019/8/3043条件规则1规则2规则3规则4规则5规则6航线是国外欧美的100000航线是国外非欧美的011000航线是国内的000111商务舱10100飞行时间大于2小时10动作食物供应111110播放电影110000测试用例2019/8/3044测试案例输入条件预期结果1航线是国外欧美的食物供应、播放电影2航线是国外非欧美的,是商务舱食物供应、播放电影3航线是国外非欧美的,非商务舱食物供应4航线是国内的,是商务舱食物供应5航线是国内的,是经济舱,飞行时间大于2小时食物供应6航线是国内的,是经济舱,飞行时间不大于2小时2019/8/30456.其他黑盒测试技术错误推测法:人们也可以靠经验和直觉推测程序中可能存在的各种错误,从而有针对性地编写检查这些错误的例子。这就是错误
本文标题:第2章黑盒测试决策表
链接地址:https://www.777doc.com/doc-618550 .html