Skip to content

黑盒测试方法论-因果图

黑盒测试方法论-因果图

简介

因果图法是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况

所以说因果图法比较适合输入条件比较多的情况,我们可以测试所有的输入条件的排列组合。

  • 因果图的“因”——输入条件。
  • 因果图的“果”——输出结果。

因果图法要注意考虑:

  • 所有输入/输出条件的相互制约关系以及组合关系。
  • 输出结果对输入条件的依赖关系,也就是什么样的输入组合会产生怎样的输出结果,即“因果关系”。

使用场景

如果在测试时必须考虑输入条件的各种组合,那可能的组合数目有可能是天文数字,所以必须考虑采用一种适合的方法对条件组合进行分析,简化。

因果图中的基本符号

  • 恒等:若原因出现,则结果出现;若原因不出现,则结果也不出现
  • 非:若原因出现,则结果不出现;若原因不出现,则结果出现
  • 或:有多个原因。若几个原因中有一个出现,则结果出现;若几个原因都不出现,则结果不出现
  • 与:有多个原因。若几个原因都出现,则结果才出现;若其中一个原因不出现,则结果不出现

因果图中的约束条件

  • 互斥 E:a、b、c 只能有一个成立,但是可以都不成立
  • 包含 I:a、b、c 中至少有一个成立
  • 唯一 O:a、b、c 有且仅有一个成立
  • 要求 R:如果 a 成立,则要求 b 必须也成立,其他的不约束
  • 屏蔽 M:如果 a 成立的时候,强制 b 不成立,其他的不约束

因果图法基本步骤

  • 找出所有的输入条件(因)
  • 找出所有的输出条件(果)
  • 明确所有输入条件之间的制约关系以及组合关系
  • 明确所有输出条件之间的制约关系以及组合关系
  • 找出什么样的输入条件组合会产生哪种输出结果
  • 把因果图转换成判定表
  • 为判定表中的每一列表示的情况设计测试用例

因果图法举例

交通一卡通自动充值软件系统

  1. 需求解释

    • 系统只接收 50 或 100 元纸币,一次只能使用一张纸币,一次充值金额只能为 50 元或 100 元
    • 在请投币的后面按 50 元按钮,代表投入 50 元纸币;按 100 元按钮,代表投入 100 元纸币
    • 若按 50 元按钮,并选择充值 50 元,完成充值,提示充值成功
    • 若按 50 元按钮,并选择充值 100 元,提示输入金额不足,退回 50 元
    • 若按 100 元按钮,并选择充值 50 元,完成充值,提示充值成功,退回 50 元
    • 若按 100 元按钮,并选择充值 100 元,完成充值,提示充值成功
    • 若按投币按钮后在规定时间内不选择充值按钮,提示错误,退回投入纸币
    • 若选择充值按钮后不按投币按钮,提示错误
  2. 找到所有输入条件编号

    1. 选择投币 50 元
    2. 选择投币 100 元
    3. 选择充值 50 元
    4. 选择充值 100 元

  3. 找到所有输出条件编号

    • a. 完成充值
    • b. 提示充值成功
    • c. 退回纸币
    • d. 提示错误

  4. 画图分析输入和输出的关系

    • 条件 1、3 组合 -- 输出 a、b

  5. 图转化为表格

  1. 分析输入和输出的关系

    • 条件 1、4 组合 -- c、d
    • 条件 2、3 组合 -- a、b、c
    • 条件 2、4 组合 -- a、b
    • 条件 1 单独出现 -- c、d
    • 条件 2 单独出现 -- c、d
    • 条件 3 单独出现 -- d
    • 条件 4 单独出现 -- d
  2. 转化为表格

  1. 转化为测试用例

总结

  • 因果图概念
  • 因果图设计测试用例