一、基本概念:
因果图是从用自然语言书写的程序规格说明的描述中找到因(输入条件)和果(输出或程序状态的改变),通过因果图转化为决策表。
等价类划分法和边界值分析方法都是着重考虑输入条件,但没有考虑输入条件的各种组合、输入条件之间的相互制约关系。这样虽然各种输入条件可能出错的情况已经测试到了,但多个输入条件组合起来可能出错的情况却被忽视了。
如果在测试时必须考虑输入条件的各种组合,则可能的组合数目将是天文数字,因此必须考虑采用一种适合于描述多种条件的组合、相应产生多个动作的形式来进行测试用例的设计,这就需要利用因果图(逻辑模型)。
二、因果图的基本逻辑符号:
三、因果图的约束符号:
E互斥:a和b 不能同时出现;00,10,01
I包含:a和b至少一个出现。10,01,11
O唯一: 必须切只有一个出现。10,01
R要求:a出现,b必须出现。11,00,01
M屏蔽:a出现,b必须不出现。10,00,01
四、因果图产生测试用例的步骤:
- 把程序的规格划分解成可以工作的片断;
- 确定规格中的原因和结果;
- l分析规格以确定原因和结果之间的逻辑关系,并且使用因果图表示出来;
- 确定句法或环境的约束,这些约束使得某些组合不能产生;
- l把因果图转化成有限入口决策表;
- l从决策表的每一列选取一个测试用例。
五、举例。
1.第一列字符必须A或B,第二列字符必须是数字,在此情况下文件被更新。但如果第一个字符不正确,那么信息X12被产生;如果第二个字符不是数字,则信息X13产生。
决策表
2.
有一个处理单价为1元5角钱的盒装饮料的自动售货机软件。若投入1元5角硬币,按下“可乐”、“雪碧”和 “红茶”按钮,相应的饮料就
送出来。若投入的是两元硬币,在送出饮料的同时退还5角硬币。