因果图法
基本概念
因果图是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况。
设计测试用例的步骤
- 分析软件规格说明描述中, 哪些是原因(即输入条件或输入条件的等价类),哪些是结果(即输出条件), 并给每个原因和结果赋予一个标识符。
- 分析软件规格说明描述中的语义,找出原因与结果之间, 原因与原因之间对应的关系,根据这些关系,画出因果图。
- 由于语法或环境限制, 有些原因与原因之间,原因与结果之间的组合情况不可能出现,为表明这些特殊情况, 在因果图上用一些记号表明约束或限制条件。
- 把因果图转换为判定表。
- 把判定表的每一列拿出来作为依据,设计测试用例。
需要掌握的知识
原因和结果之间的关系
(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
小结
- 步骤
- 分析输入输出条件(确定因果关系)
- 画因果图
- 出判定表(分析、简化)
- 得出测试用例
- 核心要点
- 条件和规则
- 适用范围
- 适用于多种条件的组合
- 局限性
- 软件规模
- 条件的顺序问题
今天太阳也东升,而后西沉,早晨盛开的花儿也将凋谢;今天的太阳也西沉,而后东升,阳光照射之处遍地花开,但却已非昨日之花。