因果图属于黑盒测试技术,该技术强调了给定结果与影响结果的所有因素之间的关系。它用于编写动态测试用例。
当代码基于用户输入动态工作时,将使用动态测试用例。例如,在使用电子邮件帐户时,在输入有效电子邮件时,系统会接受它,但是当您输入无效的电子邮件时,它会抛出错误消息。在这种技术中,输入条件被分配有原因,这些输入条件的结果被分配有结果。
因果图技术基于需求的集合,用于确定可以覆盖软件最大测试区域的最小可能测试用例。
因果图测试的主要优点是,它减少了测试执行的时间和成本。
该技术旨在减少测试用例的数量,但仍以最大覆盖范围覆盖所有必要的测试用例,以实现所需的应用程序质量。
因果图技术通过使用逻辑运算符(如 AND、OR 和 NOT)将需求规范转换为输入和输出条件之间的逻辑关系。
因果图中使用的符号
和-E1是结果,C1和C2是原因。如果 C1 和 C2 都为真,则效应 E1 将为真。
或-如果 C1 和 C2 的任何原因为真,则效应 E1 将为真。
不-如果原因 C1 为假,则效应 E1 为真。
互斥-当只有一个原因是真的。
让我们尝试通过一些示例来理解这种技术:
情况:
第 1 列中的字符应为 A 或 B,第 2 列中的字符应为数字。如果两列都包含适当的值,则进行更新。如果第
1 列的输入不正确,即既不是 A 也不是 B,则将显示消息 X。如果第 2 列中的输入不正确,即输入不是数字,则将显示消息
Y。
如果第一列中的字符是“A”或“B”,并且第二列中的字符应该是数字,则必须更新文件。
如果第一列中的值不正确(字符既不是 A 也不是 B),则会显示消息X。
如果第二列中的值不正确(字符不是数字),则将显示消息Y。
现在,我们将为上述情况制作一个因果图:
原因是:
C1 - 第 1 列中的字符为 A
C2 - 第 1 列中的字符为 B
C3 - 第 2 列中的字符是数字!
影响:
E1 - 更新(C1 或 C2)和 C3
E2 - 显示消息 X(不是 C1 也不是 C2)
E3 - 显示消息 Y(非 C3)
其中 AND, OR, NOT 是逻辑门。
效果 E1- 更新-效果 E1 存在的逻辑是“(C1 或 C2) 和 C3”。对于 C1 或
C2,C1 和 C2 中的任何一个都应该为真。对于逻辑 AND 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 的逻辑是“NOT
C3”,这意味着原因 C3(第 2 列中的字符是数字)应该是假的。换句话说,对于效果 E3
的存在,第 2 列中的字符不应是数字。我们可以在图中看到,C3 通过 NOT 逻辑连接,效果为
E3。
因此,它是给定情况的因果图。测试人员需要将因果关系转换为逻辑陈述,然后设计因果图。如果函数根据输入(原因)给出输出(效果),则认为它没有缺陷,如果不这样做,则将其发送给开发团队进行更正。
结论
步骤摘要:
画结果和原因的圆圈。
从结果开始,然后选择这种结果的原因是什么。
最后得出相互排斥的原因(通过一个结果和一个原因直接连接的排他性原因)。
使用逻辑门绘制动态测试用例。
|