第3章(4)黑盒测试方法4-因果图法分解
黑盒测试技术4-因果图法

e1 原因中有一个不出现,结果就不出现。 如图,若c1和c2都是1,则ei为1;否则ei为0。 “与” 可有任意个输入。
因果图的约束符号
输入条件的 4 种约束类型:
a
E
b (Exclusive)
❖ E 约束(异/互斥): 表示几个原因不会同时成立; 可能他们都不成立,但最多有一个成立。
定义
用于描述输入之间,输入输出之 用于表达多逻辑条件下执行不
间的约束关系和因果关系
同操作的情况的工具
区别
本质
考虑输入条件之间的联系、各种 考虑输入条件之间的各种组合, 组合,相应产生多个动作。 相应产生多个动作。
当输入条件 用例数量相对少(无效用例) 会产生大量测试用例 过多时 可以覆盖到条件之间的先后关系 不能覆盖条件之间的先后关系
• 根据题意,原因和结果如下:
原因
1:A < B+C 2:B < A+C 3:C < A+B 4:A = B 5:A = C 6:B = C
结果
21:不能构成三角形 22:等边三角形 23:等腰三角形 24:一般三角形
步骤2:画出因果图
原因
结果
1
1:A < B+C
21:不能构成三 角形
2
2:B < A+C 22:等边三角形 3
如图,a和b中至多有一个可能为1,即a和b不 能同时为1。
❖ I 约束(或/包含):
a 表示几个原因中至少有一个必须成立,当然也
I
b 可能都成立。
(In)
c 如图,a、b和c中至少有一个必须是1,即 a、b
和c不能同时为0。
黑盒测试-因果图法

结果: 1、该类型的房间被打开,且提醒房款支付不足 2、单人间已经被开启 3、双人间已经被开启 4、豪华间已经被开启
当支付房间全款(即预期入住天数内所有房款)或支付房间房款不足(仅支付定金),选择"单人间"、"双人间"或"豪华间",则相应类型 的房间被开启。若游客支付房款不足,则在开启房门的同时系统提示房款支付不足。
问题:采用因果图进行测试用例设计 第一步:首先分析需求说明,找出原因和结果
原因: 1、游客支付房间全款
A2+B2==(管理人员优秀表现)
C2==2类奖 金
A2+B1+B3==(管理人员普通表 C3==3类奖
现,且有特殊贡献)
金
A2+B2+B3==(管理人员普通表 C4==4类奖
现,且有特殊贡献)
金
原因
结果
A1+B1==(普通员工表现普通)
C5==5类奖 金
A1+B2==(普通员工表现优秀)
C6==6类奖 金
员工类别:普通员工A1 管理人员A2
变现类别:普通B1 优秀B2 特殊贡献B3 奖金类别:1类奖金C1 2类奖金C2
.................................... 测试用例如下表:
原因
结果
A2+B1==(管理人员普通表现)
C1==1类 奖金
应用场合:
当软件的输入条件较多的时候,可以考虑用因果图法来设计测试用例。考虑输入的所有排列组合情况,防止遗漏。 因果图的局限性: 假如有n个条件。每个条件有真或假两种取值,理论上就有2的n次方钟排列组合。大大增加了测试用例的个数,不便于维护。
黑盒测试技术之因果图-教学课件

