软件测试第四章--因果图

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

因果图法的简介(续)
使用因果图法的优点:
(1)考虑到了输入情况的各种组合以及各个输入情况之间的 相互制约关系。 (2)能够帮助测试人员按照一定的步骤,高效率的开发测试 用例。 (3)因果图法是将自然语言规格说明转化成形式语言规格说 明的一种严格的方法,可以指出规格说明存在的不完整性 和二义性。
因果图法的简介(续)
因果图法是基于这样的一种思想:一些程序的功能可以用判 定表(或称决策表)的形式来表示,并根据输入条件的组合 情况规定相应的操作。 因果图法的定义:是一种利用图解法分析输入的各种组合情 况,从而设计测试用例的方法,它适合于检查程序输入条件 的各种组合情况。 采用因果图法设计测试用例的步骤: (1)根据程序规格说明书描述,分析并确定因(输入条件) 和果(输出结果或程序状态的改变),画出因果图。 (2)将得到的因果图转换为判定表。 (3)为判定表中每一列所表示的情况设计一个测试用例。
规则
1
选项
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
11 5 6 7
E2 E3 E4
1 1 1 1
1 1 1 0
1 1 0 1
1 1 0 0
1 0 0
1 0 1 1
1 0 1 0
0 1 0
1 0 0 1
0 0 1
1 0 0 0
0 1 1 1
0 1 1 0
0 1 0 1
0 1 0 0
0 0 ห้องสมุดไป่ตู้ 1
24
练习
某软件的一个模块的需求规格说明书中描述:
(1)年薪制员工:严重过失,扣年终风险金的4%; 过失,扣年终风险金的2%。 (2)非年薪制员工:严重过失,扣当月薪资的8%; 过失,扣当月薪资的4%。 请绘制出因果图和判定表,并给出相应的测试用例

