软件测试-因果图

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

因果图法
实际问题中,输入状态之间可能 存在某些依赖关系,这种依赖关 系被称为”约束”. 在因果图中使用特定的符号来表 示这些约束关系:


约束关系说明:

E约束(异): a,b最多有一个可能为1, 不能同时为1.

I约束(或): a,b,c中至少有一个必须 为1,不能同时为0.

O约束(惟一): a和b必须有一个且仅 有一个为1
7 0 0 1 0
8 0 0 0 0

√ √ √ A3 A5 AM A& B3 B5 BM B* C2 X6 √
√ √
C M D*
测试 用例
设计测试用例



测试用例1: 测试用例2: 测试用例3: 测试用例4: 测试用例5: 测试用例6: LM
输入数据:A3 输入数据:AM 输入数据:B3 输入数据:B* 输入数据:C2 输入数据:CM
黑盒测试—因果图方法10
内容提纲

复习 因果图法的思想 因果图法的步骤 举例 练习
复习

等价类划分法的思想 边界值分析法的思想
1、因果图法概述

等价类划分方法和边界值分析方 法着重考虑输入条件,而不考虑 输入条件的各种组合,也不考虑 输入条件之间的相互制约的关系, 但有时一些具体问题中的输入之 间存在着相互依赖的关系,
练习2


例如,有一个处理单价为5角钱的饮 料的自动售货机软件测试用例的设 计。其规格说明如下: 若投入5角钱或1元钱的硬币,按下 〖橙汁〗或〖啤酒〗的按钮,则相 应的饮料就送出来。若售货机没有 零钱找,则一个显示〖零钱找完〗 的红灯亮,这时在投入1元硬币并按 下按钮后,饮料不送出来而且1元硬 币也退出来;若有零钱找,则显示 〖零钱找完〗的红灯灭,在送出饮 料的同时退还5角硬币。”
预期输出:修改文件 预期输出:给出信息M 预期输出:修改文件 预期输出:给出信息M 预期输出:给出信息L 预期输出:给出信息
练习


程序的规格说明要求:输入的第一个字 符必须是#或*,第二个字符必须是一个 数字,在此情况下进行文件的修改;如 果第一个字符不是#或*,则给出信息N, 如果第二个字符不是数字,则给出信息M。 用因果图法设计测试用例
(3) 由于语法或环境限制,有些原因 与原因之间,原因与结果之间的组 合情况不可能出现。为表明这些特 殊情况,在因果图上用一些记号标 明约束或限制条件。 (4) 把因果图转换成判定表。 (5) 把判定表的每一列拿出来作为依 据,设计测试用例。
4 应用举例

某个软件的规格说明书中规定: 第一个字符必须是A或B,第二个 字符必须是一个数字字符,在此 情况下进行文件的修改,但如果 第一个字符不正确,则给出信息L; 如果第二个字符不正确,则给出 信息M.
1、因果图法概述

如果输入之间有关系,我们在测试时必 须考虑输入条件的各种组合,那么可以 考虑使用一种适合于描述对于多种条件 的组合,相应产生多个动作的形式来设 计测试用例,这就需要利用因果图。

因果图方法最终生成的就是判定表。 它适合于检查程序输入条件的各种 组合情况。
因果图法的基本思想

使用因果图法设计测试用例时, 首先从程序规格说明书的描述中, 找出因(输入条件)和果(输出结果 或者程序状态的改变),然后通过因 果图转换为判定表,最后为判定表 中的每一列设计一个测试用例.

R约束(要求):a是1时,b必须是1,即a 为1时,b不能为0

M约束:对输出条件的约束,若结果a 为1,则结果b必须为0.

3用因果图生成测试用例的基本步骤 (1) 分析软件规格说明描述中,哪些 是原因 (即输入条件或输入条件的等 价类),哪些是结果 (即输出条件), 并给每个原因和结果赋予一个标识 符。 (2) 分析软件规格说明描述中的语义, 找出原因与结果之间,原因与原因 之间对应的是什么关系? 根据这些 关系,画出因果图。
因果图
C1 ∨ C2 10
中间结果
~ ∧
E1
E2
C3 ~
E3
带有E约束的因果图
C1 E1
~ ∨ 10 ∧
E
C2
E2
C3 ~
E3
将因果图转化为判定表
C1 C2 C3 10 E1 E2 E3
不可 能
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
2 因果图中出现的基本符号
原因
结果
通常在因果图中用Ci表示原因,用Ei 表示结果,各结点表示状态,可取值 “0”或“1”。“0”表示某状态不出 现,“1”表示某状态出现。


主要的原因和结果之间的关系有:
C1
Biblioteka Baidu
C1
C2
因果图法
恒等: 若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.
编号
Test1 Test2 Test3 Test4 Test5 Test6 Test7 Test8 Test9 Test10 Test11 Test12 Test13 Test14 Test15 Test16
输入条件 12345 组合
11010 11001 11000 10110 10101 10100 10010 10001 01010 01001 01000 00110 00101 00100 00010 00001
应用举例

分析问题,按照如下步骤进行: (1)根据软件规格说明书,列出原因和 结果. (2)找出原因和结果之间的关系,原因 和原因之间的约束关系,画出因果图. (3)将因果图转化为判定表 (4)根据判定表设计测试用例.
应用举例


原因: C1:第一个字符是A; C2:第一个字符是B; C3:第二个字符是一个数字字符. 结果: E1:给出信息L; E2:修改文件; E3:给出信息M;
因果图方法设计测试用例

因果图法的优点
考虑了多个输入之间的相互组合、相 互制约关系; 能够帮助我们按一定步骤,高效率地 选择测试用例,同时还能为我们指出, 程序规格说明描述中存在着什么问题
小结
因果图方法的适用范围 因果图方法设计测试用例的步骤 因果图方法优点

期望输出
23,24 23,25 .. 24 25 .. .. .. 21,22 21,22 21 21,24 21,25 21 21 21
练习

有一个处理单价为1元5角的盒装饮料的 自动售货机软件。若投入1元5角硬币, 按下“可乐”、“雪碧”或“红茶”按 钮,相应的饮料就送出来。若投入的是2 元硬币,在送出饮料的同时退还5角硬币。
4.因果图法
(1) 分析这一段说明,列出原因和结果 原因: 1. 售货机有零钱找 2. 投入1元硬币 3. 投入5角硬币 4. 按下橙汁按钮 5. 按下啤酒按钮 建立中间结点,表示处理中间状态 11. 投入1元硬币且按下饮料按钮 12. 按下〖橙汁〗或〖啤酒〗的按钮 13. 应当找5角零钱并且售货机有零钱找 14. 钱已付清
4.因果图法
结果:
21. 售货机〖零钱找完〗灯亮 22. 退还1元硬币 23. 退还5角硬币 24. 送出橙汁饮料 25. 送出啤酒饮料
(2) 画出因果图。所有原因结点列在左边, 所有结果结点列在右边。
(3) 由于 2 与 3 ,4 与 5 不能同时发生, 分别加上约束条件E。 (4) 因果图转换成判定表 (5) 设计测试用例
相关文档
最新文档