因果测试技术
因果图来自黑盒测试技术,该技术强调了给定结果与影响结果的所有因素之间的关系。它用于编写动态测试用例。
当代码根据用户输入动态运行时,将使用动态测试用例。例如,在使用电子邮件帐户时,在输入有效的电子邮件时,系统会接受它,但是当您输入无效的电子邮件时,它会抛出错误消息。在这种技术中,输入条件被赋予原因,并且这些输入条件的结果具有效果。
因果图技术基于一系列需求,用于确定可覆盖软件最大测试区域的最小可能测试用例。
因果图测试的主要优点是,它减少了测试执行的时间和成本。
该技术旨在减少测试用例的数量,但仍覆盖所有必要的测试用例,覆盖范围最大,以达到所需的应用程序质量。
因果图技术通过使用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)和C3E2
- 显示信息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存在的逻辑是“非C3”,表示原因C3(第2列中的字符是数字)应为假。换句话说,对于效果E3的存在,第2列中的字符不应该是数字。可以在图中看到,C3通过NOT逻辑与效果E3连接。
因此,它是给定情况的因果图。测试人员需要将原因和结果转换为逻辑语句,然后设计因果图。如果函数根据输入(原因)给出输出(效果),则认为它是无缺陷的,如果不这样做,则将其发送给开发团队进行更正。
步骤总结:
- 画出效果和原因的圆圈。
- 从效果开始,然后选择导致此效果的原因。
- 最后绘制相互排斥的原因(通过一种效应和一种原因直接连接的独占原因)。
- 使用逻辑门绘制动态测试用例。