软件测试 - 因果图
开发的软件要经过各种测试阶段,以验证其是否满足所有要求和条件。在黑盒方法中,验证输入数据集生成的输出。因果图是黑盒测试中的一种技术。这种方法使用图表来描述多种输入组合的状态。
什么是因果图?
因果图是一种有助于生成高收益测试用例组的方法。这种方法的出现是为了消除等价分割和边界值分析的漏洞,因为在这些漏洞中无法测试所有输入条件的组合。
因此,每当我们需要验证由输入标准组合组成的一些关键场景时,就会使用因果图。所获得的图表被转换成决策表,进而可用于设计测试用例。因果图方法的主要优点是它有助于检测是否存在不完整或不清楚的需求。
根据因果图创建测试用例
根据因果图创建测试用例的步骤如下 −
步骤 1 − 从需求中检测原因和结果,然后为它们分配不同的编号。原因是系统发生某种变化的唯一输入条件。结果是由输入条件引起的系统输出条件或变化状态。
步骤 2 − 创建一个连接所有原因和结果的布尔图。这被称为因果图,它描述了所有原因产生了不同的结果。
步骤 3 −指出因果图上的约束,描述所有实际上不可能的原因和/或结果的组合。所有可能的约束都列在下面 −
排他性约束
这些约束存在于两个原因 C1 和 C2 之间,因此 C1 或 C2 的值都可以为 1,但不能同时为 1。

包容性约束
这些约束存在于原因 C1、C2 和 C3 之间,因此其中至少一个始终等于 1,因此所有原因不能同时为 1。

唯一一个约束
这些约束位于原因 C1 和 C2 之间,因此 C1 和 C2 中只有一个应该是 1。

需要约束
这些约束位于原因 C1 和 C2 之间,因此如果 C1 等于 1,则 C2 也应该为 1。C1 的值为 1 而 C2 的值为 0 是不可能的。

掩码约束
这些约束位于结果 E1 和 E2 之间,这样,如果 E1 等于 1,那么 E2 应该为 0。

通过链接因果图中的状态条件,将因果图转换为有限条目决策表。在决策表中,每列都转换为一个测试用例。
因果图中使用的符号
因果图中使用的符号如下所列 −
识别函数
它表示如果条件 C1 和事件 E1 通过识别函数相互关联,则意味着如果 C1 为真或等于 1,则 E1 也等于 1,否则 E1 等于 0。

非函数
它表示如果条件 C1 和事件 E1 通过非函数相互关联,则意味着如果 C1 为真或等于 1,则 E1 等于 0,否则 E1 等于 1。

或函数
它用符号 V 表示。它可用于将'n'个条件与单个效果联系起来。它表示如果条件 C1、C2 或 C3 成立或等于 1,则事件 E1 等于 1,否则 E1 等于 0。

AND 函数
它用符号 /\ 表示。它可用于将'n'个条件与单个效果联系起来。它表示如果条件 C1 和 C2 都为真或等于 1,则事件 E1 等于 1,否则 E1 等于 0。

示例
让我们举一个问题陈述的例子,该陈述表示第一列应具有值 X 或 Y。第二列应仅包含数字。如果这两个条件都满足,则应修改文件。如果第一列不包含值 X 或 Y,则生成消息 M1。如果第二列没有数字,则生成消息 M2。
要使用控制流图解决这个问题,我们首先要总结不同的条件和事件。
- 条件 1 表示为 C1,表示列 1 包含值 X。
- 条件 2 表示为 C2,表示列 1 包含值 Y。
- 条件 3 表示为 C3,表示列 2 包含数字。
- 效果 1 表示为 E1,表示文件修改。效果 E1 应该在该条件下实现 → (C1 V C2)/\ C3。
- E2 表示的影响 2 指的是消息 M1。
- E3 表示的影响 3 指的是消息 M2。
上述问题陈述的因果图如下所示 −

结论
至此,我们对软件因果图教程的全面介绍就到此结束。我们首先描述了什么是因果图、如何从因果图创建测试用例、因果图中使用的符号是什么以及因果图的示例。这将使您深入了解软件因果图。明智的做法是继续实践你所学到的知识,并探索与软件测试相关的其他知识,以加深你的理解并拓宽你的视野。