黑盒测试_判定表因果图
(4)
填 写 判 定 表
⑴ ⑵ ⑶ ⑷ ⑸ ⑹ ⑺ ⑻ F F F F F F F F F F F T F T T T F F T F T F T T F T F F T T F T
a = c? b = c?
非三角形
— — —
不等边三角形
动 等腰三角形 作
等边三角形 不可能
C1 E1 C1
~
(b)非
E1
(a)恒等
C1 C1
∨
C2
E1 C2
∧ (c)与
E1
(c)或
因果图的约束符号
E(互斥):表示两个原因不会同时成立,两个中最多有一个可能成立
I(包含):表示三个原因中至少有一个必须成立
O(惟一):表示两个原因中必须有一个,且仅有一个成立 R(要求):表示两个原因,a出现时,b也必须出现,a出现时,b不可能不
举例:维修机器问题(续)
(2)确定规则个数
• 输入条件个数:3; • 每个条件的取值:“是”或“否”; • 规则个数:2*2*2 =8;
功率大于50马力吗 维修记录不全吗 运行超过10年吗
举例:维修机器问题(续)
(3)填入条件项;
1 2
Y Y N
3
Y N Y
4
Y N N
5
N Y Y
6
N Y N
举例:维修机器问题
问题描述:
“……对于功率大于50马力的机器
,并且维修记录不全或已运行10年 以上的机器,应给予优先的维修处理 ……”
请建立判定表。
举例:维修机器问题(续) (1)列出所有的条件桩和动作桩
• 条件桩 • C1:功率大于50马力吗? • C2:维修记录不全吗? • C3:运行超过10年吗? • 动作桩 • A1:进行优先处理 • A2:作其他处理
条件桩修改后的判定表
C1:a < b + c? C2:b < a + c? C3:c < a + b? C4:a = b? C5:a = c? 1 2 3 4 5 6 7 8 9 10 11 F T T T T T T T T T T — F T T T T T T T T T T F T T T F T T F T T T F T T T T T F F F F — — F
√ √ *6 *B A1
GT
因果图法测试举例(续)
(4)根据决策表中的每一列设计测试用例: 测试用例编号 1 输入数据 #3 预期输出 修改文件
2
3 4 5 6
#A
*6 *B A1 GT
给出信息M
修改文件 给出信息M 给出信息N 给出信息N和信息M
因果图法实例
某电力公司有A、B、C、D四类收费标准, 并规定: 居民用电 <100度/月 按A类收费 ≥100度/月 按B类收费 动力用电 <10000度/月,非高峰,B类收费 ≥10000度/月,非高峰,C类收费 <10000度/月, 高峰,C类收费 ≥10000度/月, 高峰,D类收费
请用基于判定表的方法设计测试用例。
一、设计判定表
(1)列出条件桩
C1:a,b,c构成三角形? C2:a = b? C3:a = c? C4:b = c?
(2)确定规则个数
共有四个条件,每个条件的取值为 “是”或“否”,因此有24= 16条 规则。
(3)列出动作桩
的辅助工具。
在所有的黑盒测试方法中,基于判定表的测试 是最为严格、最具有逻辑性的测试方法。
判定表的组成
条件桩(Condition Stub )
列出问题的所有条件
动作桩(Action Stub )
列出可能采取的操作
条件项(Condition Entity)
列出条件桩的取值
动作项(Action Entity )
动 等腰三角形 作
(4)
填 写 判 定 表
3 T T T F
4 T T F T
5 T T F F
6 T F T T
7 T F T F
8 T F F T
9 T F F F
F — — —
T T T T
等边三角形 不可能
一、设计判定表(续)
1 a, b, c构成三角 F
形 条 a = b? 件
~
e3
因果图法测试举例(续)
(3)将因果图转换成如下所示的决策表:
选项 规则
1 1 1 1
2 1 1 0
3 1 0 1 1
4 1 0 0 1
5 0 1 1 1
6 0 1 0 1
7 0 0 1 0
√
8 0 0 0 0
√ √
条件: C1 C2 C3 10 动作: e1 e2 e3 不可能 测试用例
√ √ √ √ #3 #A
有两条或多条规则具有相同的动作,并且
其条件项之间存在着极为相似的关系,就 可以将规则合并。
(1)两条规则合并成一条
条件项“—” 表示与取值 无关。
(2)两条规则的进一步合并
条件项“—”在 逻辑上包含其 它的条件。
判定表建立步骤
根据软件规格说明 ①列出所有的条件桩和动作桩; ②确定规则的个数; 假如有n个条件,每个条件有两个取值(0,1), 则有2n 种规则; ③填入条件项; ④填入动作项,得到初始决策表; ⑤简化,合并相似规则(相同动作)。
果。原因常常是输入条件或输入条件的等价类,而结 果是输出条件; ② 分析程度规格说明的描述中语义内容,并将其表示成 连接各个原因与各个结果的“因果图”; ③ 标明约束条件。由于语法或环境的限制,有些原因 和结果的组合情况是不可能出现的。 ④ 把因果图转换成判定表。 ⑤ 为判定表中的每一列表示的情况设计测试用例。
因果图法
因果图法:是一种利用图解法分析输入的各 种组合情况,从而设计测试用例的方法。
因果图法比较适合输入条件比较多的情况 ,测试所有的输入条件的排列组合。所谓 的原因就是输入,所谓的结果就是输出。
因果图基本图形符号
恒等:若原因出现,则结果出现;若原因不出现,则结果不出现。 非(~):若原因出现,则结果不出现;若原因不出现,则结果出现。 或(∨):若几个原因中有一个出现,则结果出现;若几个原因都不出 现,则结果不出现。 与(∧):若几个原因都出现,结果才出现;若其中有一个原因不出现 ,则结果不出现。
出现
M(屏蔽):两个结果,a为1时,b必须是0,当a为0时,b值不定
a E b I a b c O b a R b b a a M
E(互斥)
I(包含)
O(惟一) R(要求) M(屏蔽)
因果图法设计测试用例的步骤
利用因果图导出测试用例需要经过以下几个步骤:
① 分析程度规格说明的描述中,哪些是原因,哪些是结
if-then-else逻辑很突出
输入变量之间存在逻辑关系 涉及输入变量子集的计算 输入与输出之间存在因果关系 很高的McCabe圈复杂度
判定表的优点
判定表的优点
能把复杂的问题按各种可能的情况一一列举出
来 简明而易于理解 可避免遗漏
因此,利用决策表能够设计出完整的测试 用例集合。
列出条件项各种取值下应该
采取的动作
规则
任何一个条件组合的特 定取值及其相应要执行 的操作称为规则; 在判定表中贯穿条件项 和动作项的一列就是一 条规则; 判定表中列出多少组条 件取值,也就有多少条 规则,即条件项和动作 项有多少列。
规则示例:三角形问题
规则合并
规则合并
规则合并就是判定表的简化。
判定表的缺点及解决方法
判定表的缺点
不能表达重复执行的动作,例如循环结构
判定表不能很好地伸缩
有n个条件的决策表有2n 个规则。
解决方法
使用扩展条目判定表、代数简化表,将大表“
分解”为小表,查找条件项的判定表式
黑盒测试
因果图法
因果图法的简介
因果图法产生的背景:
等价类划分法和边界值分析方法都是着重考虑输入条 件,但没有考虑输入条件的各种组合、输入条件之间的相 互制约关系。这样虽然各种输入条件可能出错的情况已经 测试到了,但多个输入条件组合起来可能出错的情况却被 忽视了。 如果在测试时必须考虑输入条件的各种组合,则可能 的组合数目将是天文数字,因此必须考虑采用一种适合于 描述多种条件的组合、相应产生多个动作的形式来进行测 试用例的设计,这就需要利用因果图(逻辑模型)。
— — — T — — — T
C6:b = c? — — —其中包含了另外的25- F T F T F T F T a1: 非三角形 √ √ √1+24-1+23-1=53个组 合 a2: 不等边三角形 √ a3: 等腰三角形 √ √ √ a4: 等边三角形 √
二、设计测试用例
用例ID
DT1 DT2 DT3 DT4 DT5 DT6 DT7 DT8 DT9 DT10 DT11
a
4 1 1 5 ? ? 2 ? 2 3 3
b
1 4 2 5 ? ? 2 ? 3 2 4
c
2 2 4 5 ? ? 3 ? 2 2 5
预期输出
非三角形 非三角形 非三角形 等边三角形 不可能 不可能 等腰三角形 不可能 等腰三角形 等腰三角形 不等边三角形
a=b, a=c, b≠c
判定表技术适用的应用程序的特征 判定表技术适用的应用程序的特征:
A1:非三角形; A2:不等边三角形; A3:等腰三角形; A4:等边三角形; A5:不可能;
注意: 条件的选择可以大 大扩展判定表的规模。 例如: “a, b, c构成三角形吗?” 可以扩展为三个条件: a < b + c? b < a + c? c < a + b?