因果图法

基本概念

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

设计测试用例的步骤

  1. 分析软件规格说明描述中, 哪些是原因(即输入条件或输入条件的等价类),哪些是结果(即输出条件), 并给每个原因和结果赋予一个标识符。
  2. 分析软件规格说明描述中的语义,找出原因与结果之间, 原因与原因之间对应的关系,根据这些关系,画出因果图。
  3. 由于语法或环境限制, 有些原因与原因之间,原因与结果之间的组合情况不可能出现,为表明这些特殊情况, 在因果图上用一些记号表明约束或限制条件。
  4. 把因果图转换为判定表。
  5. 把判定表的每一列拿出来作为依据,设计测试用例。

需要掌握的知识

原因和结果之间的关系
(NOT、AND、OR、 NAND、NOR、恒等)
恒等:如果原因为真,那么结果必定为真。
例如:动物园运来大熊猫,动物 园一定有大熊猫

与:只有2个原因都为真,那么结果为真
例如:北京姑娘,必须有车且有房

或:2个原因中有一个为真时, 结果就为真。
例如:长沙姑娘,你有车或者有房

非:只有原因为假,结果才为真。
例如:你不好好学习,找到好工作

原因和原因的关系
各个原因之间不能同时为真,但可以同时为假
(例如:小明不是11班学生,也不 是12班学生)

实例1

有一个处理单价为1元5角钱的盒装饮料的自动售货机软件。若投入1元5角硬币,按下“可乐”、“雪碧”、“红茶”按钮,相应的饮料就送出来。若投入的是两元硬币,在送出饮料的同时退还5角硬币。
原因:① 投入1元5角硬币; ② 投入2元硬币;③ 按“可乐”按钮; ④ 按“雪碧”按钮; ⑤ 按“红茶”按钮。
中间状态:① 已投币; ② 已按钮。
结果:① 退还5角硬币; ② 送出“可乐”饮料③ 送出“雪碧”饮料; ④ 送出“红茶”饮料。

实例2

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

分析:
条件的组合,适用因果图

  • 条件桩
  • 投入5角 c1
  • 投入1元 c2
  • 按下橙汁c3
  • 按下啤酒c4
  • 有零钱找c5
  • 无零钱找c6
  • 动作桩
  • [零钱找完]的红灯灭,退还5角钱,送出橙汁 e1
  • [零钱找完]的红灯灭,退还5角钱,送出啤酒 e2
  • [零钱找完]的红灯灭,送出橙汁 e3
  • [零钱找完]的红灯灭,送出啤酒 e4
  • [零钱找完]的红灯亮,退出1元钱,饮料不送出来 e5

小结

  • 步骤
    1. 分析输入输出条件(确定因果关系)
    2. 画因果图
    3. 出判定表(分析、简化)
    4. 得出测试用例
  • 核心要点
    • 条件和规则
  • 适用范围
    • 适用于多种条件的组合
  • 局限性
    • 软件规模
    • 条件的顺序问题
posted @ 2020-01-01 05:00  心脏鼓点  阅读(830)  评论(0编辑  收藏  举报