软件测试-因果图与判定表

因果图简介

等价类划分法和边界值法都是着重考虑到了输入条件,但是没有考虑到输入条件的组合与输入条件的相互制约关系。这样有可能忽视了很多错误
如果测试时考虑到了各种组合,测试所有组合将是一个天文数字,因此需要考虑采用一种适用与多种条件组合相应产生多种动作的形式来进行测试用例的设计,这就需要因果图(逻辑模型)

因果图思想

一些程序的功能可以用判定表的形式来表示,根据输入条件的组合情况来规定相应的操作

因果图设计测试用例的步骤

1 根据程序规格说明书,分析因和果,画出因果图
2 将得到的因果图转换为判定表
3 为判定表的每一列表示的情况设计一个测试用例

因果图的常用符号

与计算机中的与或非相识:
在这里插入图片描述
图片来源网络!

对于输入条件的约束有以下四类:

E约束(Exclusive,异或):ab不能同时为1,可以同时为0;
I约束(Inclusive,或):abc至少一个为1,不能同时为0;
O约束(Only,唯一):ab有且只有一个为1;
R约束(Require,要求):a是1时,b必须是1;

对输出条件只有一种约束:

M约束(Mask,强制):若a是1,b必须是0;

举个栗子

以下是网上找到很常见的例子
饮料售货机:有一个处理单价为1元5角钱的盒装饮料的自动售货机软件。若投入1元5角硬币,按下“可乐”、“雪碧”、或“红茶”按钮,相应的饮料就送出来。若投入的是2元硬币,在送出饮料的同时退还5角硬币。

分析输入输出
输入:

编号输入
c1投入1.5硬币
c2投入2硬币
c3按下“可乐” 按钮
c4按下“雪碧” 按钮
c5按下“红茶” 按钮

输出:

编号输出
EF1退换0.5
EF2送出可乐
EF3送出雪碧
EF4送出红茶

分析输入之间的关系

1)C1与C2为异或关系

2)C3、C4、C5因投入硬币最多为2元 所以分析为异或关系

3)C1(C2)与C3(C4、C5)为且的关系

4)EF2、EF3、EF4为异或关系

5)EF1与EF2(3、4)没关系

分析什么原因导致结果

1)EF1:C2与C3(4、5)导致EF1

2)EF2(3、4):C1(2)与C3(4、5)导致EF2(3,4)
因果图
在这里插入图片描述
图片来自网络
写出判定表
在这里插入图片描述
图片还是来自网络

最后根据判定表设计测试用例

判定表介绍

什么叫判定表法?
就是指把所有的输入条件、所有可能采取的动作按表格列出来,每一种条件和动作的组合构成一条规则,也即一条用例。

规则
条件桩(列出所有的输入条件,顺序不重要)条件项(列出各个条件所有可能的取值)
动作桩(列出问题规定的所有可能采取的动作,顺序不重要)动作项(列出所有可能采取的动作)

这里条件桩和动作桩组成表格的行,条件项和动作项组成表格的列,这样组合成的表格即是依据判定表法得出的一张原始用例集合。

判定表编写步骤
1 确定规则的个数
2 列出所有的条件桩和动作桩
3 填入条件项
4 填入动作项,得到初始判定表
5 简化 判定表,合并相似规则 (相同动作)

下面这个栗子来源百度文库:
在这里插入图片描述
简化
在这里插入图片描述
很直观的栗子

注:因果图只是设计判定表的工具,不一定要费时间设计因果图。

  • 2
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值