3.实例
4、根据因果图建立决策表
3.实例
5、生成测试用例
THANKS
第四章 测试设计技术
——黑盒测试技术之因果图
主讲人:丁慧
1.因果图 2.使用因果图和决策表设计测试用例 3.实例
1.因果图
因果图技术:面向功能的动态测试的方法,以图形形式(因果图)来 描述规格说明,并借由因果图,通过一系列中间步骤生成测试用例。
因果图最终生成的就是决策表,提供了一个把规格转化为决策表的系 统化方法,从该图中可以产生测试数据。
1.因果图
1.因果图
2.使用因果图和决策表设计测试用例
使用因果图和决策表设计测试用例步骤如下: 1. 分析需求规格说明找出原因和结果; 2. 画出因果图; 3. 标记约束或限制条件; 4. 把因果图转换为决策表; 5. 生成测试用例;
3.实例
某软件规格说明书包含这样的要求:第一列字符必须是A或B,第二列 字符必须是一个数字,在此情况下进行文件的修改,但如果第一列字符不正 确,则给出信息L;如果第二列字符不是数字,则给出信息M。
因果图中原因表示输入条件,结果是对输入执行的一系列计算后得到 的输出。
1.因果图
因果图中基本符号 ➢ 以直线连接左右节点,左节点表示原因 (输入状态ci),右节点 表示结果(输出状态ei) ➢ ci和ei均可取值0或1,0表示状态不出现,1表示状态出现
因果图中三大关系 ➢ 原因和结果的关系 ➢ 原因和原因的关系 ➢ 结果和结果的关系
4 因果图法

实例二:步骤回顾总结
回顾!!!
E(互斥/异或) 若必填: O(唯一)
R(要求)
I(包含)
本节课程内容
1 2 3
因果图法概述
实例讲解及演练 方法应用与总结
方法应用与总结
• 应用场合
– 当软件的输入条件过多时,可以考虑输入的所有排列组合情况, 考虑条件之间和条件结果之间关系,防止遗漏
• 局限性
– 测试用例数目可能会很大,不便于维护
本节内容总结
• 因果图法概述
– 等价类+边界值:着重考虑输入条件,忽略输入条件的组合情况 及各个输入条件之间的相互制约关系 – 因果图:针对输入之间的关系,考虑输入条件之间的组合、约 束等情况
• 实例讲解及演练
– 字符显示实例——饮料机购物
• 方法应用与总结
– 当软件的输入条件过多时,可以考虑输入的所有排列组合情况, 防止遗漏
• 原因: ① 投入1元5角硬币
③ 按“可乐”按钮 • 中间状态: ① 已硬币
②投入2元硬币
⑤ 按“红茶”按钮
④按“雪碧”按钮 ②已按钮
• 结果: ① 送饮料且退还5角硬币
③ 送出“雪碧”饮料
②送出“可乐”饮料
④送出“红茶”饮料
实例二:解析(2)
2)画出因果图:
输入条件(原因)
输出条件(结果)
E
投入2元硬币
v
(2)
(11)
按“可乐”按钮
(3)
按“红茶”按钮
(5)
v
按“雪碧”按钮
Eห้องสมุดไป่ตู้------ (4)
v
(12)
v
v v
投入1元5角硬币
(1)
(21)
8.黑盒测试(4)-因果图

实例
图4 因果图示例
实例
因为C1和C2不可能同时为1,即第一个字符不可能既是A又是B,在因果 图上可对其施加E约束,得到具有约束的因果图,如图5所示。
图5 具有E约束的因果图
实例
(3)将因果图转换成决策表,如表1所示。 (4)设计测试用例。表1中的前两种情况,因为原因1和原因2不可能同时 为1,所以应排除这两种情况。根据此表,可以设计出6个测试用例,如表 2所示。
输入与输出的约束关系
(a)异
(b)或
(c)惟一
(d)要求
(e)强制 图3 约束符号
设计步骤
(1)分析软件规格说明书中的输入输出条件并划分出等价类,将每 个输入输出赋予一个标志符;分析规格说明中的语义,通过这些语义 来找出多个输入因素之间的关系。 (2)找出输入因素与输出结果之间的关系,将对应的输入与输出之 间的关系关联起来,并将其中不可能的组合情况标注成约束或者限制 条件,形成因果图。 (3)由因果图转化成决策表,任何由输入与输出之间关系构成的路 径,形成决策表的一列,也被视为决策表的一条规则。 (4)将决策表的每一列拿中使用4种符号分别表示4种因果关系,如图2所示。 用直线连接左右节点,其中左节点Ci表示输入状态(或称原 因),右节点ei表示输出状态(或称结果)。Ci和ei都可取 值0或1,0表示某状态不出现,1表示某状态出现。
• 图2中各符号的含义如下: 恒等:若C1是1,则e1也是1,否则e1为0。 非:若C1是1,则e1是0,否则e1为1。 或:若C1或C2或C3是1,则e1是1,否则e1为0。 与:若C1和C2都是1,则e1是1,否则e1为0。
设计步骤
从因果图生成的测试用例中包括了所有输入数据的取 TRUE与FALSE的情况,构成的测试用例数目达到最少, 且测试用例数目随输入数据数目的增加而线性地增加。
黑盒4-_因果图法-年薪及中国象棋问题ppt课件

