- 1、本文档共45页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第四章黑盒测试第三节基于判定表格的测试
软件测试技术 问题引入 例: 某个软件需求文档中有这样的说明:第一列字符必须是A或B,第二列字符必须是一个数字,在此情况下进行文件的修改。但如果第一列字符不正确,则给出信息L;如果第二列字符不是数字,则给出信息M。 边界值测试 等价类测试 4.3.1 判定表 判定表的原理 判定表的组成 判定表建立的步骤 1. 判定表的原理 判定表 判定表(Decision Table),又叫决策表 判定表是分析和表达多逻辑条件下执行不同操作的工具。 在程序设计发展的初期,判定表被当作编写程序的辅助工具。 2. 判定表的组成 条件桩(Condition Stub) 列出问题的所有条件 动作桩(Action Stub) 列出可能采取的操作 条件项(Condition Entity) 列出条件桩的取值 动作项(Action Entity) 列出条件项各种取值下应该采取的动作 判定表的组成 规则 任何一个条件组合的特定取值及其相应要执行的操作称为规则; 在判定表中贯穿条件项和动作项的一列就是一条规则; 判定表中列出多少组条件取值,也就有多少条规则,即条件项和动作项有多少列。 规则示例:三角形问题 规则(续) 规则合并 规则合并就是判定表的简化。 有两条或多条规则具有相同的动作,并且其条件项之间存在着极为相似的关系,就可以将规则合并。 (1)两条规则合并成一条 条件项“—”表示与取值无关。 (2)两条规则的进一步合并 条件项“—”在逻辑上包含其它的条件。 3. 判定表建立步骤 根据软件规格说明 ①列出所有的条件桩和动作桩; ②确定规则的个数; 假如有n个条件,每个条件有两个取值(0,1),则有2n 种规则; ③填入条件项; ④填入动作项,得到初始决策表; ⑤简化,合并相似规则(相同动作)。 例:维修机器问题 问题描述: “……对于功率大于50马力的机器,并且维修记录不全或已运行10年以上的机器,应给予优先的维修处理……” 请建立决策表。 例:维修机器问题(续) (1)列出所有的条件桩和动作桩 条件桩 C1:功率大于50马力吗? C2:维修记录不全吗? C3:运行超过10年吗? 动作桩 A1:进行优先处理 A2:作其他处理 例:维修机器问题(续) (2)确定规则个数 输入条件个数:3; 每个条件的取值:“是”或“否”; 规则个数:2*2*2 =8; 例:维修机器问题(续) 例:维修机器问题(续) 例:维修机器问题(续) 4.3.2 基于判定表的测试 根据输入输出绘制判定表; 设计测试用例覆盖判定表中每条规则; 4.3.3 案例:三角形问题 问题描述 输入三个正整数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:不可能; 注意: 条件的选择可以大大扩展判定表的规模; 例如 a, b, c构成三角形吗?可以扩展为三个条件: a b + c? b a + c? c a + b? 课堂练习 隔一天的日期 程序有三个输入变量month、day、year,分别作为输入日期的月份、日、年份,通过程序可以输出该输入日期在日历上隔一天的日期。例如,输入为2004年11月29日,则该程序的输出为2000年12月1日。 课后练习 登陆功能说明书:(用户输入和密码输入) 1)管理员用户名为“admin”,密码为“123456”,正常登陆 2)用户名和密码输入为空,提示 “用户和密码不允许为空” 在用户名和密码非空的情况下: 3)要求用户名必须输入字母,否则提示“输入非法” 4)要求密码必须输入数字,否则提示 “输入非法” 在输入合法的情况下: 5)用户名错误,提示 “用户名和密码输入错误”,用户名和密码清空 6)用户名正确,密码错误,提示 “用户名和密码输入错误”,用户名保留,密码清空 4.3.4 案例: NextDate函数 问题描述 程序有三个输入变量month、day、year,并且满足:1≤month≤12、1≤day≤31、1900≤ year ≤2050。它们分别作为输入日期的月份、日、年份,通过程序可以输出该输入日期在日历上下一天的日期。例如,输入为2005年11月29日,则该程序的输出为2005年11月30日。 第一次尝试 M1={月份:每月有30天} M2={月份:每月有31天} M3
文档评论(0)