- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2、确定规则的个数
规则数
2^4=16
3、填入条件项
规则 桩 C1:a,b,c构成三角形? C2:a=b? C3:a=c? C4:b=c? A1:非三角形 A2:一般三角形 A3:等腰三角形 A4:等边三角形 A5:不可能 F F F F F F F T F F T F F F T T F T F F F T F T F T T F F T T T 1 2 3 4 5 6 7 8
规则 选项 问 题 你觉得疲倦吗? 你对内容感兴趣吗? 书中内容使你胡涂吗? 建 议 请回到本章开头重读 继续读下去 跳到下一章去读 停止阅读,请休息 √ √ √ √ Y Y Y Y Y N Y N Y Y N N N Y Y √ √ √ √ N Y N N N Y N N N 1 2 3 4 5 6 7 8
A1:打 A1:打7折 A2:打 A2:打8折 A3:打 A3:打9折 A4:不打折 A4:不打折 A5:不可能 A5:不可能
2、确定规则的个数
规则数
2^6=64 太大! 太大!
• 修改条件桩使有限条目决策表成为扩展条目决 策表
条件桩: 条件桩: C1:顾客为会员或普通顾 客 C2:购物金额为(0,100) 或[100,1000)或[1000, ∞) 动作桩: 动作桩: A1:打7折 A2:打8折 A3:打9折 A4:不打折
决策表的组成
• 决策表通常由以下4部分组成:
条件桩—列出问题的所有条件 条件项—针对条件桩给出的条件列出所有可能的取值 动作桩—列出问题规定的可能采取的操作 动作项—指出在条件项的各组取值情况下应采取的动作
条件桩
条件项
动作桩
动作项 规 则
将任何一个条件组合的 特定取值及相应要执行 的动作称为一条规则。 在决策表中贯穿条件项 和动作项的一列就是一 条规则。
√ √ √ √ √ √ √ √ √ √ √ √ √
最终的决策表
规则 桩 C1:a,b,c构成三角形? C2:a=b? C3:a=c? C4:b=c? A1:非三角形 A2:一般三角形 A3:等腰三角形 A4:等边三角形 A5:不可能 √ √ √ F — — — √ √ √ √ √ √ T F F F T F F T T F T F T F T T T T F F T T F T T T T F T T T T 1 2 3 4 5 6 7 8 9
6、根据决策表设计测试用例
(1)对每一条规则设计一个测试用例:
用例 1 2 3 4 5 6 7 8 9 a 1 3 3 4 ? 4 ? ? 3 b 2 4 4 3 ? 4 ? ? 3 c 4 5 4 4 ? 3 ? ? 3 预期输出 非三角形 一般三角形 等腰三角形 等腰三角形 ? 等腰三角形 ? ? 等边三角形
表:根据规格说明得到的决策表
1:表示是或者取该值 0:表示为否或者不取该值 -:表示该值取什么都可以
决策表实例——“阅读指南”决策表 决策表实例——“阅读指南” 实例——
条件项 条件桩
动作桩
动作项
决策表的类型
决策表
有限条目决策表 特点: 特点:所有条件 都是二值条件( 都是二值条件( 真 /假 )
4、填入动作项
9 10 1 1 T F F T T F T F 1 2 T F T T 1 1 3 4 T T T T F F F T 1 5 T T T F 1 6 T T T T
T F F F
√ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √
5、简化决策表
规则 桩 C1:a,b,c构成三角形? F C2:a=b? C3:a=c? C4:b=c? A1:非三角形 A2:一般三角形 A3:等腰三角形 A4:等边三角形 A5:不可能 √ √ √ F F F F F F T F F T F F F T T F T F F F T F T F T T F F T T F T F T F 1 2 3 4 5 6 7 8 9 10 1 1 1 2 T F F T T T F F T T F T 1 1 3 4 T T T T F F F T 1 5 T T T F 1 6 T T T T
• 在所有的黑盒测试方法中,基于决策表(也称 判定表)的测试是最为严格、最具有逻辑性的 测试方法。 • 决策表的概念
• 决策表是分析和表达多逻辑条件下执行不同操作的 情况的工具。
• 决策表的优点
• 能够将复杂的问题按照各种可能的情况全部列举出 来,简明并避免遗漏。因此,利用决策表能够设计 出完整的测试用例集合。
规则合并实例——“阅读指南” 规则合并实例——“阅读指南”决策表 ——
规则 问 题 选项 你觉得疲倦吗? 你对内容感兴趣吗? 书中内容使你胡涂吗? 建 议 请回到本章开头重读 继续读下去 跳到下一章去读 停止阅读,请休息
1 Y — —
5 N Y Y √
6 N Y N
7 N N —
√ √ √
构造决策表的步骤
第9讲 决策表法
徐浙君
主要内容
• 决策表法 • 案例分析
等价类划分法和边界值分析方法的局限性 • 等价类划分法和边界值分析方法比较适 合输入变量或输入条件相互独立的情况, 但是当输入变量或输入条件相互依赖、 相互制约的时候,采用等价类划分法和 边界值分析方法是难以描述的,测试效 果也很难保障。
基本概念
6、根据决策表设计测试用例
(2)去掉不存在的情况:
用例 1 2 3 4 5 6 a 1 3 3 4 4 3 b 2 4 4 3 4 3 c 4 5 4 4 3 3 预期输出 非三角形 一般三角形 等腰三角形 等腰三角形 等腰三角形 等边三角形
案例2 案例2
• 某付款程序实现如下功能:普通顾客一次购物 累计少于100元,不打折,一次购物累计多于 或等于100元,打9折;会员顾客按会员价格一 次购物累计少于1000元,打8折,一次购物累 计等于或多于1000元打7折。
2、确定规则的个数
规则数
2*3=6
3、填入条件项
规则 1 桩 C1: 顾客为会员或普通顾客 会员 会员 会员 2 3
4、填入动作项
4 普通 5 普通 6 普通
C2:购物金额为(0,100)或 C2:购物金额为(0,100)或 购物金额为(0,100) [100,100 [1000, (0,100) [100,1000)或[1000, ∞) [100,1000)或 0) ∞) A1: 打7折 A2: 打8折 A3: 打9折 A4: 不打折 √ √ √
1、列出所有的条件桩和动作桩。 2、确定规则的个数。
有n个条件的决策表有2n个规则(每个条件取真、假 值的情况)。
3、填入条件项。 4、填入动作项,得到初始决策表。 5、简化决策表,合并相似规则。
若表中有两条以上规则具有相同的动作,并且在条 件项之间存在极为相似的关系,便可以合并。 合并后的条件项用符号“-”表示,说明执行的动 作与该条件的取值无关,称为无关条件。
1、列出所有的条件桩和动作桩
ຫໍສະໝຸດ Baidu条件桩
行动桩
C1:a,b,c构成三角形? C1:a,b,c构成三角形? 构成三角形 C2:a=b? C3:a=c? C4:b=c?
A1:非三角形 A1:非三角形 A2:一般三角形 A2:一般三角形 A3:等腰三角形 A3:等腰三角形 A4:等边三角形 A4:等边三角形 A5:不可能 A5:不可能
• 试用决策表法设计其测试用例。
1、列出所有的条件桩和行动桩
• 从该程序的功能可以看出:
• 程序的输出即顾客的应付款由顾客的身份和 其购物金额决定,这样我们可以把顾客的身 份和其购物金额当作条件桩,把程序的输出 当作动作桩。
1、列出所有的条件桩和行动桩
条件桩
行动桩
C1:会员顾客? C1:会员顾客? 会员顾客 C2:普通顾客 普通顾客? C2:普通顾客? C3:购物金额 购物金额<100? C3:购物金额<100? C4:购物金额 购物金额>=100? C4:购物金额>=100? C5:购物金额 购物金额<1000? C5:购物金额<1000? C6:购物金额 购物金额>=1000? C6:购物金额>=1000?
扩展条目决策表 特点: 特点:条件可以 有多个值
决策表的简化
• 决策表的简化主要包含两个方面:规则 合并与规则包含。
• 规则合并
• 如果两条或多条规则的动作项相同,条件项 只有一项不同,则可以将该项合并,合并后 的条件项用符号“-”表示,说明执行的动 作与该条件的取值无关,称为无关条件。
规则合并实例——“阅读指南” 规则合并实例——“阅读指南”决策表 ——
规则合并实例——“阅读指南” 规则合并实例——“阅读指南”决策表 ——
规则 问 题 选项 你觉得疲倦吗? 你对内容感兴趣吗? 书中内容使你胡涂吗? 建 议 请回到本章开头重读 继续读下去 跳到下一章去读 停止阅读,请休息
1 Y Y —
3 Y N —
5 N Y Y √
6 N Y N
7 N N —
√ √ √ √
• 当判断出a=b=c时,程序输出“等边三角形”。 • 当判断出a=b或b=c或a=c时,程序输出“等腰三角形”。 • 当a!=b且b!= c且c!=a时,程序输出“一般三角形”
可以看出程序的输出由a,b,c之间是否相等的关系决定, 即a=b?, a=c?, b=c?,这样我们可以把a=b?, a=c?, b=c?当作条件桩,把程序的输出当作动作桩。
案例3 案例3
• 对于NextDate问题,设计其决策表,然 后根据该决策表设计相应的测试用例。
1、列出所有的条件桩和行动桩
为了获得下一个日期,NextDate函数执行如下操作: 为了获得下一个日期,NextDate函数执行如下操作: 函数执行如下操作 • 如果输入日期不是当月最后一天,则把day变量的值加1; • 如果输入日期是1~11月份中某月的最后一天,则把day变量的 值复位为1,month变量的值加1; • 如果输入日期是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为最后一天。
6、根据决策表设计测试用例。
一条规则一个测试用例,排除掉不可能的规则。
案例分析
• 要求输入三个值a、b、c,分别作为三角 形的三条边,判断由这三条边构成的三 角形类型为等边三角形、等腰三角形、 一般三角形以及不构成三角形。
1、列出所有的条件桩和动作桩
这一步是关键,如何得到三角问题的“条件桩”和 “行动桩” ? • 我们可以通过分析三角问题的处理过程(即“业务逻 辑”)得到:
[100,1000)[1000, (0,100) [100,1000)[1000, ∞)
√ √
√
5、简化决策表
6、根据决策表设计测试用例
• 对每一条规则设计一个测试用例:
用例 1 2 3 4 5 6 顾客身份 会员 会员 会员 普通 普通 普通 购物金额 50 500 2000 50 500 2000 预期输出 40(打8折) 400(打8折) 1400(打7折) 50(不打折) 450(打9折) 1800(打9折)
可见程序的动作主要是d,m,y的加1或复位,而这些操 作又与d,m,y的特征有关。这样我们可以把d,m,y的 加1或复位作为动作桩, d,m,y的特征作为条件桩。
1、列出所有的条件桩和行动桩
等价类
条件桩: 条件桩:
M1={月份:每月有30天 M1={月份:每月有30天} 月份 30 M2={月份 每月有31 月份: 31天 M2={月份:每月有31天, 12月除外 月除外} 12月除外} M3={月份 此月是12 月份: 12月 M3={月份:此月是12月} M4={月份 此月是2 月份: M4={月份:此月是2月} D1={日期:1<=日期 日期:1<=日期<=27} D1={日期:1<=日期<=27} D2={日期 日期=28} 日期: D2={日期:日期=28} D3={日期 日期=29} 日期: D3={日期:日期=29} D4={日期 日期=30} 日期: D4={日期:日期=30} D5={日期 日期=31} 日期: D5={日期:日期=31} Y1={年 年是闰年} Y1={年:年是闰年} Y2={年 年是平年} Y2={年:年是平年}