测试用例 Logo
测试用例1: 输入数据: 年薪制员工,严重过失 : 年薪制员工,过失 预期输出: 扣年终风险金的2%
测试用例3: 输入数据: 非年薪制员工,严重过 失 预期输出: 扣当月薪资的8%
测试用例4: 输入数据: 非年薪制员工,过失 预期输出: 扣当月薪资的4%
E1
1000
E2
0100
E3
0010
E4
0001
Logo
E2
1
00
E3
0
10
E4
0
01
决策表分解
规则 选项
1 2 3
123 4 56 78
111 1 00 00 110 0 11 00 101 0 10 10
Logo
11
100 0 00 00
E1
011 1 11 11
规则
12345678
选项
11 0 0 0 0 1 1 1 1 4 10001000 5 01000100 6 00100010 7 00010001
Logo
规则
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
选项
11 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 5 1 1 1 1 0 0 0 01 1 1 1 0 0 0 0 6 1 1 0 0 1 1 0 01 1 0 0 1 1 0 0 7 1 0 1 0 1 0 1 01 0 1 0 1 0 1 0
Logo
黑盒测试用例设计 ——因果图法
习题1
Logo
某软件的一个模块的需求规格阐明书中描画:
〔1〕年薪制员工:严重过失,扣年终风险金的4%; 过失,扣年终风险金的2%。
黑盒测试用例--因果图设计法

黑盒测试用例--因果图设计法
•因果图:是一种简化了的逻辑图,能直观地表明程序输入条件(原因)和输出动作(结果)之间的相互关系
•因果图法:是借助图形来设计测试用例的一种系统方法,特别适用于被测试程序具有多种输入条件,程序的输出又依赖于输入条件的各种的情况。
描述:
1.年薪制员工:严重过失,扣年终风险金的4%;
过失,扣年终风险金的2%
2.非年薪制员工:严重过失,扣当月薪资的8%
过失,扣当月薪资的4%
要求:如果年薪制员工既是过失又是严重过失则扣年终风险金的4% ;非年薪制员工既是过失又是严重过失扣当月薪资的8%
首先列出原因和结果
其次画出因果图:
再次:转换为判定表:
最后:分析测试用例
因果图的优点、缺点:
优点:不论输入条件的组合多么复杂,总可以按照上面的例子给出的步骤找出测试用例。
不足:输入条件的组合数2ª随a的上升急剧增长,当a较大时,因果图的结构将变得十分复杂,而把因果图转换为判定表则更为麻烦。
转自:哈尔滨软件测试交流/。
黑盒用例设计方法之因果图法

