第2章 黑盒测试因果图
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
输入数据:A3 预期输出:修改文件 输入数据:AM 预期输出:给出信息M 输入数据:B3 预期输出:修改文件 输入数据:B* 预期输出:给出信息M 输入数据:C2 预期输出:给出信息L 输入数据:CM 预期输出:给出信息LM
2015-6-24
24
练习题
例如,有一个处理单价为5角钱的饮料的 自动售货机软件测试用例的设计。其规格 说明如下: 若投入5角钱或1元钱的硬币,按下〖橙汁〗 或〖啤酒〗的按钮,则相应的饮料就送出 来。若售货机没有零钱找,则一个显示 〖零钱找完〗的红灯亮,这时在投入1元 硬币并按下按钮后,饮料不送出来而且1 元硬币也退出来;若有零钱找,则显示 〖零钱找完〗的红灯灭,在送出饮料的同 时退还5角硬币。”
2015-6-24
44
添加中间节点11,目的是作为导出结果的进一步原因,简化因果 图导出的判定表
1 ~ 2 3 4 5 E 6 7
2015-6-24 45
~ ~ V
V
E1
E2 V E3 V V E4
11
~
决策表分解
规则 选项
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
10
~
∧
e1 e2 e3
20
2015-6-24
~
因果图
中间结果
C1 ∨ C2 10
~ ∧
E2
E1
C3 ~
E3
2015-6-24
21
带有E约束的因果图
C1
~ ∨ 10 ∧
E2
E
C2
E1
C3 ~
E3
2015-6-24
22
将因果图转化为判定表
1 2 3 4 5 6 7 8
C1 C2 C3 10 E1 E2 E3
12 C2
E3
E4
2015-6-24
39
将因果图转化为判定表:
2015-6-24
40
测试用例
测试用例1: 输入数据: 年薪制员工,严重过失 预期输出: 扣年终风险金的4% 测试用例2: 输入数据: 年薪制员工,过失 预期输出: 扣年终风险金的2% 测试用例3: 输入数据: 非年薪制员工,严重过失 预期输出: 扣当月薪资的8% 测试用例4: 输入数据: 非年薪制员工,过失 预期输出: 扣当月薪资的4%
原因
结果
通常在因果图中用Ci表示原因,用Ei 表示结果,各结点表示状态,可取值 “0”或“1”。“0”表示某状态不出 现,“1”表示某状态出现。
2015-6-24
7
4.因果图法
主要的原因和结果之间的关系有:
C1
C1
C2
2015-6-24
8
4.因果图法
恒等: 若c1为1,则e1也为1,否则e1为 0. 非: 若c1是1,则e1为0,否则e1是1. 或: 若c1或c2或c3是1,则e1是1,若三 者都不为1,则e1为0. 与: 若c1和c2都是1,则e1为1,否则若 有其中一个不为1,则e1为0.
1 2 3 4 11 E1
1 1 1 1
1 1 1 0
1 1 0 1
1 1 0 0 0 1
1 0 1 1
1 0 1 0
1 0 0 1
1 0 0 0
0 1 1 1
0 1 1 0
0 1 0 1 0 1
0 1 0 0 0 1
0 0 1 1 0 1
0 0 1 0 0 1
0 0 0 1 0 1
0 0 0 0 0 1
期望输 出
23,24 23,25 .. 24 25 .. .. .. 21,22 21,22 21 21,24 21,25 21 21
34
使用因果图法的优点
考虑了多个输入之间的相互组合、相互制约 关系; 能够帮助我们按一定步骤,高效率地选择测 试用例,同时还能为我们指出,程序规格说 明描述中存在着什么问题
3.6.3 因果图法测试举例
用因果图法测试以下程序。 程序的规格说明要求:输入的第一个 字符必须是#或*,第二个字符必须是一个数 字,此情况下进行文件的修改;如果第一个 字符不是#或*,则给出信息N,如果第二个 字符不是数字,则给出信息M。
2015-6-24
18
解题步骤: (1)分析程序的规格说明,列出原因和结果。 (2)找出原因与结果之间的因果关系、原因与原 因之间的约束关系,画出因果图。 (3)将因果图转换成决策表。 (4)根据(3)中的决策表,设计测试用例的输 入数据和预期输出。
2015-6-24 9
4.因果图法
实际问题中,输入状态之间可能存在 某些依赖关系,这种依赖关系被称为” 约束”. 在因果图中使用特定的符号来表示这 些约束关系:
2015-6-24
10
4.因果图法
约束关系说明:
E约束(异): a,b最多有一个可能为1,不 能同时为1.
2015-6-24
11
21. 售货机〖零钱找完〗灯亮 22. 退还1元硬币 23. 退还5角硬币 24. 送出橙汁饮料 25. 送出啤酒饮料
2015-6-24
28
2015-6-24
29
建立中间结点,表示处理中间状态:
11. 投入1元硬币且按下饮料按钮 12. 按下〖橙汁〗或〖啤酒〗的按钮 13. 应当找5角零钱并且售货机有零钱找 14. 钱已付清
2015-6-24 25
橙汁
啤酒
投币口
5角 1元
零钱找完 有零钱找
退币口
取货 出货口
2015-6-24 26
练习题
(1) 分析这一段说明,列出原因和结果 原因: 1. 售货机有零钱找 2. 投入1元硬币 3. 投入5角硬币 4. 按下橙汁按钮 5. 按下啤酒按钮
2015-6-24
27
练习题
结果:
第 2章 黑盒测试用例设计方法
2015-6-24
1
黑盒测试用例设计方法
-----------因果图方法
2015-6-24
2
4.因果图法
4.1概述
等价类划分方法和边界值分析方法着 重考虑输入条件,而不考虑输入条件 的各种组合,也不考虑输入条件之间 的相互制约的关系,但有时一些具体 问题中的输入之间存在着相互依赖的 关系,如:NextDate函数问题。
2015-6-24
41
习题2
中国象棋中走马的测试用例设计为例学习因果图 的使用方法(下面未注明的均指的是对马的说明)
2015-6-24
42
一、 分析中国象棋中走马的实际情况
1.
2. 3.
4. 5. 6.
7.
如果落点在棋盘外,则不移动棋子; 如果落点与起点不构成日字型,则不移动棋子; 如果在落点方向的邻近交叉点有棋子(绊马腿),则不移动棋 子; 落点处有己方棋子,则不移动棋子; 如果不属于1-4条, 落点处无棋子,则移动棋子; 如果不属于1-4条, 落点处为对方棋子(非老将),则移动棋 子并除去对方棋子; 如果不属于1-4条,且落点处为对方老将,则移动棋子,并提 示战胜对方,游戏结束。
不可能
1 1 1
1 1 0
1 0 1 1 √
1 0 0 1
0 1 1 1 √
0 1 0 1
0 0 1 0
√
0 0 0 0
√ √ CM D*
23
√ √ √ A3 A5 AM A& B3 B5
√ BM B* C2 X6
测试 用例
2015-6-24
设计测试用例
测试用例1: 测试用例2: 测试用例3: 测试用例4: 测试用例5: 测试用例6:
0 0 1 1 1 0
0 0 0 0 1 0
11 E1
1 0 0 0 1 1
0 1
0 0 1 1
0 0 1 1
2015-6-24 16
4.因果图法
(3) 由于语法或环境限制,有些原因与原 因之间,原因与结果之间的组合情况不可 能出现。为表明这些特殊情况,在因果图 上用一些记号标明约束或限制条件。 (4) 把因果图转换成判定表。 (5) 把判定表的每一列拿出来作为依据, 设计测试用例。
2015-6-24
17
2015-6-24
3
4.因果图法
如果输入之间有关系,我们在测试时必须 考虑输入条件的各种组合,那么可以考虑 使用一种适合于描述对于多种条件的组合, 相应产生多个动作的形式来设计测试用例, 这就需要利用因果图。
2015-6-24
4
4.因果图法
因果图方法最终生成的就是判定表。 它适合于检查程序输入条件的各种组 合情况。
2015-6-24
37
原因:C1. 年薪制员工 C2. 严重过失 中间状态:11. 非年薪制员工 12. 过失 结果:E1. 扣年终风险金的4% E2. 扣年终风险金的2% E3. 扣当月薪资的8% E4. 扣当月薪资的4%
2015-6-24 38
因果图
C1 E1
11 E2
Test1 Test2 Test3 Test4 Test5 Test6 Test7 Test8 Test9 Test10 Test11 Test12 Test13 Test14 Test15
2015-6-24
输入条件 12345 组合
11010 11001 11000 10110 10101 10100 10010 10001 01010 01001 01000 00110 00101 00100 00010
2015-6-24
30
练习题
(2) 画出因果图。所有原因结点列在左边,所有结 果结点列在右边。
2015-6-24
31
练习题
(3) 由于 2 与 3 ,4 与 5 不能同时发生,分 别加上约束条件E。 (4) 因果图转换成判定表 (5) 设计测试用例
2015-6-24
32来自百度文库
2015-6-24
33
编号
2015-6-24 43
二、 根据分析明确原因和结果
原因:
1. 2. 3.
结果:
E1、不移动棋子; E2、移动棋子; E3、移动棋子,并除去对方 棋子; E4、移动棋子,并提示战 胜对方,结束游戏。
4. 5.
6.
7.
落点在棋盘上; 落点与起点构成日字; 落点方向的邻近交叉点 无棋子; 落点处为自己方棋子; 落点处无棋子; 落点处为对方棋子(非老 将); 落点处为对方老将。
2015-6-24
19
因果图法测试举例(续)
(1)分析程序规格说明中的原因和结果:
原因 c1:第一个字符是#
c2:第一个字符是* c3:第二个字符是一个数字
结果 e1:给出信息N
e2:修改文件 e3:给出信息M
(2)画出因果图(编号为10的中间结点是导出结果的进一步原因):
c1 E c2 c3
∨
4.因果图法
I约束(或): a,b,c中至少有一个必须为1,不 能同时为0.
2015-6-24
12
4.因果图法
O约束(惟一): a和b必须有一个且仅有一个 为1
2015-6-24
13
4.因果图法
R约束(要求):a是1时,b必须是1,即a为1时 ,b不能为0
2015-6-24
14
4.因果图法
2015-6-24
5
4.因果图法
使用因果图法设计测试用例时: (1)首先从程序规格说明书的描述中,找 出因(输入条件)和果(输出结果或者程 序状态的改变),绘出因果图。 (2)然后通过因果图转换为判定表,最后 为判定表中的每一列设计一个测试用 例.
2015-6-24
6
4.因果图法
4.2 因果图中出现的基本符号
2015-6-24
35
小结
因果图方法:
因果图方法的适用范围 因果图方法设计测试用例的步骤 因果图方法优点
2015-6-24
36
习题
某软件的一个模块的需求规格说明书中描述: (1)年薪制员工:严重过失,扣年终风险金的 4%;过失,扣年终风险金的2%。 (2)非年薪制员工:严重过失,扣当月薪资的 8%;过失,扣当月薪资的4%。 请绘制出因果图和判定表,并给出相应的测试用 例。
M约束:对输出条件的约束,若结果a为1,则 结果b必须为0.
2015-6-24
15
4.因果图法
4.3用因果图生成测试用例的基本步骤 (1) 分析软件规格说明描述中,哪些是 原因 (即输入条件或输入条件的等价 类),哪些是结果 (即输出条件),并给 每个原因和结果赋予一个标识符。 (2) 分析软件规格说明描述中的语义, 找出原因与结果之间,原因与原因之 间对应的是什么关系? 根据这些关系, 画出因果图。
0 1 0 1 0 1
0 0 1 1
0 0 0 0 1 1 1 1
2015-6-24
46
规 则 选项
1 11 5 6 7 E2 E3 E4 1 1 1 1
2 1 1 1 0
3 1 1 0 1
4 1 1 0 0 1 0 0
5 1 0 1 1
6 1 0 1 0 0 1 0
7 1 0 0 1 0 0 1
8 1 0 0 0
9 0 1 1 1
10 0 1 1 0
1 1
0 1 0 1
12 13 0 1 0 0 0 0 1 1
1 4
0 0 1 0
15 0 0 0 1
1 6
0 0 0 0
2015-6-24
47
决策表分解
规则
选项
1 2 3 4 5 6 7 8
1 2 3
1 1 1 1 1 0 1 0 1
1 0 0