一、因果图法介绍
从用自然语言书写的程序规格说明的描述中找出因(输入条件)和果(输出或程序状态的改变),可以通过因果图转换为判定表。(百度百科)
个人认为,因果图是通过分析因(输入)与果(输出),从而找出输入与输入、输入与输出、输出与输出之间的关系,画出便于观察的图示,来设计测试用例的方法。
二。基本的因果图符号
二、约束符号
1.E(Exclusive or)约束(异)。
2.I(In)约束(或):表示约束I为真时,a,b,c至少有一个应为1
3.O(Only)约束(唯一):表示a,b中仅有一个必须为1
4.R(Request)约束(要求):表示如果a为1,b也必须为1
5.M 屏蔽,表示如果a为0,则b强制为0
三、方法步骤(自己总结)
1. 将规格书分解为可执行的片段
2.分析输入输出,并进行分类,找出输入输出分别有几种。
3.分析输入之间的关系。
4.分析怎样的输入会导致各种结果。
5.根据分析结果画出因果图
6.根据因果图画出判定表、人为删去判定表中不可能发生的情况。。
7.找出测试用例
四、实例分析
此处使用老师上课讲的例题
产品说明书:有一个处理单价为1元5角钱的盒装饮料的自动售货机软件。若投入1元5角硬币,按下“可乐”、“雪碧”、或“红茶”按钮,相应的饮料就送出来。若投入的是2元硬币,在送出饮料的同时退还5角硬币。
1.分析输入输出
输入:C1投入1.5元硬币
C2投入2元硬币
C3按下“可乐” 按钮
C4按下“雪碧” 按钮
C5按下“红茶” 按钮
输出:EF1退还0.5元硬币
EF2送出“可乐”
EF3送出“雪碧”
EF4送出“红茶”
2.分析输入之间的关系
1)C1与C2为异或关系
2)C3、C4、C5因投入硬币最多为2元 所以分析为异或关系
3)C1(C2)与C3(C4、C5)为且的关系
4)EF2、EF3、EF4为异或关系
5)EF1与EF2(3、4)没关系
3.分析什么原因导致结果
1)EF1:C2与C3(4、5)导致EF1
2)EF2(3、4):C1(2)与C3(4、5)导致
4.画出因果图
5.根据因果图画出判定表、人为删去判定表中不可能发生的情况。
6.设计用例 就行了