黑盒测试技术4-因果图法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
❖ 与: 表示若几个原因都出现,结果才出现;若几个
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。
因果图的约束符号
O
(Only)
a ❖ O 约束(唯一) : 表示几个原因中必须有且仅有一个成立。
步骤2:画出因果图
原因
结果
C1:年薪制员工
A1:扣年终风 险金的4%
C2:非年薪制员工
A2:扣年终风 险金的2%
C3:严重过失
A3:扣当月薪 资的8%
C4:过失
A4:扣当月薪 资的4%
步骤3:施加相应的约束
原因
结果
C1:年薪制员工
A1:扣年终风 险金的4%
C2:非年薪制员工
A2:扣年终风 险金的2%
✓ 试绘制上述程序的因果图并转化为相应的决策表。
步骤1:分析原因和结果
• 根据题意,原因和结果如下:
原因
结果
若投入5元钱,按下“橙汁” 或“啤酒”的按钮,则相应的
1:投入10元 21:退还5元
2:投入5元
22:送出 “橙汁”
3:按下“橙 23:送出
汁”按钮
“啤酒”
饮料就送出来。若投入10元钱 的硬币,同样也是按“橙汁” 或“啤酒”的按钮,则自动售 货机在送出相应饮料的同时退 回5元钱。
找出条件桩与动作桩
•根据题意,条件和动作如下:
条件
动作
C1:年薪制员工
A1:扣年终风 险金的4%
C2:非年薪制员工
A2:扣年终风 险金的2%
C3:严重过失
A3:扣当月薪 资的8%
C4:过失
A4:扣当月薪 资的4%
(1)年薪制员工:严重过失,扣年 终风险金的4%;过失,扣年终风 险金的2%。
(2)非年薪制员工:严重过失,扣 当月薪资的8%;过失,扣当月薪 资的4%。
E
投投入入5角5元硬币
2
按下“橙汁”按钮
3
E
按下“啤酒”按钮
4
∨ 11
已投币
∧ 21
退退还换5角5硬元币
∧ 22
送出“橙汁”饮料
∨ 12
已按钮

23
送出“啤酒”饮料
添加约束条件的因果图
步骤4 将因果图转换为决策表
投入10元 投入5元
退还5元
三角问题
• 绘制三角问题的因果图并转化为相应的决策表。
步骤1:分析原因和结果
输入条件项和动作项
存在大量 不可能的情况

c1:年薪制员工 T F T T T F F F T T T F F F T F
c2:非年薪制员工 T T F T T F T T F F T F F T F F
c3:严重过失
T T T F T T FTFTF F T F FF
c4:过失
T T T T F T TFTFF T F F FF
❖ 非:
表示原因与结果之间的一种否定关系。 e1 若原因出现,则结果不出现;若原因不出现
,反而结果出现。 如图,若ci是1,则ei是0;否则ei是1。
因果图的关系符号
c1

c2 V
c3
c1


c2
❖ 或: 表示若几个原因中有一个出现,则结果出现
e1 ;只有当这几个原因都不出现时,结果才不 出现。 如图,若c1或c2是1,则ei为1;否则ei为0。 “或”可有任意个输入。
4
24:一般三角

5
5:A = C
6
6:B = C
~ ~


10
∧ 11

12

21
∧ 22
M
∧ 23
~ 24
对于条件4:A = B, 5:A = C ,6:B = C,不可能两个成立,另
一个不成立的约束如何添加?
重回步骤1:分析原因和结果
•根据题意,原因和结果如下:
1:A < B+C 2:B < A+C 3:C < A+B 4:A = B 5:A = C 6:B = C
C3:严重过失
A3:扣当月薪 资的8%
C4:过失
A4:扣当月薪 资的4%
步骤4 :将因果图转换为决策表
c1:年薪制员工
FFTT
c2:非年薪制员工 c3:严重过失
TTFF FTFT
c4:过失
TFTF
A1:扣年终风险金的4%

A2:扣年终风险金的2%

A3:扣当月薪资的8%

A4:扣当月薪资的4%

