因果图
一、因果图
(1)定义:因果图提供了一个把规格转化为判定表的系统化方法,从该图中可以产生测试数据。
其 中,原因是表示输入条件,结果是对输入执 行的一系列计算后得到的输出。
(2)因果图方法最终生成的就是判定表。它适合于检查软件输入条件的各种组合情况
(3)因果图的步骤:
1.把大的系统规格划分解成可以测试的规格片段、
2.分析分解后待测的系统规格,找出哪些是原因,哪些是结果
3.画出因果图
4.把因果图转换成判定表
5.简化判定表
6.用判定表中的每一列生成测试用例
(4)认识因果图的符号
恒等: 有钱==恒等==富人
非:有钱==非==穷人
或:有钱,有车,有房 有其中一个或多个 =========富人
与:有钱,有车,有房 三个都满足 =========富人
=====================================================
案例:
一个处理单价为5角钱的饮料的自 动售货机。其规格说明如下:
若投入5角钱或1元钱的硬币,押下〖橙汁〗或〖啤酒〗的按钮,则相应的饮料就送出来。
若售货机没有零钱找,则一个显示〖零钱找完〗的红灯亮,这时在投入1元硬币并押下按钮后,饮料不送出来而且1元硬币也退出来;若有零钱找,则显示〖零钱找完〗的红灯灭,在送出饮料的同时退还5角硬币。
(4)因果图转换判定表的方法:
1. 将因果图中的所有条件(因)填入判定表 的条件桩中;
2. 将因果图中的所有动作(果)填入判定表 的动作桩中;
3. 根据因果图确定各个条件组合对应的动作, 并且确定判定表中各个规则的条件项和动 作项,在需要时优化判定表
(5)
因果图的优点/缺点
优点:
1. 等价类法尽管各个输入条件可能出错的情况都考虑 到了,但是多个输入条件组合起来出错的情况却被 忽略了
2. 因果图法能够帮助我们按照一定步骤,高效的选择 测试用例,设计多个输入条件组合用例
3. 因果图分析还能为我们指出,程序规格说明描述中 存在什么问题
缺点:
1. 输入条件与输出结果的因果关系,有时难以从软件 需求规格说明书得到
2. 即使得到了这些因果关系,也会因为因果关系复杂 导致因果图非常庞大,测试用例数目及其庞大
====================================
案例;
某软件规格说明书包含这样的要求:
某软件规格说明书包含这样的要求:
第一列字符必须是A或B,第二列字符必须是一个数字,在此情况下进行文件的修改,但如果第一列字符不正确,则给出信息L;如果第二列字符不是数字,则给出信息M。
解答:
根据题意,原因和结果如下:
原因:
1——第一列字符是A;
2——第一列字符是B;
3——第二列字符是一个数字。
结果:
21——修改文件;
22 ——给出信息L;
23——给出信息M。
其对应的因果图如下:
11为中间节点;考虑到原因1和原因2不可能同时为1,因此在因果图上施加E约束。
解答:
根据题意,原因和结果如下:
原因:
1——第一列字符是A;
2——第一列字符是B;
3——第二列字符是一个数字。
结果:
21——修改文件;
22 ——给出信息L;
23——给出信息M。
其对应的因果图如下:
11为中间节点;考虑到原因1和原因2不可能同时为1,因此在因果图上施加E约束。