当前位置:
文档之家› 软件测试技术_韩永国_第四章黑盒测试第三节基于判定表的测试
软件测试技术_韩永国_第四章黑盒测试第三节基于判定表的测试
动作桩
A1:进行优先处理 A2:作其他处理
Software Testing
例:维修机器问题(续)
(2)确定规则个数
功率大于50马力吗 维修记录不全吗 运行超过10年吗
输入条件个数:3;
每个条件的取值:“是”或“否”;
规则个数:2*2*2 =8;
Software Testing
例:维修机器问题(续)
Software Testing
(2)两条规则的进一步合并
条件项“—” 在逻辑上包 含其它的条 件。
Software Testing
3. 判定表建立步骤
根据软件规格说明
①列出所有的条件桩和动作桩; ②确定规则的个数;
假如有n个条件,每个条件有两个取值(0,1), 则有2n 种规则;
③填入条件项; ④填入动作项,得到初始决策表; ⑤简化,合并相似规则(相同动作)。
Software Testing
规则示例:三角形问题
Software Testing
规则(续)
规则合并
规则合并就是判定表的简化。 有两条或多条规则具有相同的动作,并且
其条件项之间存在着极为相似的关系,就 可以将规则合并。
Software Testing
(1)两条规则合并成一条
条件项“—” 表示与取值 无关。
一、设计判定表
(1)条件桩
C1:a,b,c构成三角形? C2:a = b? C3:a = c? C4:b = c?
(2)规则数
共有四个条件,每个条件的取值为“是”或
“否”,因此有24= 16条规则。
Software Testing
(3)动作桩
A1:非三角形; A2:不等边三角形; A3:等腰三角形; A4:等边三角形; A5:不可能;
例:维修机器问题(续)
(5)化简;
(1) (2) (3) (4) (5)
功率大于50马力吗? Y Y Y N N
条 维修记录不全吗? 件
运行超过10年吗?
Y N N —— —Y N Y N
动 进行优先处理 作 作其他处理
✓✓
✓
✓
✓
Software Testing
4.3.2 基于判定表的测试
根据输入输出绘制判定表; 设计测试用例覆盖判定表中每条规则;
(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
动 进行优先处理 作 作其他处理
✓ ✓✓
✓
✓
✓
✓
✓
1,2合并,5,7合并,6,8合并
Software Testing
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
Software Testing
例:维修机器问题
问题描述:
“……对于功率大于50马力的机器, 并且维修记录不全或已运行10年以 上的机器,应给予优先的维修处 理……”
请建立决策表。
Software Testing
例:维修机器问题(续)
(1)列出所有的条件桩和动作桩
条件桩
C1:功率大于50马力吗? C2:维修记录不全吗? C3:运行超过10年吗?
Software Testing
4.3.3 案例:三角形问题
问题描述
输入三个正整数a、b、c,分别作为三角形 的三条边,通过程序判断三条边是否能构成 三角形?如果能构成三角形,判断三角形的 类型(等边三角形、等腰三角形、一般三角 形)。
请用基于判定表的方法设计测试用例。
Software Testing
Software Testing
(4)判定表
12 3 4 5 6 7 89
a, b, c构成三角形 N Y Y Y Y Y Y Y Y
条 a = b? 件 a = c?
—Y Y Y Y N N N N —Y Y N N Y Y N N
b = c?
—Y N Y N Y N Y N
非三角形
✓
不等边三角形
软件测试技术
软件测试课程组
西南科技大学计算机学院
问题引入
例:
某个软件需求文档中有这样的说明:第一列 字符必须是A或B,第二列字符必须是一个 数字,在此情况下进行文件的修改。但如果 第一列字符不正确,则给出信息L;如果第 二列字符不是数字,则给出信息M。
边界值测试 等价类测试
23 4 5 6 7 8
功率大于50马力吗? Y Y Y Y N N N N
条 维修记录不全吗? 件
运行超过10年吗?
YYN N Y Y N N YNY N Y N Y N
动 进行优先处理 作 作其他处理
利用集合的笛卡尔积计算条件项的取值
Software Testing
例:维修机器问题(续)
同操作的工具。 在程序设计发展的初期,判定表被当作编
写程序的辅助工具。
Software Testing
2. 判定表的组成
条件桩(Condition Stub)
列出问题的所有条件
动作桩(Action Stub)
列出可能采取的操作
条件项(Condition Entity)
列出条件桩的取值
动作项(Action Entity)
列出条件项各种取值下应该采取的动作
Software Testing
判定表的组成
Software Testing
规则
任何一个条件组合的特定取值及其相应 要执行的操作称为规则;
在判定表中贯穿条件项和动作项的一列 就是一条规则;
判定表中列出多少组条件取值,也就有 多少条规则,即条件项和动作项有多少 列。
4.3 基于判定表的测试
判定表 基于判定表的测试 案例:三角形问题,NextDate问题 练习:隔一日问题
Software Testing
4.3.1 判定表
判定表的原理 判定表的组成 判定表建立的步骤
Software Testing
1. 判定表的原理
判定表
判定表(Decision Table),又叫决策表 判定表是分析和表达多逻辑条件下执行不
动 作
等腰三角形
等边三角形
✓
✓
✓
✓✓
不可能
✓✓
✓
Software Testing
注意:
条件的选择可以大大扩展判定表的规模;
例如
a, b, c构成三角形吗?可以扩展为三个条件: a < b + c? b < a + c? c < a + b?
Software Testing
条件桩修改后的判定表