您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 统计图表 > 实践:黑盒测试之判定表案例
第四章黑盒测试及其实例设计黑盒测试法是根据被测程序功能来进行测试,所以通常也称为功能测试。用黑盒测试法设计测试用例,有4种常用技术:等价分类法边界值分析错误猜测法决策表法因果图法例:维修机器问题问题描述:“……对于功率大于50马力的机器,并且维修记录不全或已运行10年以上的机器,应给予优先的维修处理……”请建立决策表。例:维修机器问题(续)(1)列出所有的条件桩和动作桩条件桩C1:功率大于50马力吗?C2:维修记录不全吗?C3:运行超过10年吗?动作桩A1:进行优先处理A2:作其他处理例:维修机器问题(续)(2)确定规则个数输入条件个数:3;每个条件的取值:“是”或“否”;规则个数:2*2*2=8;功率大于50马力吗维修记录不全吗运行超过10年吗例:维修机器问题(续)12345678条件功率大于50马力吗?YYYYNNNN维修记录不全吗?YYNNYYNN运行超过10年吗?YNYNYNYN动作进行优先处理作其他处理(3)填入条件项;利用集合的笛卡尔积计算条件项的取值例:维修机器问题(续)12345678条件功率大于50马力吗?YYYYNNNN维修记录不全吗?YYNNYYNN运行超过10年吗?YNYNYNYN动作进行优先处理作其他处理(4)填入动作项;1,2合并,5,7合并,6,8合并例:维修机器问题(续)(5)化简;(1)(2)(3)(4)(5)条件功率大于50马力吗?YYYNN维修记录不全吗?YNN——运行超过10年吗?—YNYN动作进行优先处理作其他处理举例:以下列问题为例给出构造决策表的具体过程:如果某产品销售好,且库存低,则增加产品的生产;如果该产品销售好,但库存量不低,则继续生产;若该产品销售不好,但库存量低,则继续生产;若该产品销售不好,且库存量不低,则停止生产。例:产品销售规则选项1234条件:C1:销售好?C2:库存低?TTTFFTFF动作:a1:增加生产a2:继续生产a3:停止生产√√√√表4-2决策表解法如下:确定规则的个数。对于本题有2个条件(销售、库存),每个条件可以有两个取值,故有22=4种规则。列出所有的条件桩和动作桩。填入条件项。填入动作项,得到初始决策表,如表4-2所示。基于判定表的测试案例:三角形问题问题描述输入三个正整数a、b、c,分别作为三角形的三条边,通过程序判断三条边是否能构成三角形?如果能构成三角形,判断三角形的类型(等边三角形、等腰三角形、一般三角形)。请用基于判定表的方法设计测试用例。(1)条件桩C1:a,b,c构成三角形?C2:a=b?C3:a=c?C4:b=c?(2)规则数共有四个条件,每个条件的取值为“是”或“否”,因此有24=16条规则。一、设计判定表(3)动作桩A1:非三角形;A2:不等边三角形;A3:等腰三角形;A4:等边三角形;A5:不可能;(4)判定表123456789条件a,b,c构成三角形NYYYYYYYYa=b?—YYYYNNNNa=c?—YYNNYYNNb=c?—YNYNYNYN动作非三角形不等边三角形等腰三角形等边三角形不可能注意:条件的选择可以大大扩展判定表的规模;例如a,b,c构成三角形吗?可以扩展为三个条件:ab+c?ba+c?ca+b?1234567891011C1:ab+c?FTTTTTTTTTTC2:ba+c?—FTTTTTTTTTC3:ca+b?——FTTTTTTTTC4:a=b?———TTTTFFFFC5:a=c?———TTFFTTFFC6:b=c?———TFTFTFTFa1:非三角形XXXa2:不等边三角形Xa3:等腰三角形XXXa4:等边三角形X条件桩修改后的判定表用例IDabc预期输出DT1412非三角形DT2142非三角形DT3124非三角形DT4555等边三角形DT5???不可能DT6???不可能DT7223等腰三角形DT8???不可能DT9232等腰三角形DT10322等腰三角形DT11345不等边三角形a=b,a=c,b≠c二、设计测试用例案例:NextDate函数问题描述程序有三个输入变量month、day、year,并且满足:1≤month≤12、1≤day≤31、1900≤year≤2050。它们分别作为输入日期的月份、日、年份,通过程序可以输出该输入日期在日历上下一天的日期。例如,输入为2005年11月29日,则该程序的输出为2005年11月30日。第一次尝试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天}M3={月份:此月是2月}D1={日期:1≤日期≤28}D2={日期:日期=29}D3={日期:日期=30}D4={日期:日期=31}Y1={年:年是平年}Y2={年:年是闰年}第三次尝试(关注日期和月份)M1={月份:每月有30天}M2={月份:每月有31天,12月除外}M3={月份:此月是12月}M4={月份:此月是2月}D1={日期:1≤日期≤27}D2={日期:日期=28}D3={日期:日期=29}D4={日期:日期=30}D5={日期:日期=31}Y1={年:年是闰年}Y2={年:年不是闰年}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不可能
本文标题:实践:黑盒测试之判定表案例
链接地址:https://www.777doc.com/doc-6927087 .html