步骤5:设计测试用例
4
4:A = B
24:一般三角形
5:A = C
5
6:B = C
6
~ ~


10
∧ 11

12

21
∧ 22
∧ 23
~ 24
•10、11、12为中间
步骤3:施加相应的约束
原因
结果
1:A < B+C
21:不能构成 三角形
1
2
2:B < A+C
22:等边三角 形
3
3:C < A+B
23:等腰三角 形
4:A = B
A1:扣年终风险金 的4%
A2:扣年终风险金 的2%
A3:扣当月薪资的 8%
A4:扣当月薪资的 4%
√ √ √ √
当输入条件过多时,使用判定表会产生大量测试用例 ,而且也不能表达条件之间的各种(先后)关系。
在一定情况下,那还有没有其他适合的方法呢?
步骤一:列出原因和结果
•根据题意,原因和结果如下:
1
~ ~

21
~ ∧ 13
4
2


3
10
4
∧ 11
5
∧ 22 ∧ 23
~ 5 M6 ~
∧ 14 ∧
15
6
∨ 12
~∧
24
∨ 25
步骤4: 将因果图转换为决策表
1:a<b+c? 2:b<a+c? 3:C<a+b? 4:a=b? 5:a=c? 6:b=c? 21:非三角形 24:一般三角形 23:等腰三角形 22:等边三角形 25:不可能
FTTTT - FTTT - - FTT - - - TT - - - TT - - - TF √√√
√ √
T T TTT T T T TTT T T T TTT T T T FFF F F F TTF F T F TFT F


√√


步骤5 :根据决策表设计测试用例
用例ID DT1 DT2 DT3 DT4 DT5 DT6 DT7 DT8 DT9 DT10 DT11
因果图法与判定表法的关系?
不同角度
因果图法
判定表法
位置 黑盒测试技术中,设计测试用例的方法
联系
适用于
程序的输入条件存在不同的组合,执行相应的操作 弥补了等价类、边界值的不足
基本思想 把程序功能的描述性语言形象的图表(直观、清晰)
使用
二者往往结合使用,使用因果图可以得到判定表,它可以看作 判定表法的前期阶段,也可以直接应用判定表。
❖因果图提供了一个把需求转化为判定表的系统化方法 ❖因果图法最终生成的就是判定表,它适合于检查程序输
入条件的各种组合情况。 ❖原因:输入条件 结果:输出
因果图的关系符号
左边的节点表示原因
右边的节点表示结果
• 因果图中使用简单的关系符号,以直线联接左右结点。 左结点表示输入状态(原因),右结点表示输出状态(结果)。
原因
结果
C1:年薪制员工
A1:扣年终风 险金的4%
C2:非年薪制员工
A2:扣年终风 险金的2%
C3:严重过失
A3:扣当月薪 资的8%
C4:过失
A4:扣当月薪 资的4%
(1)年薪制员工:严重过失,扣年 终风险金的4%;过失,扣年终风 险金的2%。
(2)非年薪制员工:严重过失,扣 当月薪资的8%;过失,扣当月薪 资的4%。
因果图与判定表的选择
❖ 考虑条件和动作间的联系——先使用因果图 ❖ 如果需求是以判定表形式给出的、项目在设计阶段就采
用了判定表——直接用判定表设计测试用例
例题
• 例如,有一个饮料自动售货机(处理单价为5元)的控制 处理软件,它的软件规格说明如下:
✓ 若投入5元钱,按下“橙汁”或“啤酒”的按钮,则相应的饮料 就送出来。若投入10元钱,同样也是按“橙汁”或“啤酒”的按 钮,则自动售货机在送出相应饮料的同时退回5元钱。
原因
结果
21:不能构成三角形 22:等边三角形 23:等腰三角形 24:一般三角形 25:不可能
步骤2:画出因果图
1
~ ~

21
2


3
10
∧ 22
~ ∧ 13
4
~ 5
∧ 14
∨ 25
4
∧ 11
5
∧ 23
6~

