1 引言

上篇讲了等价类划分和边界值分析法,而这两种方法只考虑了单个的输入条件,并未考虑输入条件的各种组合、输入条件之间的相互制约关系的场景。基于此短板,因果图法和判定表法应运而生。

2 因果图法

2.1 概念及原理

2.1.1 定义

一种描述输入条件的组合以及每种组合对应的输出的图形化工具,它适合于检查程序输入条件的各种组合情况。

2.1.2 方法的原则

画因果图时,原因在左,结果在右,由上而下排列,并根据功能说明书中规定的原因和结果之间的关系,用下述基本符号连接起来,在因果图中还可以引入一些中间节点。

1.因果图的基本图形符

2.因果图中的约束条件

从原因方面考虑主要有 4 种约束条件:

从结果方面考虑主要有 1 种约束条件:

2.2 方法步骤

  1. 找出所有的原因,原因即输入条件或输入条件的等价类;
  2. 找出所有的结果,结果即输出条件;
  3. 明确所有输入条件之间的制约关系以及组合关系;哪些条件不能组合到一起,哪些条件可以组合到一起
  4. 明确所有输出条件之间的制约关系以及组合关系;哪些输出结果不能同时输出,哪些输出结果可以同时输出
  5. 找出什么样的输入条件组合会产生哪种输出结果;
  6. 画出因果图;
  7. 把因果图转换成判定表/决策表;
  8. 为判定表中的每一列表示的情况设计测试用例 (每一列都是一条测试用例)。

2.3 举个栗子

场景:基础坐席认责 or 申诉

1.先列出输入条件和输出条件

输入条件:

输出条件:

2.画出因果图

3.将因果图转换为判定表,并将判定表的每一列拿出来就可作为一个测试用例

3 判定表法

3.1 概念及原理

3.1.1 定义

判定表是分析和表达多逻辑条件下执行不同操作的情况的工具,是指一个表格,用于显示条件和条件导致动作的集合。

3.1.2 方法的原则

主要包含五部分:

3.2 方法步骤

  1. 列出所有的条件桩和动作桩 (输入和输出);
  2. 填入条件项 (输入项);
  3. 填入动作项,得到初始判定表;
  4. 简化判定表(合并相似规则(相同动作))。

3.3 举个栗子

场景:基础坐席认责 or 申诉

1.列判定表

2.对判定表进行简化

4 总结

但因果图和判定表法在变量值很多、排列组合数量极大的场景下,会生成非常庞大且冗余的测试用例,此时我们很难对所有组合场景进行全量测试用例覆盖,这个时候就是正交试验法大展神威的时候了,让我们一起来学习吧~

作者:京东物流 王鹏

来源:京东云开发者社区 自猿其说 Tech 转载请注明来源


↙↙↙阅读原文可查看相关链接,并与作者交流