因果图和判定表
重点:功能测试
等价类和边界值往往只考虑单个输入域
但是整个软件系统,还需要考虑一些因果关系
和组合情况,比如说登录就需要账号正确、密
码正确以及点击登录
考虑因果关系和组合情况的测试用例方法:
ا
因果图法(鱼骨图法) 判定表法
因果图定义:是一种利用图解法分析输入的各种组合情况,从而设计测试用
例的方法。
因(原因):输入条件
果(结果):输出结果
因果图:
就是通过画图的方式来表示输入条件(因)和输出结果
(果)之间的关系。
恒等:原因出现,结果出现
非: 原因出现,结果一定不出现
与:C1\C2\C3三个条件同时成立,则结果成立
或: C1\C2两个条件任意一个成立,则结果成立
因果图设计步骤是什么?
一、根据需求确定原因(输入)和结果(输出)
二、根据需求中输入与输出的关系,输入与输入之间的关系,画出因果图
三、画出判定表,根据因果图,得到最终的最终判定表
四、根据判定表得到用例
因果图举例
程序的规格说明要求:
输入的第一个字符必须是"#”或“**” ,
第二个字符必须是一个数字,在此情况下进行文件的修改;
如果第一个字符不是"#”或"*” ,则给出信息N;
如果第二个字符不是数字,则给出信息M。
分析程序规格说明书描述的语义内容,找出“原因”和“结果”,将
其表示成连接各个原因与各个结果的“因果图”。
练习
有一个处理单价为1元5角的盒装饮料的自动售货机软件。
若投入1元5角硬币,按下"可乐” ,
“雪碧”或“红茶”按钮,相应的饮料就送出来。
若投入的是两元硬币,在送出饮料的同时退还5角硬币。
用户视角考虑输入项
总结
因果图分析是为有效测试分析的辅助工具,通过因果图分
析可以得到判定表。判定表根据约束进行用例的有效性分析,
最终输出测试用例。但是很多时候,绘制因果图是非常麻烦,
非常影响效率,所以在熟练之后,可以直接写判定表,进而编
写测试用例。
抓住业务流程讲测试用例
判定表法:
往往跟因果图法进行联用。相辅相
成,是一种考虑组合的测试用例设计方法。
判定表在使用时,需要确定其条件桩和动作
桩。然后跟需求编写出判定表
动作桩是指:
所有可能输出的结果(动作)
登录的判定表
条件桩:账号
密码
点击登录
动作桩:登录成功。提示账号不正确。提示密
码不正确
判定表
规则:
规则数决定了测试用例数量,贯穿条件。
桩和动作桩的一列,就叫做规则。
使用判定表编写测试用例的流程:
1、确定条件桩及动作桩。(条件项是指条件桩具体的取值,动作项是指依据条件项具体的取值)
2、根据条件桩和动作桩写出对应的条件项和动作项,确立规则数量。
3、查漏补缺完成的判定表。根据实际情况对判定表进行化简。
简化后表格:
输入账号 | 输入密码 | 点击登录 | 预期结果 |
---|---|---|---|
123456 | 123 | 是 | 登录成功 |
123456 | 223 | 是 | 登录失败 |
223456 | 123 | 是 | 登录失败 |
123456 | 123 | 否 | 登录失败 |
4、判定表化简的原则是,两个条件项相同,剩
下一个条件项任何取值不能影响最终结果,就
可以化简
5、化简的原则是两个条件下相同,剩下一个条件下不足以影响结果,就可以进行化简。最后剩下几天规则就可以编写对应数量的测试用例。
测试类型 国军标 数据库 嵌入式(串口)
条件 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 |
动作 | ||||
允许立即贷款 | ✔ | |||
安排贷款 | ✔ | |||
拒绝贷款 | ✔ | ✔ |
了解支付回调