因果图属于黑盒测试技术, 该技术强调了给定结果与影响结果的所有因素之间的关系。它用于编写动态测试用例。
当代码根据用户输入动态工作时, 将使用动态测试用例。例如, 在使用电子邮件帐户时, 在输入有效电子邮件时, 系统会接受它, 但是在你输入无效电子邮件时, 它会引发错误消息。在此技术中, 将输入条件分配给原因, 并将这些输入条件的结果分配给效果。
因果图技术基于一组需求, 用于确定可能的最小测试案例, 这些案例可以覆盖软件的最大测试区域。
【黑匣子测试中的因果图】因果图测试的主要优点是, 它减少了测试执行的时间和成本。
该技术旨在减少测试用例的数量, 但仍以最大覆盖范围覆盖所有必需的测试用例, 以实现所需的应用程序质量。
因果图技术通过使用AND, OR和NOT之类的逻辑运算符将需求规范转换为输入和输出条件之间的逻辑关系。
因果图中使用的符号
AND-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)
文章图片
效果E1-更新-效果E1存在的逻辑是” ((C1 OR C2)AND C3″ 。对于C1或C2, C1和C2中的任何一个都应为真。对于逻辑AND C3(第2列中的字符应为数字), C3必须为true。换句话说, 对于效果E1(已进行更新)的存在, C1和C2中的任何一个, 但C3必须为真。我们可以在图中看到原因C1和C2通过OR逻辑连接, 而效果E1与AND逻辑连接。
效果E2-显示消息X-效果E2存在的逻辑是” NOT C1 AND NOT 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连接。
因此, 它是给定情况的因果图。测试人员需要将因果关系转换为逻辑陈述, 然后设计因果图。如果函数根据输入(原因)给出输出(效果), 则将其视为无缺陷, 如果不这样做, 则将其发送给开发团队进行更正。
总结
步骤摘要:
- 画出圆圈以了解影响和原因。
- 从效果开始, 然后找出造成这种效果的原因。
- 最后画出互斥原因(通过一种效应和一种原因直接联系的互斥原因)。
- 使用逻辑门绘制动态测试用例。
推荐阅读
- 开发必看(功能测试图文详细解读)
- 黑匣子测试之等价分割技术
- 黑匣子测试之错误猜测技术
- 软件开发质量保证与质量控制介绍
- 白盒测试(条件覆盖率测试)
- 黑匣子测试中的决策表技术
- SpringBoot加载运行时监听器(SpringApplicationRunListeners)
- 白盒测试中的数据流测试
- 白盒测试中的控制流测试