因果图和判定表
重点:功能测试

等价类和边界值往往只考虑单个输入域
但是整个软件系统,还需要考虑一些因果关系
和组合情况,比如说登录就需要账号正确、密
码正确以及点击登录

考虑因果关系和组合情况的测试用例方法:
ا
因果图法(鱼骨图法) 判定表法

因果图定义:是一种利用图解法分析输入的各种组合情况,从而设计测试用
例的方法。

因(原因):输入条件
果(结果):输出结果

因果图:

就是通过画图的方式来表示输入条件(因)和输出结果
(果)之间的关系。

Pasted image 20250422101422.png

恒等:原因出现,结果出现
非: 原因出现,结果一定不出现
与:C1\C2\C3三个条件同时成立,则结果成立
或: C1\C2两个条件任意一个成立,则结果成立

Pasted image 20250422102027.png

Pasted image 20250422102411.png

Pasted image 20250422102708.png

Pasted image 20250422103335.png

Pasted image 20250422103532.png

Pasted image 20250422103741.png

因果图设计步骤是什么?
一、根据需求确定原因(输入)和结果(输出)
二、根据需求中输入与输出的关系,输入与输入之间的关系,画出因果图
三、画出判定表,根据因果图,得到最终的最终判定表
四、根据判定表得到用例

因果图举例
程序的规格说明要求:
输入的第一个字符必须是"#”或“**” ,
第二个字符必须是一个数字,在此情况下进行文件的修改;
如果第一个字符不是"#”或"*” ,则给出信息N;
如果第二个字符不是数字,则给出信息M。
分析程序规格说明书描述的语义内容,找出“原因”和“结果”,将
其表示成连接各个原因与各个结果的“因果图”。

Pasted image 20250422111452.png

Pasted image 20250422111938.png

练习
有一个处理单价为1元5角的盒装饮料的自动售货机软件。
若投入1元5角硬币,按下"可乐” ,
“雪碧”或“红茶”按钮,相应的饮料就送出来。
若投入的是两元硬币,在送出饮料的同时退还5角硬币。

Pasted image 20250422114802.png

Pasted image 20250422114956.png

Pasted image 20250422115036.png

用户视角考虑输入项

总结
因果图分析是为有效测试分析的辅助工具,通过因果图分
析可以得到判定表。判定表根据约束进行用例的有效性分析,
最终输出测试用例。但是很多时候,绘制因果图是非常麻烦,
非常影响效率,所以在熟练之后,可以直接写判定表,进而编
写测试用例。

抓住业务流程讲测试用例

判定表法:

往往跟因果图法进行联用。相辅相
成,是一种考虑组合的测试用例设计方法。

判定表在使用时,需要确定其条件桩和动作
桩。然后跟需求编写出判定表

动作桩是指:

所有可能输出的结果(动作)

登录的判定表
条件桩:账号
密码
点击登录
动作桩:登录成功。提示账号不正确。提示密
码不正确

判定表
Pasted image 20250422141850.png

规则:

规则数决定了测试用例数量,贯穿条件。
桩和动作桩的一列,就叫做规则。

使用判定表编写测试用例的流程:

1、确定条件桩及动作桩。(条件项是指条件桩具体的取值,动作项是指依据条件项具体的取值)
2、根据条件桩和动作桩写出对应的条件项和动作项,确立规则数量。
3、查漏补缺完成的判定表。根据实际情况对判定表进行化简。

简化后表格:
Pasted image 20250422143753.png

输入账号 输入密码 点击登录 预期结果
123456 123 登录成功
123456 223 登录失败
223456 123 登录失败
123456 123 登录失败

4、判定表化简的原则是,两个条件项相同,剩
下一个条件项任何取值不能影响最终结果,就
可以化简

5、化简的原则是两个条件下相同,剩下一个条件下不足以影响结果,就可以进行化简。最后剩下几天规则就可以编写对应数量的测试用例。

测试类型 国军标 数据库 嵌入式(串口)

Pasted image 20250422151142.png

条件 1 2 3 4 5
功率是否大于50 Y
维修是否完善 Y
运行年限大于10年 Y

动作
优先维修 Y
一般处理

决策表=判定表
判定表法又称决策表法

判定表
2,某维修站对“功率大于50马力”的机器且
“维修记录不全”或“已运行十年以上”的机
器应给予优先维修,否则作一般处理。请绘制
决策表。

维修判定表

条件/规则 1 2 3 4 5 6 7 8
功率 > 50马力 Y Y Y Y N N N N
维修记录不全 Y Y N N - - - -
已运行十年以上 Y N Y N - - - -
动作
优先维修
一般处理
条件/规则 1 2 3
功率 > 50马力 Y Y N
维修记录不全 Y N -
已运行十年以上 [Y,N] N -
动作
优先维修
一般处理

6、场景法又称流程图法(一个基本流、多个支流)

场景法是一种站在用户角度考虑实际各种使用
思维场景的测试用例设计方法。是一种重要的测试思维

流程图法 最重要的概念

场景法最重要的概念是:

基本流和备选流

基本流的含义:完成某个目标最主要的流程,就叫做基本流。基本流只能有一条。

备选流: 除开基本流以外的其他流程均为备选流。备选流可以有很多条。

备选流。备选流可以有很多条。

练习:

分析银行取款机的取款流程。确立其基
本流和备选流。

银行ATM取款流程图(场景法分析)

graph TD
    A[开始] --> B[插入银行卡]
    B --> C{卡有效?}
    C -->|是| D[输入PIN码]
    C -->|否| E[退卡并提示无效卡]
    D --> F{PIN正确?}
    F -->|是| G[选择取款金额]
    F -->|否| H[提示重试/吞卡]
    G --> I{余额充足?}
    I -->|是| J[出钞并更新余额]
    I -->|否| K[提示余额不足]
    J --> L[退卡]
    
    style A fill:#90EE90,stroke:#333
    style E,H,K fill:#FFB6C1,stroke:#333
    style L fill:#90EE90,stroke:#333
    
    基本流:::mainflow
    classDef mainflow fill:#87CEEB,stroke:#333;

1、pdd 购物流程图

示例:

条件/规则 1 2 3
功率 > 50马力 Y Y N
维修记录不全 Y N -
已运行十年以上 [Y,N] N -
动作
优先维修
一般处理

2、判定表

判定表
1.某银行发放贷款原则如下:
贷款。
1)对于贷款未超过限额的客户,允许立即贷款。
2)对于贷款超过限额的客户,若过去还款记录好且本次贷款在2万元以下,可作出贷款安排;否则拒绝贷款。
请绘出发放贷款的判定表并优化。(给出优化前以及优化后)

优化前判定表

条件/规则 1 2 3 4 5 6 7 8
贷款超过限额 N N N N Y Y Y Y
还款记录良好 Y Y N N Y Y N N
本次贷款≤2万 Y N Y N Y N Y N
动作
允许立即贷款
安排贷款
拒绝贷款

优化后判定表

条件/规则 1 2 3 4
贷款超过限额 N Y Y Y
还款记录良好 - Y - N
本次贷款≤2万 - Y N Y
动作
允许立即贷款
安排贷款
拒绝贷款

了解支付回调