黑盒用例设计方法之因果图法1.因果图的具体介绍 (2)1.1.为什么么需要因果图 (2)1.2.因果图概念介绍 (2)1.2.1.布尔逻辑运算符 (3)1.2.2.因果图的约束关系表示法 (4)1.3.使用因果图设计测试用例的步骤 (6)1.3.1.分析需求 (6)1.3.2.确定原因和结果 (6)1.3.3.确定逻辑关系 (6)1.3.4.确定约束关系 (6)1.3.5.把因果图转换为决策表 (7)1.3.6.根据原因给出结果 (7)1.3.7.设计测试用例 (7)1.4.举例说明 (7)1.4.1.例子1 (7)1.4.2.例子2 (10)2.使用因果图的好处 (13)总上所述,我认为因果图最大的好处有2点: (13)1.因果图的具体介绍1.1.为什么么需要因果图在黑盒测试中,等价类划分或边界值分析法只考虑了不同的输入和不同的输出之间的关系。
但是如果是各个输入条件之间有很复杂的组合,这二种设计方法都很难用一个系统的方法进行描述,设计测试用例只能依靠测试人员主观的猜测或者分析,具有很大的盲目性。
让我们先来看一个简单的例子。
假设某个软件需求文档中有这样的说明:第一列字符必须是A或B,第二列字符必须是一个数字,在此情况下进行文件的修改。
但如果第一列字符不正确,则给出信息L;如果第二列字符不是数字,则给出信息M。
先用等价类来分析,第一列会有三个输入:A、B、非(A B)的字符。
第二列字符有二个输入:数字、非数字(为了简便起见,有关数字再细化的问题不做讨论)。
这是一个根据理论进行分析的过程。
但是做完了这一步,并不能得出输出。
也就是说如何分析第一列和第二列的关系,没有明确的理论指导。
实际操作过程中,各个测试人员可能会设计出不同的测试用例。
这个例子还仅仅是一个2个输入条件之间有关系,如果到更复杂的应用中,可能会更多。
如果没有一种方法指导我们的思想,测试用例就会很不全面。
而因果图正好弥补了上述缺点。
我们先来看一下什么叫因果图。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课堂回顾: Logo
1、以下四个图例分别表示什么关系:
c1
e1
c1 ~ e1
c1
c2
∨ e1
c3
c1 ∧ e1
c2
课堂回顾: Logo
2、以下五种图例又分别表示什么关系??
a
E
I
b
a
R
b
a
a
b
O
b
c
a
M
b
Logo
3、叙述因果图法设计测试用例的步骤
因果图法设计测试用例思想 Logo
• 首先从程序规格说明书的描述中, 找出因(输入条件)和果(输出结果 或者程序状态的改变),
• 然后通过因果图转换为判定表,最 后为判定表中的每一列设计一个测 试用例.
因果图法的定义: Logo
• 是一种利用图解法分析输入的各种 组合情况,从而设计测试用例的方 法,它适合于检查程序输入条件的 各种组合情况。
为0,“与”也可有任意个输入。
Logo
• 在实际问题当中输入状态相互之间还可能 存在某些依赖关系,称为“约束”
a E
b 异
a
I
b
或c
(a)
(
a
R
M
b 要求
b 强制
(d)
(e)
Logo
–E约束(异):a和b中最多有一个可能为1, 即a和b不能同时为1;
a E
b 异
Logo
什么是因果关系?? Logo
• 拿破仑说: • “失一个钉子,坏了一只蹄铁; • 坏了一只蹄铁,折了一匹战马; • 折了一匹战马,伤了一位骑士; • 伤了一位骑士,输了一场战斗;
• 输了一场战斗,亡了一个帝国。” • 这就是因果关系
因果图法举例 Logo
• 程序的规格说明要求:输入的第一个 字符必须是“#”或“*”,第二个字 符必须是一个数字,在此情况下进行 文件的修改;如果第一个字符不是“#” 或“*”,则给出信息N;如果第二个 字符不是数字,则给出信息M。
因果图中出现的基本符号 Logo
原因
结果
通常在因果图中用Ci表示原因,用Ei 表示结果,各结点表示状态,可取值 “0”或“1”。“0”表示某状态不出 现,“1”表示某状态出现。
主要的原因与结果之间的关系 Logo
c1
e1
(a)恒等
c1 ~ e1 (b)非
c1
V
c2
e1
c3
(c)或
V
c1 e1
c2
–M约束(强制):若结果a是1,则结果b强制为0。
因果图法设计测试用例步骤: Logo
• 分析程序规格说明书描述的语义内容,找出“原 因”和“结果”,将其表示成连接各个原因与各 个结果的“因果图”。
• 由于语法或环境限制,有些原因与原因之间或与 结果之间的组合情况不能出现,用记号标明约束 或限制条件;
软件测试
第3章 黑盒测试方法
——因果图法
目录
1 因果图法设计测试用例思想
2
因果图的定义
3 因果图法设计测试用例步骤
4
使用因果图法的优点
5
案例分析
Logo
因果图法产生的背景 Logo
等价类划分法和边界值分析方 法都是着重考虑输入条件,但没有 考虑输入条件的各种组合、输入条 件之间的相互制约关系。这样虽然 各种输入条件可能出错的情况已经 测试到了,但多个输入条件组合起 来可能出错的情况却被忽视了。
c3
~
a3
具有E约束的因果图表示
1 C1 1 C2 1 C3 1 11 a1 a2 a3 不可能 √ 测试 用例
将因果图转化为判定表
23 4 5 6 11 1 0 0 10 0 1 1 01 0 1 0
1 11 1
√
√
√
√
√
#3 #B *7 *M
Logo
78 00 00 10 00 √√
√
C2 CM
(4)设计测试用例 Logo
• 最左边两列,原因c1和c2同时为1不可能,排 除掉,根据表可设计出6个测试用例。
–Test1:输入数据-#3 –Test2:输入数据-#B –Test3:输入数据-*7 –Test4:输入数据-*M –Test5:输入数据-C2 –Test6:输入数据-CM
和N
预期输出--修改文件 预期输出--给出信息M
• 与:若c1和c2都是1,则e1为1,否则e1为0, “与”也可有任意个输入。用符号“∧” 表示。
c1 e1
c2
V
Logo
–恒等:若c1是1,则e1也为1,否则e1为 0;
–非:若c1是1,则e1为0,否则e1为1; –或:若c1或c2或c3是1,则e1是1,否则
e1为0,“或”可有任意个输入; –与:若c1和c2都是1,则e1为1,否则e1
Logo
• 对于输入条件的约束有4种:
–E约束(异):a和b中最多有一个可能为1,即a和b 不能同时为1;
–I约束(或):a、b、c中至少有一个必须是1,即a、 b、c不能同时为0;
–O约束(唯一):a和b必须有一个且仅有一个为1; –R约束(要求):a是1时,b必须是1;
• 对于输出条件的约束只有M约束
(d)与
Logo
• 恒等:若c1是1,则e1也为1,否则 e1为0;
c1
e1
Logo
–非:若c1是1,则e1为0,否则e1 为1;用符号“~”表示。
c1 ~ e1
Logo
• 或:若c1或c2或c3是1,则e1是1, 否则e1为0,“或”可有任意个输
入;用符号“V”表示。
c1
V
c2
e1
c3
Logo
步骤: Logo
1.分析程序的规格说明,列出原因和结果;
2.找出原因与结果之间的因果关系、原 因与原因之间的约束关系,画出因果图。
3.将因果图转换成决策表; 4.根据3中的决策表,设计测试用例的输 入数据和预期输出。
解法如下: Logo
• (1)在明确了上述要求后,可以明确地将 原因和结果分开。
–I约束(或):a、b、c中至少有一个必须 是1,即a、b、c不能同时为0;
a
I
b
或c
Logo
–O约束(唯一):a和b必须有一个且仅有 一个为1;
a O
b 唯一
Logo
–R约束(要求):a是1时,b必须是1;
a R
b 要求
Logo
• M约束(强制):若结果a是1,则结果b强 制为0。
a M
b 强制
预期输出--修改文件 预期输出--给出信息M
预期输出--给出信息N 预期输出--给出信息M
–原因:c1-第一个字符是“#” c2-第一个字符是“*” c3-第二个字符是一个数字
–结果:a1-给出信息N a2-修改文件 a3-给出信息M
(2)因果图
c1 V 10
c2
V
Logo
10为导出结果的中间原因
a1 ~
a2
c3
~
a3
因果图表示
带有E约束的因果图 Logo
c1
a1
E
V 10
~
V
c2
a2