您好!
欢迎来到京东云开发者社区
登录
首页
博文
课程
大赛
工具
用户中心
开源
首页
博文
课程
大赛
工具
开源
更多
用户中心
开发者社区
>
博文
>
测试用例设计方法六脉神剑——第二剑:招式组合,因果判定出世
分享
打开微信扫码分享
点击前往QQ分享
点击前往微博分享
点击复制链接
测试用例设计方法六脉神剑——第二剑:招式组合,因果判定出世
自猿其说Tech
2022-06-01
IP归属:未知
446浏览
测试
### 1 引言 上篇讲了等价类划分和边界值分析法,而这两种方法只考虑了单个的输入条件,并未考虑输入条件的各种组合、输入条件之间的相互制约关系的场景。基于此短板,因果图法和判定表法应运而生。 ### 2 因果图法 #### 2.1 概念及原理 ##### 2.1.1 定义 一种描述输入条件的组合以及每种组合对应的输出的图形化工具,它适合于检查程序输入条件的各种组合情况。 ##### 2.1.2 方法的原则 画因果图时,原因在左,结果在右,由上而下排列,并根据功能说明书中规定的原因和结果之间的关系,用下述基本符号连接起来,在因果图中还可以引入一些中间节点。 ###### 1.因果图的基本图形符 ![](//img1.jcloudcs.com/developer.jdcloud.com/18fd4220-c2c5-4dd0-a088-ec490bc15e8420220601141947.png) ###### 2.因果图中的约束条件 ![](//img1.jcloudcs.com/developer.jdcloud.com/f75926e7-7b8a-4980-aeff-42791186338620220601142027.png) 从原因方面考虑主要有4种约束条件: - E(互斥、排他):a、b两个原因不会同时出现,最多只有一个出现 - I(包含、或):a、b、c三个原因至少有一个出现 - O(唯一):a、b两个原因必须有一个出现,且仅有一个出现 - R(需求):a出现时b必定出现 从结果方面考虑主要有1种约束条件: - M(屏蔽):a出现时,b必定不出现;a不出现时,b则不确定 #### 2.2 方法步骤 1. 找出所有的原因,原因即输入条件或输入条件的等价类; 2. 找出所有的结果,结果即输出条件; 3. 明确所有输入条件之间的制约关系以及组合关系;哪些条件不能组合到一起,哪些条件可以组合到一起 4. 明确所有输出条件之间的制约关系以及组合关系;哪些输出结果不能同时输出,哪些输出结果可以同时输出 5. 找出什么样的输入条件组合会产生哪种输出结果; 6. 画出因果图; 7. 把因果图转换成判定表/决策表; 8. 为判定表中的每一列表示的情况设计测试用例(每一列都是一条测试用例)。 #### 2.3 举个栗子 **场景:基础坐席认责or申诉** ![](//img1.jcloudcs.com/developer.jdcloud.com/227dcab4-2568-46ca-883f-cb923ff15d7b20220601142135.png) ###### 1.先列出输入条件和输出条件 输入条件: - 1——认责or - 2——申诉 - 3——个人责任 - 4——组织责任 - 5——三方责任 - 6——责任人erp - 7-申诉原因 - 8-描述 输出条件: - a——认责个人责任 - b——认责组织责任 - c——认责三方责任 - d——申诉 ###### 2.画出因果图 ![](//img1.jcloudcs.com/developer.jdcloud.com/2ed4f34f-0378-459e-9f47-b495f2cc9a3520220601142214.png) ###### 3.将因果图转换为判定表,并将判定表的每一列拿出来就可作为一个测试用例 ![](//img1.jcloudcs.com/developer.jdcloud.com/af9693a9-3382-430c-a3f8-3b800af18f8620220601142233.png) - 选择“认责”、选择“个人责任”,填写:责任人erp、描述-》认责个人责任 - 选择“认责”、选择“组织责任”,填写:描述-》认责组织责任 - 选择“认责”、选择“三方责任”,填写:责任人erp、三方名称、描述-》认责三方责任 - 选择“申诉”,填写:申诉原因、描述-》申诉 ### 3 判定表法 #### 3.1 概念及原理 ##### 3.1.1 定义 判定表是分析和表达多逻辑条件下执行不同操作的情况的工具,是指一个表格,用于显示条件和条件导致动作的集合。 ##### 3.1.2 方法的原则 主要包含五部分: - 条件桩:问题的所有条件 - 条件项:所有条件的取值组合 - 动作桩:所有可能的操作 - 动作项:在每一种条件取值组合的情况下,执行动作桩中的哪些动作 - 规则:一种条件取值组合与其对应的动作组合一种条件取值组合与其对应的动作组合(即判定表中贯穿条件项和动作项的一列)构成判定表的一个规则 #### 3.2 方法步骤 1. 列出所有的条件桩和动作桩(输入和输出); 2. 填入条件项(输入项); 3. 填入动作项,得到初始判定表; 4. 简化判定表(合并相似规则(相同动作))。 ##### 3.3 举个栗子 场景:基础坐席认责or申诉 ![](//img1.jcloudcs.com/developer.jdcloud.com/82a85fd0-a692-4ff6-8e07-96a2d969beda20220601142400.png) ###### 1.列判定表 ![](//img1.jcloudcs.com/developer.jdcloud.com/7009fc99-75b7-464d-b430-4969c2cd1b7620220601142340.png) ###### 2.对判定表进行简化 ![](//img1.jcloudcs.com/developer.jdcloud.com/5c76899f-702e-4513-af79-fea62c5baf2a20220601142435.png) - 选择“认责”、选择“个人责任”,填写:责任人erp、描述-》认责个人责任 - 选择“认责”、选择“组织责任”,填写:描述-》认责组织责任 - 选择“认责”、选择“三方责任”,填写:责任人erp、三方名称、描述-》认责三方责任 - 选择“申诉”,填写:申诉原因、描述-》申诉 ### 4 总结 ![](//img1.jcloudcs.com/developer.jdcloud.com/a535d910-3957-4467-82cd-c63f8f7fe15f20220601142731.png) 但因果图和判定表法在变量值很多、排列组合数量极大的场景下,会生成非常庞大且冗余的测试用例,此时我们很难对所有组合场景进行全量测试用例覆盖,这个时候就是正交试验法大展神威的时候了,让我们一起来学习吧~ ------------ ###### 自猿其说Tech-JDL京东物流技术与数据智能部 ###### 作者:王鹏(西安CS测试小分队)
原创文章,需联系作者,授权转载
上一篇:测试用例设计方法六脉神剑——第三剑:倚天屠龙,正交试验冲锋
下一篇:测试用例设计方法六脉神剑——第一剑:入门试招,等价边界初探
相关文章
安全测试之探索windows游戏扫雷
Jmeter压测实战:Jmeter二次开发之JSF采样器实现
Laputa自动化测试框架介绍
自猿其说Tech
文章数
426
阅读量
2150408
作者其他文章
01
深入JDK中的Optional
本文将从Optional所解决的问题开始,逐层解剖,由浅入深,文中会出现Optioanl方法之间的对比,实践,误用情况分析,优缺点等。与大家一起,对这项Java8中的新特性,进行理解和深入。
01
Taro小程序跨端开发入门实战
为了让小程序开发更简单,更高效,我们采用 Taro 作为首选框架,我们将使用 Taro 的实践经验整理了出来,主要内容围绕着什么是 Taro,为什么用 Taro,以及 Taro 如何使用(正确使用的姿势),还有 Taro 背后的一些设计思想来进行展开,让大家能够对 Taro 有个完整的认识。
01
Flutter For Web实践
Flutter For Web 已经发布一年多时间,它的发布意味着我们可以真正地使用一套代码、一套资源部署整个大前端系统(包括:iOS、Android、Web)。渠道研发组经过一段时间的探索,使用Flutter For Web技术开发了移动端可视化编程平台—Flutter乐高,在这里希望和大家分享下使用Flutter For Web实践过程和踩坑实践
01
配运基础数据缓存瘦身实践
在基础数据的常规能力当中,数据的存取是最基础也是最重要的能力,为了整体提高数据的读取能力,缓存技术在基础数据的场景中得到了广泛的使用,下面会重点展示一下配运组近期针对数据缓存做的瘦身实践。
自猿其说Tech
文章数
426
阅读量
2150408
作者其他文章
01
深入JDK中的Optional
01
Taro小程序跨端开发入门实战
01
Flutter For Web实践
01
配运基础数据缓存瘦身实践
添加企业微信
获取1V1专业服务
扫码关注
京东云开发者公众号