文章目录
1、引言
因果图,作为一种黑盒测试方法,经常用来作为复杂场景的案例设计工具,尤其是针对逻辑关系、依赖关系强的场景,而正因为这一点,很好的弥补了我前面讨论的正交试验的不足之处。因果图能够用来研究条件与结果之间的逻辑关系的变化,很好的发现和探索其中的因果之变,下面来探究如何来这一种方法的原理,以及如何使用因果图来设计测试案例。
2、因果图基本原理及定义
因果图是一种针对输入条件的组合进行分析的一种设计方法,基于图的原理,将输入内容和输出结果进行组合和联系。与正交实验不同,因果图不要求输入条件为独立特性,允许条件之间存在相互依赖或相互约束的关系,重点探究的是从输入到输出之间的因果逻辑。
3、因果图设计步骤
从需求分析到用因果图生成用例,大致步骤如下:
1)拆解需求:
- 从最初的需求中,将其拆解为小段的逻辑片段,通过分析逻辑片段来进行因果图分析。
2)确定“因”和“果”:
- 从需求片段中提取到的所有可能的输入条件和输出结果,这些即为因果图中的原因和结果。例如,在自动饮用水售货机中,投入1元硬币购买,当定价1元时,得到的结果是“购买成功”,投币1元是“因”,“购买成功”是“果”。
3)明确因果关系及约束关系:
- 因果关系即为“原因”通过什么样的方式得到什么样的“结果”,原因和结果之间的对应关系即为因果关系。
- 约束关系为条件之间的各种限制,如条件A和条件B同时满足才能得到结果A。实际的例子如自动饮用水售货机,投币1元和商品定价1元,当两个条件同时满足时,才能购买成功,当定价2元时,会是“购买失败,请充值”的结果,这个例子里面“投币1元”和“定价1元”两个条件之间便是互斥关系。
4)绘制因果图:
-
对步骤2分析得到的和输出结果制定编号,每个编号代表1个节点,将输入条件置为左列,输出结果置为右列。利用因果图的基本符号,将输入和输出之间连接,便得到初始因果图。
**Tips:**当输入内容较为复杂时,考虑增加中间节点,中间节点仅为输入条件特定情况下的某种状态,用于方便绘制输入和输出之间的联系,仅用于桥梁的作用。
5)补充因果约束条件:
- 根据步骤3得到的因果和约束关系,结合约束符号,在初始因果图上补充注明输入条件之间的约束关系,添加约束之后即可得到完整的因果图。
6)将因果图转为判定表:
- 对每个原因和结果取真和假两种状态,用 0 和 1 表示,根据完整的因果图生成有限项判定表,将所有的状态组合列出,再根据因果图中的约束条件,去掉不可能出现的组合。
7)根据判定表转换为测试用例:
- 根据判定表中每一列的值作为依据,设计测试用例,每个有效的列都是一个测试用例。
4、基本符号与约束关系
4.1 基本因果图符号
| 逻辑关系 | 说明 | 图示 |
|---|---|---|
| 恒等 (Identity) | 如果原因a为真,则结果b为真,中间直线相连接 | ![]() |
| 非 (NOT) | 如果原因a为真,则结果b为假;反之,如果a为假,则b为真 | ![]() |
| 或 (OR) | 如果多个原因 a 1 a_1 a1, a 2 a_2 a2, …, a n a_n an中至少有一个为真,条件数目任意,则结果d为真。图形上使用一个“∨”或“OR”标记 | ![]() |
| 与 (AND) | 只有当所有原因 a 1 a_1 a |




最低0.47元/天 解锁文章
2494

被折叠的 条评论
为什么被折叠?



