5第7章基于决策表的测试
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第7章 基于决策表的测试
?决策表 ?基于决策表的测试 ?案例:三角形问题,NextDate问题 ?练习:隔一日问题
7.1 决策表
?决策表的原理 ?决策表的组成 ?决策表建立的步骤
1. 决策表的原理
?决策表
?决策表:Decision Table ?决策表是分析和表达多逻辑条件下执行不 同操作的工具。 ?在程序设计发展的初期,决策表被当作编 写程序的辅助工具。
?
?
?
?
?
? 1,2合并,5,7合并,6,8合并
例:维修机器问题(续)
? (5)化简;
功率大于50马力吗?
条 维修记录不全吗? 件 运行超过10年吗?
动 进行优先处理 作 作其他处理
(1) (2) (3) (4) (5) YYY NN Y N N —— —Y N Y N
??
?
?
?
基于决策表的测试
? 利用集合的笛卡尔积计算条件项的取值
例:维修机器问题(续)
? (4)填入动作项;
1 2 3 4 5 6 78
功率大于50马力吗? Y Y Y Y N N N N
条 维修记录不全吗? 件 运行超过10年吗?
Y Y N N Y Y NN Y N Y N Y N YN
动 进行优先处理 作 作其他处理
? ??
?
??
不可能
??
?
?注意:
?条件的选择可以大大扩展决策表的规模;
?例如
?a, b, c构成三角形吗?可以扩展为三个条件: ?a < b + c? ?b < a + c? ?c < a + b?
条件桩修改后的决策表
1 2 3 4 5 6 7 8 9 10 11
C1:a < b + c? F T T T T T T T T T T
?根据输入输出绘制决策表; ?设计测试用例覆盖决策表中每条规则;
7.2 案例:三角形问题
?问题描述
输入三个正整数 a、b、c,分别作为三角形 的三条边,通过程序判断三条边是否能构成三 角形?如果能构成三角形,判断三角形的类型 (等边三角形、等腰三角形、一般三角形)。
?请用基于决策表的方法设计测试用例。
?根据软件规格说明
?①列出所有的条件桩和动作桩; ?②确定规则的个数;
?假如有n个条件,每个条件有两个取值( 0,1), 则有2n 种规则; ?③填入条件项; ?④填入动作项,得到初始决策表; ?⑤简化,合并相似规则(相同动作)。
例:维修机器问题
?问题描述:
?“……对于功率大于50马力的机器并 且维修记录不全,或已运行10年以上的 机器,应给予优先的维修处理……”
?请建立决策表。
例:维修机器问题(续)
? (1)列出所有的条件桩和动作桩
?条件桩
?C1:功率大于 50马力吗? ?C2:维修记录不全吗? ?C3:运行超过 10年吗?
?动作桩
?A1:进行优先处理 ?A2:作其他处理
例:维修机器问题(续)
? (2)确定规则个数
?输入条件个数:3;
? 功率大于50马力吗 ? 维修记录不全吗 ? 运行超过10年吗
不可能 不可能 等腰三角形 不可能 等腰三角形 等腰三角形 不等边三角形
a=b, a=c, b≠c
7.3 案例: NextDate 函数
?问题描述
程序有三个输入变量 month、day、year,并 且满足: 1≤month ≤12、1≤day≤31、1900 ≤ year ≤2050。它们分别作为输入日期的月份、 日、年份,通过程序可以输出该输入日期在日 历上下一天的日期。例如,输入为 2005年11 月29日,则该程序的输出为 2005年11月30日。
? (4)决策表
123 4 56 789
a, b, c构成三角形 N Y Y Y Y Y Y Y Y
条 a = b? 件 a = c?
b = c?
非三角形
—Y Y Y Y N N N N —Y Y N N Y Y N N —Y N Y N Y N Y N
?
不等边三角形
动 等腰三角形
作
等边三角形
?
?
a1: 非三角形
XXX
a2: 不等边三角形
a3: 等腰三角形
a4: 等边三角形
X
X
X
XX
二、设计测试用例
用例 ID
a
b
c
DT1
4
1
2
DT2
1
4
2
DT3
1
2
4
DT4
5
5
5
DT5
?? ?
DT6
?? ?
DT7
2
2
3
DT8
?? ?
DT9
2
3
2
DT10wk.baidu.com
3
2
2
DT11
3
4
5
预期输出
非三角形 非三角形 非三角形 等边三角形
C2:b < a + c? — F T T T T T T T T T
C3:c < a + b? — — F T T T T T T T T
C4:a = b?
——— T T T T F F F F
C5:a = c?
——— T T F F T T F F
C6:b = c?
——— T F T F T F T F
规则示例:三角形问题
规则(续)
?规则合并
?规则合并就是决策表的简化。 ?有两条或多条规则具有相同的动作,并且 其条件项之间存在着极为相似的关系,就可 以将规则合并。
(1)两条规则合并成一条
?条件项“—”表 示与取值无关。
(2)两条规则的进一步合并
?条件项“—” 在逻辑上包含 其它的条件。
3. 决策表建立步骤
2. 决策表的组成
?条件桩(Condition Stub )
?列出问题的所有条件
?动作桩(Action Stub )
?列出可能采取的操作
?条件项(Condition Entity )
?列出条件桩的取值
?动作项(Action Entity )
?列出条件项各种取值下应该采取的动作
决策表的组成
规则
?任何一个条件组合的特定取值及其相应要 执行的操作称为规则; ?在决策表中贯穿条件项和动作项的一列就 是一条规则; ?决策表中列出多少组条件取值,也就有多 少条规则,即条件项和动作项有多少列。
?每个条件的取值:“是”或“否”;
?规则个数:2*2*2 =8;
例:维修机器问题(续)
? (3)填入条件项;
1234 5 6 7 8
功率大于50马力吗? Y Y Y Y N N N N
条 维修记录不全吗? 件
运行超过 10年吗?
YYNN Y Y YNYN Y N
NN YN
动 进行优先处理 作 作其他处理
?
一、设计决策表
?(1)条件桩
?C1:a,b,c构成三角形? ?C2:a = b? ?C3:a = c? ?C4:b = c?
?(2)规则数
?共有四个条件,每个条件的取值为 “是”或“否”,
因此有24= 16条规则。
?(3)动作桩
?
? A1:非三角形; ? A2:不等边三角形; ? A3:等腰三角形; ? A4:等边三角形; ? A5:不可能;
?决策表 ?基于决策表的测试 ?案例:三角形问题,NextDate问题 ?练习:隔一日问题
7.1 决策表
?决策表的原理 ?决策表的组成 ?决策表建立的步骤
1. 决策表的原理
?决策表
?决策表:Decision Table ?决策表是分析和表达多逻辑条件下执行不 同操作的工具。 ?在程序设计发展的初期,决策表被当作编 写程序的辅助工具。
?
?
?
?
?
? 1,2合并,5,7合并,6,8合并
例:维修机器问题(续)
? (5)化简;
功率大于50马力吗?
条 维修记录不全吗? 件 运行超过10年吗?
动 进行优先处理 作 作其他处理
(1) (2) (3) (4) (5) YYY NN Y N N —— —Y N Y N
??
?
?
?
基于决策表的测试
? 利用集合的笛卡尔积计算条件项的取值
例:维修机器问题(续)
? (4)填入动作项;
1 2 3 4 5 6 78
功率大于50马力吗? Y Y Y Y N N N N
条 维修记录不全吗? 件 运行超过10年吗?
Y Y N N Y Y NN Y N Y N Y N YN
动 进行优先处理 作 作其他处理
? ??
?
??
不可能
??
?
?注意:
?条件的选择可以大大扩展决策表的规模;
?例如
?a, b, c构成三角形吗?可以扩展为三个条件: ?a < b + c? ?b < a + c? ?c < a + b?
条件桩修改后的决策表
1 2 3 4 5 6 7 8 9 10 11
C1:a < b + c? F T T T T T T T T T T
?根据输入输出绘制决策表; ?设计测试用例覆盖决策表中每条规则;
7.2 案例:三角形问题
?问题描述
输入三个正整数 a、b、c,分别作为三角形 的三条边,通过程序判断三条边是否能构成三 角形?如果能构成三角形,判断三角形的类型 (等边三角形、等腰三角形、一般三角形)。
?请用基于决策表的方法设计测试用例。
?根据软件规格说明
?①列出所有的条件桩和动作桩; ?②确定规则的个数;
?假如有n个条件,每个条件有两个取值( 0,1), 则有2n 种规则; ?③填入条件项; ?④填入动作项,得到初始决策表; ?⑤简化,合并相似规则(相同动作)。
例:维修机器问题
?问题描述:
?“……对于功率大于50马力的机器并 且维修记录不全,或已运行10年以上的 机器,应给予优先的维修处理……”
?请建立决策表。
例:维修机器问题(续)
? (1)列出所有的条件桩和动作桩
?条件桩
?C1:功率大于 50马力吗? ?C2:维修记录不全吗? ?C3:运行超过 10年吗?
?动作桩
?A1:进行优先处理 ?A2:作其他处理
例:维修机器问题(续)
? (2)确定规则个数
?输入条件个数:3;
? 功率大于50马力吗 ? 维修记录不全吗 ? 运行超过10年吗
不可能 不可能 等腰三角形 不可能 等腰三角形 等腰三角形 不等边三角形
a=b, a=c, b≠c
7.3 案例: NextDate 函数
?问题描述
程序有三个输入变量 month、day、year,并 且满足: 1≤month ≤12、1≤day≤31、1900 ≤ year ≤2050。它们分别作为输入日期的月份、 日、年份,通过程序可以输出该输入日期在日 历上下一天的日期。例如,输入为 2005年11 月29日,则该程序的输出为 2005年11月30日。
? (4)决策表
123 4 56 789
a, b, c构成三角形 N Y Y Y Y Y Y Y Y
条 a = b? 件 a = c?
b = c?
非三角形
—Y Y Y Y N N N N —Y Y N N Y Y N N —Y N Y N Y N Y N
?
不等边三角形
动 等腰三角形
作
等边三角形
?
?
a1: 非三角形
XXX
a2: 不等边三角形
a3: 等腰三角形
a4: 等边三角形
X
X
X
XX
二、设计测试用例
用例 ID
a
b
c
DT1
4
1
2
DT2
1
4
2
DT3
1
2
4
DT4
5
5
5
DT5
?? ?
DT6
?? ?
DT7
2
2
3
DT8
?? ?
DT9
2
3
2
DT10wk.baidu.com
3
2
2
DT11
3
4
5
预期输出
非三角形 非三角形 非三角形 等边三角形
C2:b < a + c? — F T T T T T T T T T
C3:c < a + b? — — F T T T T T T T T
C4:a = b?
——— T T T T F F F F
C5:a = c?
——— T T F F T T F F
C6:b = c?
——— T F T F T F T F
规则示例:三角形问题
规则(续)
?规则合并
?规则合并就是决策表的简化。 ?有两条或多条规则具有相同的动作,并且 其条件项之间存在着极为相似的关系,就可 以将规则合并。
(1)两条规则合并成一条
?条件项“—”表 示与取值无关。
(2)两条规则的进一步合并
?条件项“—” 在逻辑上包含 其它的条件。
3. 决策表建立步骤
2. 决策表的组成
?条件桩(Condition Stub )
?列出问题的所有条件
?动作桩(Action Stub )
?列出可能采取的操作
?条件项(Condition Entity )
?列出条件桩的取值
?动作项(Action Entity )
?列出条件项各种取值下应该采取的动作
决策表的组成
规则
?任何一个条件组合的特定取值及其相应要 执行的操作称为规则; ?在决策表中贯穿条件项和动作项的一列就 是一条规则; ?决策表中列出多少组条件取值,也就有多 少条规则,即条件项和动作项有多少列。
?每个条件的取值:“是”或“否”;
?规则个数:2*2*2 =8;
例:维修机器问题(续)
? (3)填入条件项;
1234 5 6 7 8
功率大于50马力吗? Y Y Y Y N N N N
条 维修记录不全吗? 件
运行超过 10年吗?
YYNN Y Y YNYN Y N
NN YN
动 进行优先处理 作 作其他处理
?
一、设计决策表
?(1)条件桩
?C1:a,b,c构成三角形? ?C2:a = b? ?C3:a = c? ?C4:b = c?
?(2)规则数
?共有四个条件,每个条件的取值为 “是”或“否”,
因此有24= 16条规则。
?(3)动作桩
?
? A1:非三角形; ? A2:不等边三角形; ? A3:等腰三角形; ? A4:等边三角形; ? A5:不可能;