原因: C1. 年薪制员工 C2. 严重过失 中间状态: 11. 非年薪制员工 12. 过失 结果: E1. 扣年终风险金的4% E2. 扣年终风险金的2% E3. 扣当月薪资的8% E4. 扣当月薪资的4%
4 0 0 0 0 1
5 1 1 0 0 0 1 0 0 0
6 1 0 1 0 0 0 1 0 0
7 1 0 0 1 0 0 0 1 0
8 1 0 0 0 1 0 0 0 1
11 4 5 6 7 E1 E2 E3 E4
0 1 0 0 0
4.5 其他黑盒测试方法
故障猜测法——错误推测法 人们靠经验和直觉猜测程序中可能存 在的各种软件故障,从而有针对性地编 写检查这些故障的测试用例
因果图
C1
E1
11 E2
12
E3
C2 E4
将因果图转化为判定表:
测试用例
测试用例1: 输入数据: 年薪制员工,严重过失 预期输出: 扣年终风险金的4% 测试用例2: 输入数据: 年薪制员工,过失 预期输出: 扣年终风险金的2% 测试用例3: 输入数据: 非年薪制员工,严重过失 预期输出: 扣当月薪资的8% 测试用例4: 输入数据: 非年薪制员工,过失 预期输出: 扣当月薪资的4%
因果图(续)
因果图法最终生成的是决策表。利用因果图生成测试用例的 基本步骤如下: (1)分析软件规格说明中哪些是原因(即输入条件或输入条 件的等价类),哪些是结果(即输出条件),并给每个原因 和结果赋予一个标识符。 (2)分析软件规格说明中的语义,找出原因与结果之间、原 因与原因之间对应的关系, 根据这些关系画出因果图。 (3)由于语法或环境的限制,有些原因与原因之间、原因与 结果之间的组合情况不可能出现。为表明这些特殊情况,在 因果图上用一些记号表明约束或限制条件。 (4)把因果图转换为决策表。 (5)根据决策表中的每一列设计测试用例。
想一想,直接用决策表,如何做?
1
是否年薪制员工? 条件桩 是否严重过失? 扣年终风险金的4% 动作桩
2
3
4
扣年终风险金的2%
扣当月薪资的8% 扣当月薪资的4%
习题2
中国象棋中走马的测试用例(下面未注明的均 指的是对马的说明)
一、 分析中国象棋中走马的实际情况
1. 如果落点在棋盘外,则不移动棋子; 2. 如果落点与起点不构成日字型,则不移动棋子; 3. 如果在落点方向的邻近交叉点有棋子(绊马腿),则 不移动棋子; 4. 落点处有己方棋子,则不移动棋子; 5. 如果不属于1-4条, 落点处无棋子,则移动棋子; 6. 如果不属于1-4条, 落点处为对方棋子(非老将),则 移动棋子并除去对方棋子; 7. 如果不属于1-4条,且落点处为对方老将,则移动棋 子,并提示战胜对方,游戏结束。
因果图(续)——因果图中的约束
在实际问题中输入状态相互之间、输出状态相互之 间可能存在某些依赖关系,称为“约束”。 对于输入条件的约束有E、I、O、R四种约束,对于 输出条件的约束只有M约束。
因果图(续)
因果图中用来表示约束关系的约束符号:
a
E 异
b
E约束(异):a和b中最多有一个可能为1,即a和b不能同时 为1。
错误推测法
人们也可以靠经验和直觉推测程序中可能存在 的各种错误,从而有针对性地编写检查这些错 误的例子。这就是错误推测法。
错误推测法的基本想法是:列举出程序中所有 可能有的错误和容易发生错误的特殊情况,根 据它们选择测试用例。
错误推测法
案例: 电话簿复制过程中来电,是否会破坏数据库的完整性 ? 如果两位学生的名字相同,电话簿能否正确查询。 忽然断电了,输入了一半的数据是否能找回? 正常的压缩文件手动破坏后是否能修复? 配置文件手动修改一下是否能被软件正确解析? 如果我离开计算机忘了锁定当前软件,别人是否也能 用?
3.6.3 因果图法测试举例
实例 用因果图法测试以下程序。 程序的规格说明要求:输入的第一个字符必须是#或*, 第二个字符必须是一个数字,此情况下进行文件的修改;如 果第一个字符不是#或*,则给出信息N,如果第二个字符不 是数字,则给出信息M。 解题步骤: (1)分析程序的规格说明,列出原因和结果。 (2)找出原因与结果之间的因果关系、原因与原因之间的约 束关系,画出因果图。 (3)将因果图转换成决策表。 (4)根据(3)中的决策表,设计测试用例的输入数据和预期 输出。
7. 落点处为对方老将。
添加中间节点11,目的是作为导出结果的进一步原因,简化因果 图导出的判定表
1 ~ 2 ~ ~ V V E1
3 4
5 E 6 7 V ~ V V 11
E2
E3
E4
决策表分解
规则 选项 1 2 3 4 11 E1 1 1 1 1 0 1 1 1 1 0 1 0 1 1 0 1 0 1 1 1 0 0 0 1 1 0 1 1 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 0 0 0 1 0 1 1 1 0 1 0 1 1 0 0 1 0 1 0 1 0 1 0 1 0 0 0 1 0 0 1 1 0 1 0 0 1 0 0 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 5 0 0 0 1 0 1 1 6 0 0 0 0 0 1
0 0 1 0
0 0 0 1
0 0 0 0
决策表分解
规则 选项
1
2
3
4
5
6
7
8
1 2 3 11 E1
1 1 1 1 0
1 1 0 0 1
1 0 1 0 1
1 0 0 0 1
0 1 1 0 1
0 1 0 0 1
0 0 1 0 1
0 0 0 0 1
规则
1
选项
2 0 0 1 0 0
3 0 0 0 1 0
因果图(续)
因果图中用来表示约束关系的约束符号:
a
I
b

