因果图法

本文介绍了因果图法作为需求分析工具,用于处理复杂逻辑关系。通过定义原因(输入条件)、结果(输出条件)及中间节点,来梳理条件之间的关系。例子展示了如何将因果图转化为判定表,并解释了恒等、非、与、或四种逻辑关系。此外,还阐述了制约关系,如互斥、包容、唯一和要求关系。最后,提供了因果图法的使用步骤,以及如何根据判定表生成测试用例。案例分析了手机欠费、机器维修、文件修改等场景的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

因果图法

概念

  • 将具有特别复杂逻辑关系的需求转化为判定表的一种中间系统化方法
  • 最终会生成判定表
  • 因果图就像是一个草稿,帮你理清逻辑关系,借助因果图生成判定表
  • 有时候不一定要使用因果图生成判定表,但是需要画出因果图以便分析

相关术语

  • 原因:可以叫条件桩或者输入条件(输入条件只取布尔量,1;0)
  • 结果:可以叫动作桩或者输出条件(输出条件只取布尔量,1;0)
  • 中间节点:1.当多个原因(输入条件)不是单纯的与和或的关系,可以利用中间节点存取中间结果,使因果图更加清晰;2.当多个原因(输入条件)都在描述同一件事情,可以利用中间节点归并逻辑使得因果图更加清晰。

例子:

在这里插入图片描述

将上面因果图转化为判定表:

在这里插入图片描述

查看逻辑关系发现,其这三个条件中有任何一个为0,那注册失败,

那么可以将2,4,6,8合并,还可以将3,7合并,最终得到:

在这里插入图片描述

小结

判定表中合并可以看逻辑关系合并,如果说该逻辑下的组合没有达到该逻辑下的最大组合数(如合并组合3,7时),那么要合并成该有的样子(就是是多少组合数就对应合并成多少),如最终结果中的组合3(合并3,7之后并不是X,0,X而是X,0,1)

逻辑关系

  1. 因果关系(输入与输出的关系)

    因果关系解释说明举例
    恒等满足条件,给出结果C:核酸检测阳性E:隔离21天如果你的核酸检测报告呈阳性,请隔离21天。
    满足条件,不给出结果C:核酸检测阴性E:隔离21天如果你的核酸检测报告呈阴性,不需要隔离21天。
    多个条件同时满足,给出结果C1:本科学历及以上;C2:计算机专业;C3:工作五年及以上;E:优先录取阿里招聘P6级测试工作岗位对招聘要求是本科学历且计算机专业必须工作五年及以上,给予优先录取机会。
    多个条件满足其一,即给出结果C1:本科学历及以上;C2:计算机专业;C3:工作五年及以上;E:优先录取腾讯招聘M1机测试管理岗位,对招聘要求是本科学历、计算机专业、工作五年及以上,以上满足一条给予优先录取机会。

恒等:
在这里插入图片描述
与:
在这里插入图片描述
或:
在这里插入图片描述
非:
在这里插入图片描述

  1. 制约关系(条件和条件的关系,结果和结果的关系)

    制约关系解释说明举例
    E的关系(Exclusive):互斥的多个原因(条件),至多只能有一个为真,不可以同时都为真,可以同时都为假。选课系统,同一时段的选修课有多门,至多只能选一门,不选。停车控制系统:有一个车位,多辆车停车指挥;
    I的关系(Inclusive):包容的多个原因(条件),至少有一个为真,不可以同时都为假,可以同时都为真。考试系统,题型不定项选择题;可以有一个答案正确,可以有多个答案正确,所有的答案都可以选。
    O的关系(Only):唯一的多个原因(条件),有且只能有一个为真,不可以同时都为真,不可以同时都为假。考试系统,题型单项选择题;有且只能有一个答案正确;Next Date的年、月、日
    R的关系(Require):要求的原因C1;C2C1为真要求C2为真,C1为假对C2不做要求。银行网站登录银行卡号:C2密码:C1C1(密码)正确要求C2(卡号)正确C1(密码)错误C2(卡号)正确错误
    M的关系(Mandatory):必须的原因C1;C2C1为真强制C2为假,C1为假对C2不做强制。手动输入IP地址:C1自动获得DNS服务器地址:C2选中C1,C2强制灰色;不选中C1,C2可以根据需要进行设置与不设置

因果图法的使用步骤

(1)将软件需求规格说明书划分成需求子片段;

(2)分析需求子片段,找出原因和结果;

(3)分析原因和结果之间的关系,画出因果图;

(4)分析因果图,找出原因之间制约关系,做出标识;

(5)通过因果图生成判定表,可以做合并化简;

(6)分析判定表中的规则,必要时结合等价类边界值生成最终的测试用例。

案例

  1. 手机欠费或者停机,则不能主被叫。

在这里插入图片描述

在这里插入图片描述

  1. 有一个需求描述如下:“……对已运行10年以上的机器、或功率大于50马力且维修记录不全的机器,给予全面维修处理,对其它机器只进行一般维修处理。

在这里插入图片描述

在这里插入图片描述

  1. 某文件修改需求:如想对文件进行修改,需要遵守以下规则:

    输入的第一列字符必须是A或B,第二列字符必须是一个数字,如果第一列字符不正确,则给出信息L;如果第二列字符不正确,则给出信息M。 如果两列字符输入正确,则修改文件

原因:

C1第一列正确(直接化繁为简)

C2第二列正确

结果:

E1信息L

E2信息M

E3修改文件

在这里插入图片描述

在这里插入图片描述

小结

关于流程的条件(隐藏的制约关系)
如果下一个流程为真,则上一个流程必然为真,那么符合制约关系R

特点和适用范围

特点:

测试组合的方法、全组合测试覆盖率高;效果好效率比较低,组合规则数量多导致测试用力数量庞大加大测试工作量;可以发现需求中一些逻辑描述不明确或者错误逻辑的缺陷;能够胜任对于特别特别复杂逻辑关系的需求;制约关系会快速删减不符合逻辑规则;

适用范围:

功能测试(业务规则;游戏规则)

注意

因果图仅仅用于辅助分析逻辑,最终还是要借助其他方法生成用例数据。

小技巧

在分析因果图时先分析每个小节点,得到组合之后再将不同节点的组合合并(必要时可以使用等价划分)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值