软件测试4-黑盒测试1判定表法

上传人:正** 文档编号:49110034 上传时间:2018-07-23 格式:PPT 页数:81 大小:734KB
返回 下载 相关 举报
软件测试4-黑盒测试1判定表法_第1页
第1页 / 共81页
软件测试4-黑盒测试1判定表法_第2页
第2页 / 共81页
软件测试4-黑盒测试1判定表法_第3页
第3页 / 共81页
软件测试4-黑盒测试1判定表法_第4页
第4页 / 共81页
软件测试4-黑盒测试1判定表法_第5页
第5页 / 共81页
点击查看更多>>
资源描述

《软件测试4-黑盒测试1判定表法》由会员分享,可在线阅读,更多相关《软件测试4-黑盒测试1判定表法(81页珍藏版)》请在金锄头文库上搜索。

1、黑盒测试问题引入例:某个软件需求文档中有这样的说明:第 一列字符必须是A或B,第二列字符必 须是一个数字,在此情况下进行文件的 修改。但如果第一列字符不正确,则给 出信息L;如果第二列字符不是数字, 则给出信息M。逻辑条件的处理在所有的黑盒测试方法中,基于判定表(也称决策表)的 测试是最为严格、最具有逻辑性的测试方法。决策表的概念:决策表是分析和表达多逻辑条件下执行不 同操作的情况的工具。决策表的优点:能够将复杂的问题按照各种可能的情况全 部列举出来,简明并避免遗漏。因此,利用决策表能够设 计出完整的测试用例集合。在一些数据处理问题当中,某些操作的实施依赖于多个逻 辑条件的组合,即:针对不同逻

2、辑条件的组合值,分别执 行不同的操作。决策表很适合于处理这类问题。基于判定表的测试判定表的原理判定表的组成判定表建立的步骤1. 判定表的原理判定表判定表(Decision Table),又叫决策 表判定表是分析和表达多逻辑条件下执 行不同操作的工具。在程序设计发 展的初期,判定表被当 作编写程序的辅助工具。2. 判定表的组成条件桩(Condition Stub)列出问题的所有条件动作桩(Action Stub)列出可能采取的操作条件项(Condition Entity)列出条件桩的取值动作项(Action Entity)列出条件项各种取值下应该采取的动作判定表的组成规则任何一个条件组合的特定取

3、值及其相应要执 行的操作称为规则;在判定表中贯穿条件项和动作项的一列就是 一条规则;判定表中列出多少组条件取值,也就有多少 条规则,即条件项和动作项有多少列。规则示例:三角形问题规则(续)规则合并规则合并就是判定表的简化。有两条或多条规则具有相同的动作,并且其条件项之间存在着极为相似的关系,就可以将规则合并。(1)两条规则合并成一条条件项“” 表示与取值 无关。条件项“ ”在逻辑上 包含其它 的条件。(2)两条规则的进一步合并3. 判定表建立步骤根据软件规格说明列出所有的条件桩和动作桩;确定规则的个数;假如有n个条件,每个条件有两个取值( 0,1),则有2n 种规则; 填入条件项;填入动作项,

4、得到初始决策表;简化,合并相似规则(相同动作)。例:维修机器问题问题描述:“对于功率大于50马力的机器 ,并且维修记录不全或已运行10 年以上的机器,应给予优先的维 修处理”请建立决策表。例:维修机器问题(续)(1)列出所有的条件桩和动作桩条件桩C1:功率大于50马力吗?C2:维修记录不全吗?C3:运行超过10年吗?动作桩A1:进行优先处理A2:作其他处理例:维修机器问题(续)(2)确定规则个数输入条件个数:3;每个条件的取值:“是”或“否”;规则个数:2*2*2 =8;u 功率大于50马力吗u 维修记录不全吗u 运行超过10年吗例:维修机器问题(续)12345678 条 件功率大于50马力吗

5、?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动 作进行优先处理作其他处理案例:三角形问题

6、问题描述输入三个正整数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构成三角形NYYYYYYYY a = b?YY

7、YYNNNN a = c?YYNNYYNN b = c?YNYNYNYN 规则条数统计811111111动 作非三角形不等边三角形等腰三角形等边三角形不可能注意:条件的选择可以大大扩展判定表的规模 ;例如:a, b, c构成三角形吗?可以扩展 为三个条件:a b + c?b a + c?c a + b?则规则条数变为26=64条件桩修改后的判定表a=b, a=c, bc二、设计测试用例课后作业登陆功能说明书:(用户输入和密码输入)1)管理员用户名为“admin”,密码为“123456”,正常登陆2)用户名和密码输入为空,提示 “用户和密码不允许为 空” 在用户名和密码非空的情况下:3)要求用户