c
I 约束(或):a、b、c中至少有一个必须为1,即 a、b、c不能同时为0。
因果图(续)
因果图中用来表示约束关系的约束符号:
a
O
b
唯一
O约束(唯一):a和b必须有一个且仅有一个为1。
因果图(续)
因果图中用来表示约束关系的约束符号:
若售货机没有零钱找,则一个显示〖零钱找完〗的红灯亮 ,这时在投入1元硬币并押下按钮后,饮料不送出来而且1 元硬币也退出来;
若有零钱找,则显示〖零钱找完〗的红灯灭,在送出饮料 的同时退还5角硬币。”
(1)分析这一段说明,列出原因和结果: 1. 售货机有零钱找 2. 投入1元硬币 3. 投入5角硬币 4. 押下橙汁按钮 5. 押下啤酒按钮 (2)建立中间结点,表示处理中间状态 11. 投入1元硬币且押下饮料按钮 12. 押下〖橙汁〗或〖啤酒〗的按钮 13. 应当找5角零钱并且售货机有零钱找 14. 钱已付清
因果图法
因果图法简介 因果图 因果图法测试举例
因果图法的简介
因果图法产生的背景: 等价类划分法和边界值分析方法都是着重考虑输入条件, 但没有考虑输入条件的各种组合、输入条件之间的相互制约 关系。这样虽然各种输入条件可能出错的情况已经测试到了, 但多个输入条件组合起来可能出错的情况却被忽视了。 如果在测试时必须考虑输入条件的各种组合,则可能的 组合数目将是天文数字,因此必须考虑采用一种适合于描述 多种条件的组合、相应产生多个动作的形式来进行测试用例 的设计,这就需要利用因果图(逻辑模型)。
a
R
b
要求
R约束(要求):a是1时,b必须是1,即a为1时,b不能为0。
因果图(续)
因果图中用来表示约束关系的约束符号:
a
M
b
强制
M约束(强制):若结果a为1,则结果b强制为0。
因果图(续)
因果图中用来表示约束关系的约束符号:
a
E 异 I
a b
或 O
a b
唯一
b a
R
c a
M
要求
b
强制
b

√ √ √ √ #3 #A *6 *B A1 √ √

√ GT
因果图法测试举例(续)
(4)根据决策表中的每一列设计测试用例:
测试用例编号 1 输入数据 #3 预期输出 修改文件
2 3
4 5 6
#A *6
*B A1 GT
给出信息M 修改文件
给出信息M 给出信息N 给出信息N和信息M
练习
例如,有一个处理单价为5角钱的饮料的自动售货机软件测试 用例的设计。其规格说明如下: 若投入5角钱或1元钱的硬币,押下〖橙汁〗或〖啤酒〗的 按钮,则相应的饮料就送出来。
二、 根据分析明确原因和结果
原因: 结果: 1. 落点在棋盘上; E1、不移动棋子; 2. 落点与起点构成日字; E2、移动棋子; 3. 落点方向的邻近交叉点无 E3、移动棋子,并除去 棋子; 对方棋子; 4. 落点处为自己方棋子; E4、移动棋子,并提示 5. 落点处无棋子; 战胜对方,结束游 戏。 6. 落点处为对方棋子(非老 将);
(3)结果: 21. 售货机〖零钱找完〗灯亮 22. 退还1元硬币 23. 退还5角硬币 24. 送出橙汁饮料 25. 送出啤酒饮料 (4) 画出因果图。所有原因结点列在左边,所有结果结点列在 右边。 (5) 由于 2 与 3 ,4 与 5 不能同时发生,分别加上约束条件E。 (6)转换成因果图判定表。
~ 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 不可能 测试用例
因果图
因果图中用来表示4种因果关系的基本符号:
c1
恒等
e1
c1


e1
c1 c2 c3

c1

e1

e1
c2

因果图(续)
因果图中的4种基本关系 在因果图的基本符号中,图中的左结点ci表示输入状态 (或称原因),右结点ei表示输出状态(或称结果)。ci 与 ei 取值0或1,0表示某状态不出现,1则表示某状态出现。 恒等:若 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。

因果图法测试举例(续)
(1)分析程序规格说明中的原因和结果:
原因 c1:第一个字符是# c2:第一个字符是* 结果 e1:给出信息N e2:修改文件
c3:第二个字符是一个数字
e3:给出信息M
(2)画出因果图(编号为10的中间结点是导出结果的进一步 原因): e1 c1 ~ ∨ 10 E c2 ∧ e2 c3
相关文档
最新文档