第3章(4)黑盒测试方法4-因果图法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件测试
第3章 黑盒测试方法
——因果图法
目录
1 因果图法设计测试用例思想
2
因果图的定义
3
因果图法设计测试用例步骤
4
使用因果图法的优点
5
案例分析
Logo
因果图法产生的背景
Logo
等价类划分法和边界值分析方 法都是着重考虑输入条件,但没有 考虑输入条件的各种组合、输入条 件之间的相互制约关系。这样虽然 各种输入条件可能出错的情况已经 测试到了,但多个输入条件组合起 来可能出错的情况却被忽视了。
–M约束(强制):若结果a是1,则结果b强制为0。
因果图法设计测试用例步骤:
Logo
• 分析程序规格说明书描述的语义内容,找 出“原因”和“结果”,将其表示成连接 各个原因与各个结果的“因果图”。
• 由于语法或环境限制,有些原因与原因之 间或与结果之间的组合情况不能出现,用 记号标明约束或限制条件;
Logo
原因:
结果:
1. 落点在棋盘上;
E1、不移动棋子;
2. 落点与起点构成日字; E2、移动棋子;
3. 落点方向的邻近交叉 点无棋子;
E3、移动棋子,并除去对 方棋子;
4. 落点处为自己方棋子;
5. 落点处无棋子;
6. 落点处为对方棋子 (非老将);
E4、移动棋子,并提示 战胜对方,结束游 戏。
12
C5
V V
V V
Logo
E1 E2 E3 E4
(3)决策表
Logo
1 2 3 4 5 6 7 8 9 10 11
c1:投入1元5角硬币 1 1 1 1 0 0 0 0 0 0 0
c2:投入2元硬币
0000111 1 0 0 0
c3:按“可乐”按钮 1 0 0 0 1 0 0 0 1 0 0
c4:按“雪碧”按钮 0 1 0 0 0 1 0 0 0 1 0
• 将因果图转换成决策表;
• 根据决策表中每一列设计测试用例
课堂回顾:
Logo
1、以下四个图例分别表示什么关系:
c1
e1
c1
c2
∨ e1
c3
c1 ~ e1
c1 ∧ e1
c2
课堂回顾:
Logo
2、以下五种图例又分别表示什么关系??
a
a
a
E
I
b
O
b
b
c
a
a
R
M
b
b
Logo
3、叙述因果图法设计测试用例的步骤
–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 强制
1
0
0
6
0
0
1
0
0
0
1
0
7
0
0
0
1
0
0
0
1
E1
1
0
0
0
E2
0
1
0
0
E3
0
0
1
0
E4
0
0
0wk.baidu.com
1
决策表分解 Logo
规则
选项
12345678
1
11110000
2
11001100
3
10101010
11
10000000
E1
01111111
• 与:若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
预期输出--修改文件 预期输出--给出信息M 预期输出--修改文件 预期输出--给出信息M 预期输出--给出信息N 预期输出--给出信息M和N
案例分析1
Logo
• 有一个处理单价为1元5角的盒装饮料的自 动售货机软件。若投入1元5角硬币,按下 “可乐”,“雪碧”或“红茶”按钮,相 应的饮料就送出来。若投入的是两元硬币, 在送出饮料的同时退还5角硬币。
1
投入1元5角,按“可乐” 送出“可乐”饮料
2
投入1元5角,按“雪碧” 送出“雪碧”饮料
3
投入1元5角,按“红茶” 送出“红茶”饮料
4
投入2元,按“可乐”
找5角,送出“可乐”
5
投入2元,按“雪碧”
找5角,送出“雪碧”
6
投入2元,按“红茶”
找5角,送出“红茶”
习题1
Logo
某软件的一个模块的需求规格说明书中描述: (1)年薪制员工:严重过失,扣年终风险金的4%;
7. 落点处为对方老将。
添加中间节点11,目的是作为导出结果的进一 步原因,简化因果图导出的判定表
1
~
2
~
~
3
V
11
4
~
5
E
6
7
V
E1
V
E2 E3
V
V
E4
Logo
决策表分解
Logo
规则 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
选项
1
1111111100000000
什么是因果关系??
• 拿破仑说:
• “失一个钉子,坏了一只蹄铁; • 坏了一只蹄铁,折了一匹战马; • 折了一匹战马,伤了一位骑士; • 伤了一位骑士,输了一场战斗;
• 输了一场战斗,亡了一个帝国。”
• 这就是因果关系
Logo
因果图法举例
Logo
• 程序的规格说明要求:输入的第一个字符必 须是“#”或“*”,第二个字符必须是一个 数字,在此情况下进行文件的修改;如果第 一个字符不是“#”或“*”,则给出信息N; 如果第二个字符不是数字,则给出信息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
–结果:a1-给出信息N a2-修改文件 a3-给出信息M
(2)因果图 Logo
10为导出结果的中间原因
c1
a1
V 10
~
V
c2
a2
c3
~
a3
因果图表示
带有E约束的因果图 Logo
c1
a1
E
V 10
~
V
c2
a2
c3
~
a3
具有E约束的因果图表示
将因果图转化为判定表
Logo
1
C1
1
C2
1
C3
1
11
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约束
c5:按“红茶”按钮 0 0 1 0 0 0 1 0 0 0 1
11:已投币
1111111 1 0 0 0
12:已按钮
1110111 0 1 1 1
a1:退还5角硬币
√√√
a2:送出“可乐”饮料 √
√
a3:送出“雪碧”饮料
√
√
a4:送出“红茶”饮料
√
√
(4)设计测试用例
Logo
用例编号
测试用例
预期输出
过失,扣年终风险金的2%。 (2)非年薪制员工:严重过失,扣当月薪资的8%;
过失,扣当月薪资的4%。 请绘制出因果图和判定表,并给出相应的测试用例。
习题2
Logo
• 中国象棋中走马的测试用例设计为例学习因果图 的使用方法(下面未注明的均指的是对马的说明)
一、分析中国象棋中走马的实际况
Logo
1. 如果落点在棋盘外,则不移动棋子; 2. 如果落点与起点不构成日字型,则不移动棋子; 3. 如果在落点方向的邻近交叉点有棋子(绊马腿),则不移动
2
1111000011110000
3
1100110011001100
4
1010101010101010
11 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 E1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1
Logo
规则 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
使用因果图法的优点:
Logo
(1)考虑到了输入情况的各种组合以及各 个输入情况之间的相互制约关系。
(2)能够帮助测试人员按照一定的步骤, 高效率的开发测试用例。
(3)因果图法是将自然语言规格说明转化 成形式语言规格说明的一种严格的方法, 可以指出规格说明存在的不完整性和二义 性。
(1)分析原因及结果
c1:投入1元5角硬币;
c2:投入2元硬币;
原因 c3:按“可乐”按钮;
c4:按“雪碧”按钮;
c5:按“红茶”按钮;
11:已投币
中间状态
12:已按钮
e1:退还5角硬币;
结果
e2:送出“可乐”饮料; e3:送出“雪碧”饮料;
e4:送出“红茶”饮料;
Logo
(2)画出因果图
C1
E
V
11
C2
C3
E
C4
V
选项
11 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 5 1111000011110000 6 1100110011001100 7 1010101010101010
E2
1
00
E3
0
10
E4
0
01
Logo
规则
1
2
3
4
5
6
7
8
选项
11
0
0
0
0
1
1
1
1
4
1
0
0
0
1
0
0
0
5
0
1
0
0
0
因果图法设计测试用例思想
Logo
首先从程序规格说明书的描述中, 找出因(输入条件)和果(输出结果 或者程序状态的改变),
然后通过因果图转换为判定表,最 后为判定表中的每一列设计一个测 试用例.
因果图法的定义:
Logo
• 是一种利用图解法分析输入的各种 组合情况,从而设计测试用例的方 法,它适合于检查程序输入条件的 各种组合情况。
为0,“与”也可有任意个输入。
Logo
• 在实际问题当中输入状态相互之间还 可能存在某些依赖关系,称为“约束”
a E
b 异
a
I
b
或c
(a)
(b)
a O
b 唯一
a
a
R
M
b 要求
b 强制
(c)
(d)
(e)
Logo
–E约束(异):a和b中最多有一个可能为1, 即a和b不能同时为1;
a E
b 异
Logo
步骤:
Logo
1.分析程序的规格说明,列出原因和结果; 2.找出原因与结果之间的因果关系、原因与
原因之间的约束关系,画出因果图。 3.将因果图转换成决策表; 4.根据3中的决策表,设计测试用例的输入数
据和预期输出。
解法如下:
Logo
–(1)在明确了上述要求后,可以明确地将原 因和结果分开。
–原因:c1-第一个字符是“#” c2-第一个字符是“*” c3-第二个字符是一个数字
因果图中出现的基本符号
Logo
原因
结果
通常在因果图中用Ci表示原因,用 Ei表示结果,各结点表示状态,可 取值“0”或“1”。“0”表示某状 态不出现,“1”表示某状态出现。
主要的原因与结果之间的关系
Logo
c1
e1
c1 ~ e1
(a)恒等
(b)非
c1
V
c2
e1
c3 (c)或
V
c1 e1
c2
a1
a2
a3
不可能
√
测试用例
2
3
4
5
6
7
8
1
1
1
0
0
0
0
1
0
0
1
1
0
0
0
1
0
1
0
1
0
1
1
1
1
0
0
√
√
√
√
√
√
√
√
#3 #B *7 *M C2 CM
(4)设计测试用例
Logo
最左边两列,原因c1和c2同时为1不可能,排除掉, 根据表可设计出6个测试用例。
Test1:输入数据-#3 Test2:输入数据-#B Test3:输入数据-*7 Test4:输入数据-*M Test5:输入数据-C2 Test6:输入数据-CM
棋子; 4. 落点处有己方棋子,则不移动棋子; 5. 如果不属于1-4条, 落点处无棋子,则移动棋子; 6. 如果不属于1-4条, 落点处为对方棋子(非老将),则移动棋
子并除去对方棋子; 7. 如果不属于1-4条,且落点处为对方老将,则移动棋子,并提
示战胜对方,游戏结束。
二、 根据分析明确原因和结果
第3章 黑盒测试方法
——因果图法
目录
1 因果图法设计测试用例思想
2
因果图的定义
3
因果图法设计测试用例步骤
4
使用因果图法的优点
5
案例分析
Logo
因果图法产生的背景
Logo
等价类划分法和边界值分析方 法都是着重考虑输入条件,但没有 考虑输入条件的各种组合、输入条 件之间的相互制约关系。这样虽然 各种输入条件可能出错的情况已经 测试到了,但多个输入条件组合起 来可能出错的情况却被忽视了。
–M约束(强制):若结果a是1,则结果b强制为0。
因果图法设计测试用例步骤:
Logo
• 分析程序规格说明书描述的语义内容,找 出“原因”和“结果”,将其表示成连接 各个原因与各个结果的“因果图”。
• 由于语法或环境限制,有些原因与原因之 间或与结果之间的组合情况不能出现,用 记号标明约束或限制条件;
Logo
原因:
结果:
1. 落点在棋盘上;
E1、不移动棋子;
2. 落点与起点构成日字; E2、移动棋子;
3. 落点方向的邻近交叉 点无棋子;
E3、移动棋子,并除去对 方棋子;
4. 落点处为自己方棋子;
5. 落点处无棋子;
6. 落点处为对方棋子 (非老将);
E4、移动棋子,并提示 战胜对方,结束游 戏。
12
C5
V V
V V
Logo
E1 E2 E3 E4
(3)决策表
Logo
1 2 3 4 5 6 7 8 9 10 11
c1:投入1元5角硬币 1 1 1 1 0 0 0 0 0 0 0
c2:投入2元硬币
0000111 1 0 0 0
c3:按“可乐”按钮 1 0 0 0 1 0 0 0 1 0 0
c4:按“雪碧”按钮 0 1 0 0 0 1 0 0 0 1 0
• 将因果图转换成决策表;
• 根据决策表中每一列设计测试用例
课堂回顾:
Logo
1、以下四个图例分别表示什么关系:
c1
e1
c1
c2
∨ e1
c3
c1 ~ e1
c1 ∧ e1
c2
课堂回顾:
Logo
2、以下五种图例又分别表示什么关系??
a
a
a
E
I
b
O
b
b
c
a
a
R
M
b
b
Logo
3、叙述因果图法设计测试用例的步骤
–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 强制
1
0
0
6
0
0
1
0
0
0
1
0
7
0
0
0
1
0
0
0
1
E1
1
0
0
0
E2
0
1
0
0
E3
0
0
1
0
E4
0
0
0wk.baidu.com
1
决策表分解 Logo
规则
选项
12345678
1
11110000
2
11001100
3
10101010
11
10000000
E1
01111111
• 与:若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
预期输出--修改文件 预期输出--给出信息M 预期输出--修改文件 预期输出--给出信息M 预期输出--给出信息N 预期输出--给出信息M和N
案例分析1
Logo
• 有一个处理单价为1元5角的盒装饮料的自 动售货机软件。若投入1元5角硬币,按下 “可乐”,“雪碧”或“红茶”按钮,相 应的饮料就送出来。若投入的是两元硬币, 在送出饮料的同时退还5角硬币。
1
投入1元5角,按“可乐” 送出“可乐”饮料
2
投入1元5角,按“雪碧” 送出“雪碧”饮料
3
投入1元5角,按“红茶” 送出“红茶”饮料
4
投入2元,按“可乐”
找5角,送出“可乐”
5
投入2元,按“雪碧”
找5角,送出“雪碧”
6
投入2元,按“红茶”
找5角,送出“红茶”
习题1
Logo
某软件的一个模块的需求规格说明书中描述: (1)年薪制员工:严重过失,扣年终风险金的4%;
7. 落点处为对方老将。
添加中间节点11,目的是作为导出结果的进一 步原因,简化因果图导出的判定表
1
~
2
~
~
3
V
11
4
~
5
E
6
7
V
E1
V
E2 E3
V
V
E4
Logo
决策表分解
Logo
规则 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
选项
1
1111111100000000
什么是因果关系??
• 拿破仑说:
• “失一个钉子,坏了一只蹄铁; • 坏了一只蹄铁,折了一匹战马; • 折了一匹战马,伤了一位骑士; • 伤了一位骑士,输了一场战斗;
• 输了一场战斗,亡了一个帝国。”
• 这就是因果关系
Logo
因果图法举例
Logo
• 程序的规格说明要求:输入的第一个字符必 须是“#”或“*”,第二个字符必须是一个 数字,在此情况下进行文件的修改;如果第 一个字符不是“#”或“*”,则给出信息N; 如果第二个字符不是数字,则给出信息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
–结果:a1-给出信息N a2-修改文件 a3-给出信息M
(2)因果图 Logo
10为导出结果的中间原因
c1
a1
V 10
~
V
c2
a2
c3
~
a3
因果图表示
带有E约束的因果图 Logo
c1
a1
E
V 10
~
V
c2
a2
c3
~
a3
具有E约束的因果图表示
将因果图转化为判定表
Logo
1
C1
1
C2
1
C3
1
11
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约束
c5:按“红茶”按钮 0 0 1 0 0 0 1 0 0 0 1
11:已投币
1111111 1 0 0 0
12:已按钮
1110111 0 1 1 1
a1:退还5角硬币
√√√
a2:送出“可乐”饮料 √
√
a3:送出“雪碧”饮料
√
√
a4:送出“红茶”饮料
√
√
(4)设计测试用例
Logo
用例编号
测试用例
预期输出
过失,扣年终风险金的2%。 (2)非年薪制员工:严重过失,扣当月薪资的8%;
过失,扣当月薪资的4%。 请绘制出因果图和判定表,并给出相应的测试用例。
习题2
Logo
• 中国象棋中走马的测试用例设计为例学习因果图 的使用方法(下面未注明的均指的是对马的说明)
一、分析中国象棋中走马的实际况
Logo
1. 如果落点在棋盘外,则不移动棋子; 2. 如果落点与起点不构成日字型,则不移动棋子; 3. 如果在落点方向的邻近交叉点有棋子(绊马腿),则不移动
2
1111000011110000
3
1100110011001100
4
1010101010101010
11 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 E1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1
Logo
规则 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
使用因果图法的优点:
Logo
(1)考虑到了输入情况的各种组合以及各 个输入情况之间的相互制约关系。
(2)能够帮助测试人员按照一定的步骤, 高效率的开发测试用例。
(3)因果图法是将自然语言规格说明转化 成形式语言规格说明的一种严格的方法, 可以指出规格说明存在的不完整性和二义 性。
(1)分析原因及结果
c1:投入1元5角硬币;
c2:投入2元硬币;
原因 c3:按“可乐”按钮;
c4:按“雪碧”按钮;
c5:按“红茶”按钮;
11:已投币
中间状态
12:已按钮
e1:退还5角硬币;
结果
e2:送出“可乐”饮料; e3:送出“雪碧”饮料;
e4:送出“红茶”饮料;
Logo
(2)画出因果图
C1
E
V
11
C2
C3
E
C4
V
选项
11 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 5 1111000011110000 6 1100110011001100 7 1010101010101010
E2
1
00
E3
0
10
E4
0
01
Logo
规则
1
2
3
4
5
6
7
8
选项
11
0
0
0
0
1
1
1
1
4
1
0
0
0
1
0
0
0
5
0
1
0
0
0
因果图法设计测试用例思想
Logo
首先从程序规格说明书的描述中, 找出因(输入条件)和果(输出结果 或者程序状态的改变),
然后通过因果图转换为判定表,最 后为判定表中的每一列设计一个测 试用例.
因果图法的定义:
Logo
• 是一种利用图解法分析输入的各种 组合情况,从而设计测试用例的方 法,它适合于检查程序输入条件的 各种组合情况。
为0,“与”也可有任意个输入。
Logo
• 在实际问题当中输入状态相互之间还 可能存在某些依赖关系,称为“约束”
a E
b 异
a
I
b
或c
(a)
(b)
a O
b 唯一
a
a
R
M
b 要求
b 强制
(c)
(d)
(e)
Logo
–E约束(异):a和b中最多有一个可能为1, 即a和b不能同时为1;
a E
b 异
Logo
步骤:
Logo
1.分析程序的规格说明,列出原因和结果; 2.找出原因与结果之间的因果关系、原因与
原因之间的约束关系,画出因果图。 3.将因果图转换成决策表; 4.根据3中的决策表,设计测试用例的输入数
据和预期输出。
解法如下:
Logo
–(1)在明确了上述要求后,可以明确地将原 因和结果分开。
–原因:c1-第一个字符是“#” c2-第一个字符是“*” c3-第二个字符是一个数字
因果图中出现的基本符号
Logo
原因
结果
通常在因果图中用Ci表示原因,用 Ei表示结果,各结点表示状态,可 取值“0”或“1”。“0”表示某状 态不出现,“1”表示某状态出现。
主要的原因与结果之间的关系
Logo
c1
e1
c1 ~ e1
(a)恒等
(b)非
c1
V
c2
e1
c3 (c)或
V
c1 e1
c2
a1
a2
a3
不可能
√
测试用例
2
3
4
5
6
7
8
1
1
1
0
0
0
0
1
0
0
1
1
0
0
0
1
0
1
0
1
0
1
1
1
1
0
0
√
√
√
√
√
√
√
√
#3 #B *7 *M C2 CM
(4)设计测试用例
Logo
最左边两列,原因c1和c2同时为1不可能,排除掉, 根据表可设计出6个测试用例。
Test1:输入数据-#3 Test2:输入数据-#B Test3:输入数据-*7 Test4:输入数据-*M Test5:输入数据-C2 Test6:输入数据-CM
棋子; 4. 落点处有己方棋子,则不移动棋子; 5. 如果不属于1-4条, 落点处无棋子,则移动棋子; 6. 如果不属于1-4条, 落点处为对方棋子(非老将),则移动棋
子并除去对方棋子; 7. 如果不属于1-4条,且落点处为对方老将,则移动棋子,并提
示战胜对方,游戏结束。
二、 根据分析明确原因和结果