15
6
∨ 12
~∧
24
•10、11、12、13、14、15为中间节点。
步骤3:施加相应的约束
a
b
c
预期输出
4
1
2
非三角形
1
4
2
非三角形
1
2
4
非三角形
5
5
5
等边三角形
?
?
?
不可能
?
?
?
不可能
黑盒测试技术(IV) — 因果图法
学习目标
什么是因果图? 因果图的组成(关系和约束) 因果图法设计测试用例的步骤 因果图与判定表的关系
我们知道,当被测对象的输入条件
相互依赖、相互制约的时候,适合
用判定表法进行测试!
练习一
某软件的一个模块的需求规格说明书中描述: (1)年薪制员工:严重过失,扣年终风险金的4%;过失 ,扣年终风险金的2%。 (2)非年薪制员工:严重过失,扣当月薪资的8%;过失 ,扣当月薪资的4%。 请用判定表法设计出相应的测试用例。
4:按下“啤 酒”按钮
步骤2:画出因果图
投投入入11元0硬元币
1
投投入入55角元硬币
2
按下“橙
汁”按钮
3
按下“啤 酒”按钮
4
∨ 11
已投币
∨ 12
已按钮
ቤተ መጻሕፍቲ ባይዱ
•11、12为中间节点。
∧ 21
退退还换5角5元硬币
∧ 22
送出“橙汁”按钮

23
送出“啤酒”饮料
步骤3:施加相应的约束
投投入入110元元硬币
1
b 如图, a和b必须有一个,且仅有1个为1。
a
R
(Request) b
❖ R 约束(要求): 表示当a出现时,b必须也出现。
如图, a是1时,b必须是1,即不可能a是1时b是0 。
因果图的约束符号
输出条件的约束类型:
a
❖ M 约束(屏蔽):
M 表示当a是1时,b必须是0;
b
而当a为0时,b的值不一定。
(Mandate)
因果图法设计用例步骤
需求
1. 找出输入输出并进行标识
分析
2. 分析输入输出的关系
关联
3. 画出因果图
转换
4. 因果图转换为判定表
输出
5. 生成测试用例
因果图法设计用例的步骤
1. 分析软件需求规格说明中哪些是原因(即输入条件或 输入条件的等价类),哪些是结果(即输出条件), 并给每个原因和结果赋予一个标识符。
因果图的关系符号
❖ 4种符号表示4种因果关系:恒等、非、或、与 ❖ ci表示原因,通常在图的左部;ei表示结果,通常在图的右部。
ci和ei均可取值0或1,0表示某状态不出现,1表示某状态出现。
恒等 c1 非 c1
❖ 恒等: 表示原因与结果之间一对一的对应关系。
e1 若原因出现,则结果出现;若原因不出现, 则结果也不出现。 如图,若ci是1,则ei也是1;否则ei为0。
3:C < A+B 23:等腰三角形
4
4:A = B
24:一般三角形
5:A = C
5
6:B = C
6
~ ~


10

21
∧ 22
∧ 11

12
∧ 23 ~∧
24
•10、11、12为中间
步骤2:画出因果图
原因
结果
1
1:A < B+C
21:不能构成三 角形
2
2:B < A+C 22:等边三角形 3
3:C < A+B 23:等腰三角形
用例 员工类型 1 年薪制员工 2 年薪制员工 3 非年薪制员工 4 非年薪制员工
过失程度 严重过失
过失 严重过失
过失
预期输出 扣年终风险金的4% 扣年终风险金的2% 扣当月薪资的8% 扣当月薪资的4%
什么是因果图法?
因果图法(Cause-Effect Graphics) 是一种利用图解法分析输入的各种组合情况 ,从而设计测试用例的方法。
2. 分析软件规格说明中的语义,找出原因与结果之间、 原因与原因之间对应的关系, 根据这些关系画出因 果图。
3. 由于语法或环境的限制,有些原因与原因之间、原因 与结果之间的组合情况不可能出现。为表明这些特殊 情况,在因果图上用一些记号表明约束或限制条件。
4. 把因果图转换为判定表。 5. 根据判定表中的每一列设计测试用例。
相关文档
最新文档