黑盒测试中的因果图

17 Mar 2025 | 4 分钟阅读

因果图属于黑盒测试技术,它强调给定结果与影响结果的所有因素之间的关系。它用于编写动态测试用例。

当代码根据用户输入动态工作时,使用动态测试用例。例如,在使用电子邮件帐户时,输入有效的电子邮件,系统会接受它,但是,当您输入无效的电子邮件时,它会抛出一个错误消息。在该技术中,输入条件被分配为原因,这些输入条件的结果被分配为结果。

因果图技术基于一系列需求,用于确定可以涵盖软件最大测试区域的最小可能测试用例。

因果图测试的主要优点是,它可以减少测试执行时间和成本。

该技术旨在减少测试用例的数量,但仍涵盖所有必要的测试用例,并实现最大的覆盖范围,以实现所需的应用程序质量。

因果图技术通过使用逻辑运算符(如 AND、OR 和 NOT)将需求规范转换为输入和输出条件之间的逻辑关系。

因果图的符号

AND - E1 是一个结果,C1 和 C2 是原因。如果 C1 和 C2 都为真,则结果 E1 为真。

Cause and Effect Graph in Black box testing

OR - 如果 C1 和 C2 中的任何一个原因都为真,则结果 E1 为真。

Cause and Effect Graph in Black box testing

NOT - 如果原因 C1 为假,则结果 E1 为真。

Cause and Effect Graph in Black box testing

互斥 - 当只有一个原因成立时。

Cause and Effect Graph in Black box testing

让我们尝试用一些例子来理解这项技术

情况

第 1 列中的字符应该是 A 或 B,第 2 列中应该是一个数字。如果两列都包含适当的值,则进行更新。如果第 1 列的输入不正确,即既不是 A 也不是 B,则将显示消息 X。如果第 2 列的输入不正确,即输入不是数字,则将显示消息 Y。

  • 如果第一列中的字符是“A”或“B”,并且第二列中的字符是一个数字,则必须更新文件。
  • 如果第一列中的值不正确(字符既不是 A 也不是 B),则将显示消息 X。
  • 如果第二列中的值不正确(字符不是数字),则将显示消息 Y。
Cause and Effect Graph in Black box testing

现在,我们将为上述情况制作因果图

原因如下

  • C1 - 第 1 列中的字符是 A
  • C2 - 第 1 列中的字符是 B
  • C3 - 第 2 列中的字符是数字!

影响

  • E1 - 更新完成(C1 或 C2)且 C3
  • E2 - 显示消息 X(非 C1 且非 C2)
  • E3 - 显示消息 Y(非 C3)

其中 AND、OR、NOT 是逻辑门。

Cause and Effect Graph in Black box testing

结果 E1- 更新完成- 结果 E1 存在的逻辑是“(C1 或 C2) 且 C3”。对于C1 或 C2,C1 和 C2 中的任何一个都应为真。对于逻辑且 C3(第 2 列中的字符应为数字),C3 必须为真。换句话说,对于结果 E1(更新完成),C1 和 C2 中的任何一个,但 C3 必须为真。我们可以在图中看到,原因 C1 和 C2 通过 OR 逻辑连接,结果 E1 通过 AND 逻辑连接。

结果 E2 - 显示消息 X - 结果 E2 存在的逻辑是“非 C1 且非 C2”,这意味着 C1(第 1 列中的字符应为 A)和 C2(第 1 列中的字符应为 B)都应为假。换句话说,对于结果 E2 存在,第 1 列中的字符既不应为 A 也不应为 B。我们可以在图中看到,C1 或 C2 通过 NOT 逻辑与结果 E2 连接。

结果 E3 - 显示消息 Y- 结果 E3 存在的逻辑是“非 C3”,这意味着原因 C3(第 2 列中的字符是一个数字)应为假。换句话说,对于结果 E3 存在,第 2 列中的字符不应是数字。我们可以在图中看到,C3 通过 NOT 逻辑与结果 E3 连接。

因此,这是给定情况的因果图。测试人员需要将原因和结果转换为逻辑语句,然后设计因果图。如果函数根据输入 (原因) 给出输出 (结果),则认为它没有缺陷,如果不是,则将其发送给开发团队进行更正。

结论

步骤总结

  • 为结果和原因画圆圈。
  • 从结果开始,然后找出是什么原因导致了这种结果。
  • 最后画出互斥的原因(通过一个结果和一个原因直接连接的互斥原因)。
  • 使用逻辑门绘制动态测试用例。