8、名必须输入字母,否则提示“输入非法”4)要求密码必须输入数字,否则提示 “输入非法” 在输入合法的情况下:5)用户名错误,提示 “用户名和密码输入错误”,用户名 和密码清空6)用户名正确,密码错误,提示 “用户名和密码输入错 误”,用户名保留,密码清空进一步分析条件Y1)用户名正确 Y2)用户名为空Y3)用户名为非字母 Y4)用户名为字母,但错误M1)密码正确 M2)密码为空 M3)密码为非数字M4)密码为数字,但错误动作:A)正常登陆 B)显示提示信息“用户和密码不允许为空”C)显示提示信息“用户名和密码输入错误”,用户名和密码清 空D)显示提示信息“用户名和密码输入错误”用户名保留,密码

9、清空E)显示提示信息“输入非法”4.3.4 案例: NextDate函数问题描述程序有三个输入变量month、day、year ,并且满足:1month12、1day31、 1900 year 2050。它们分别作为输入日 期的月份、日、年份,通过程序可以输 出该输入日期在日历上下一天的日期。 例如,输入为2005年11月29日,则该程 序的输出为2005年11月30日。NextDate函数为了获得下一个日期,NextDate函数执行如下操作:如果输入日期不是当月最后一天,则把day变量的值加1 ;如果输入日期是111月份中某月的最后一天,则把day 变量的值复位为1,month变量的值加1;

10、如果输入日期是12月的最后一天,则day变量和month变 量的值都复位为1,year变量的值加1。关于最后一天的判断:如果是有31天的月份(1,3,5,7,8,10,12),day变量值为31;如果是有30天的月份(4,6,9,11), day变量值为30;如果是有29天的月份(闰年的2月),day变量值为29;如果是有28天的月份(非闰年的2月),day变量值为28。NextDate函数的动作桩和条件桩根据所执行的操作,可列出NextDate函数的动作桩:a1: 不可能;a2: day加1;a3: day复位;a4: month加1; a5: month复位;a6: year加1考虑到决策

11、表的规模,条件使用month、day、year变量 的等价类,在以下等价类集合上建立决策表:对于month变量的取值M1: month: month有30天;M2: month : month有31天,12月除外 ; M3: month : month是12月; M4: month : month是2月;对于day变量的取值D1: day:1day27;D2: day:day=28;D3: day:day=29; D4: day:day=30; D5: day:day=31;对于year变量的取值Y1:year:year是闰年;Y2: year:year不是闰年第一次尝试M1=月份:每月有30

12、天M2=月份:每月有31天M3=月份:此月是2月D1=日期:1日期28D2=日期:日期=29D3=日期:日期=30D4=日期:日期=31Y1=年:年是闰年Y2=年:年是平年有256条规则的第一次尝试(互斥条件)注意:年变量对应的等价类是否可以收缩为表中的一个条件?第二次尝试(重点考虑闰年)M1=月份:每月有30天M2=月份:每月有31天M3=月份:此月是2月D1=日期:1日期28D2=日期:日期=29D3=日期:日期=30D4=日期:日期=31Y1=年:年是闰年Y2=年:年不是闰年第三次尝试(关注日期和月份)M1=月份:每月有30天M2=月份:每月有31天,12月除外M3=月份:此月是12月M

13、4=月份:此月是2月D1=日期:1日期 27D2=日期:日期=28D3=日期:日期=29D4=日期:日期=30D5=日期:日期=31Y1=年:年是闰年Y2=年:年不是闰年NextDate函数的判定表每月30天每月31天,12月除外每月30天每月31天,12月除外续此月是12月此月是2月此年是闰年此月是12月此月是2月此年是闰年此月是12月此月是2月NextDate函数的精简判定表 每月30天每月31天,12月除外续此年是闰年此月是12月此月是2月28日NextDate函数的测试用例指导方针和观察判定表技术适用的应用程序的特征:if-then-else逻辑很突出输入变量之间存在逻辑关系涉及输入变

14、量子集的计算输入与输出之间存在因果关系判定表的优点能把复杂的问题按各种可能的情况一一列举 出来简明而易于理解可避免遗漏判定表的缺点不能表达重复执行的动作,例如循环结构判定表不能很好地伸缩有n个条件的决策表有2n 个规则。解决方法使用扩展条目判定表、代数简化表,将大表 “分解”为小表,查找条件项的判定表式课后作业用决策表测试法测试以下程序:该程序有三个输入变量month、day、year(month 、day和year均为整数值,并且满足:1month12和 1day31),分别作为输入日期的月份、日、年份, 通过程序可以输出该输入日期在日历上隔一天的日期。例如,输入为2004年11月29日,则

15、该程序的输出为 2004年12月1日。 (1)分析各种输入情况,列出为输入变量month、day、 year划分的有效等价类。 (2)分析程序规格说明,结合以上等价类划分的情况给 出问题规定的可能采取的操作(即列出所有的动作桩) 。 (3)根据(1)和(2),画出简化后的决策表。进一步分析month变量的有效等价类:M1: month=4,6,9,11 M2: month=1,3,5,7,8,10M3: month=12 M4: month=2day变量的有效等价类:D1: 1day26 D2: day=27 D3: day=28 D4: day=29 D5: day=30 D6: day=31year变量的有效等价类:Y1: year是闰年 Y2: year不是闰年考虑各种有效的输入情况,程序中

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号