测试用例设计方法:招式组合,因果判定出世

1 引言

上篇讲了等价类划分和边界值分析法,而这两种方法只考虑了单个的输入条件,并未考虑输入条件的各种组合、输入条件之间的相互制约关系的场景。基于此短板,因果图法和判定表法应运而生。

2 因果图法

2.1 概念及原理

2.1.1 定义

一种描述输入条件的组合以及每种组合对应的输出的图形化工具,它适合于检查程序输入条件的各种组合情况。

2.1.2 方法的原则

画因果图时,原因在左,结果在右,由上而下排列,并根据功能说明书中规定的原因和结果之间的关系,用下述基本符号连接起来,在因果图中还可以引入一些中间节点。

1.因果图的基本图形符

2.因果图中的约束条件

从原因方面考虑主要有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申诉

1.先列出输入条件和输出条件

输入条件:

  • 1——认责or
  • 2——申诉
  • 3——个人责任
  • 4——组织责任
  • 5——三方责任
  • 6——责任人erp
  • 7-申诉原因
  • 8-描述

输出条件:

  • a——认责个人责任
  • b——认责组织责任
  • c——认责三方责任
  • d——申诉

2.画出因果图

3.将因果图转换为判定表,并将判定表的每一列拿出来就可作为一个测试用例

  • 选择“认责”、选择“个人责任”,填写:责任人erp、描述-》认责个人责任
  • 选择“认责”、选择“组织责任”,填写:描述-》认责组织责任
  • 选择“认责”、选择“三方责任”,填写:责任人erp、三方名称、描述-》认责三方责任
  • 选择“申诉”,填写:申诉原因、描述-》申诉

3 判定表法

3.1 概念及原理

3.1.1 定义

判定表是分析和表达多逻辑条件下执行不同操作的情况的工具,是指一个表格,用于显示条件和条件导致动作的集合。

3.1.2 方法的原则

主要包含五部分:

  • 条件桩:问题的所有条件
  • 条件项:所有条件的取值组合
  • 动作桩:所有可能的操作
  • 动作项:在每一种条件取值组合的情况下,执行动作桩中的哪些动作
  • 规则:一种条件取值组合与其对应的动作组合一种条件取值组合与其对应的动作组合(即判定表中贯穿条件项和动作项的一列)构成判定表的一个规则

3.2 方法步骤

  1. 列出所有的条件桩和动作桩(输入和输出);
  2. 填入条件项(输入项);
  3. 填入动作项,得到初始判定表;
  4. 简化判定表(合并相似规则(相同动作))。

3.3 举个栗子

场景:基础坐席认责or申诉

1.列判定表
2.对判定表进行简化
  • 选择“认责”、选择“个人责任”,填写:责任人erp、描述-》认责个人责任
  • 选择“认责”、选择“组织责任”,填写:描述-》认责组织责任
  • 选择“认责”、选择“三方责任”,填写:责任人erp、三方名称、描述-》认责三方责任
  • 选择“申诉”,填写:申诉原因、描述-》申诉

4 总结

但因果图和判定表法在变量值很多、排列组合数量极大的场景下,会生成非常庞大且冗余的测试用例,此时我们很难对所有组合场景进行全量测试用例覆盖,这个时候就是正交试验法大展神威的时候了,让我们一起来学习吧~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/486964.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何快速卸载windows电脑的一些软件?

本系列是一些电脑常规操作的普及,有需要借鉴即可 注:每个电脑都会有差异,参考即可。 其实大部分软件你删除桌面上的图标不等于删除,因为桌面上的那个图标就是一个简单的快捷方式而已。 在这里插入图片描述 那如何正确的卸载软件呢…

MaxScale实现mysql8读写分离

MaxScale 实验环境 中间件192.168.150.24MaxScale 22.08.4主服务器192.168.150.21mysql 8.0.30从服务器192.168.150.22mysql 8.0.30从服务器192.168.150.23mysql 8.0.30 读写分离基于主从同步 1.先实现数据库主从同步 基于gtid的主从同步配置 主库配置 # tail -3 /etc/my.…

靡语IT:Vue精讲(一)

Vue简介 发端于2013年的个人项目,已然成为全世界三大前端框架之一,在中国大陆更是前端首选。 它的设计思想、编码技巧也被众多的框架借鉴、模仿。 纪略 2013年,在Google工作的尤雨溪,受到Angular的启发,从中提取自…

4 编写达梦插件包

1、初始化达梦数据库 具体脚本可以参考: https://github.com/nacos-group/nacos-plugin/blob/develop/nacos-datasource-plugin-ext/nacos-dm-datasource-plugin-ext/src/main/resources/schema/nacos-dm.sql

学生个性化成长平台搭建随笔记

1.Vue的自定义指令 在 Vue.js 中,我们可以通过 Vue.directive() 方法来定义自定义指令。具体来说,我们需要传递两个参数: 指令名称:表示我们要定义的指令名称,可以是一个字符串值,例如:has-rol…

腾讯云宝塔Linux安装Mysql5.7

一、下载官方mysql包 wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm二、安装mysql包 rpm -ivh mysql-community-release-el7-5.noarch.rpm三、安装mysql yum install mysql-community-server -y四、启动数据库 systemctl start mysqld.service…

【黑马程序员】C++模版

20240214 文章目录 C泛型编程技术模版的概念 函数模版函数模版语法不使用模版的模版完成两个数交换使用模版的方式完成两个数的交换模版注意事项函数模版案列使用模版实现升序选择排序 模版函数和普通函数区别点调用规则 模版的局限性模版的通用性问题模版重载 类模板类模板语…

C++:fstream用法

本文主要讲了通过fstream实现视频文件的传输过程。 #include <iostream> #include <fstream>using namespace std;int main(void) {ifstream fstrm_read("946709172.avi", ios::binary);ofstream fstrm_write("test.avi", ios::app);char vid…

网络安全笔记总结

IAE引擎 1.深度检测技术--DFI和DPI技术 DFI和DPI都是流量解析技术&#xff0c;对业务的应用、行为及具体信息进行识别&#xff0c;主要应用于流量分析及流量检测。 DPI&#xff1a;深度包检测技术 DPI是一种基于应用层的流量检测和控制技术&#xff0c;对流量进行拆包&#x…

windows下快速安装nginx 并配置开机自启动

1、下载地址&#xff1a;http://nginx.org/en/download.html 2、启动nginx 注意⚠️ 不要直接双击nginx.exe&#xff0c;这样会导致修改配置后重启、停止nginx无效&#xff0c;需要手动关闭任务管理器内的所有nginx进程。 在nginx.exe目录&#xff0c;打开命令行工具&#xf…

JVM——感谢黑马程序员官方文档

JVM——感谢黑马程序员官方文档 一、JVM介绍1.什么是JVM&#xff1f;2.有什么好处3.学习路线 二、内存结构1.程序计数器(Program Counter Registe)1.定义2.作用3.特点4.演示 2.虚拟机栈(Java Virtual Machine Stacks)1.定义2.演示3.问题解析4.栈内存溢出5.线程运行诊断&#xf…

物麒平台自定义事件代码修改流程

是否需要申请加入数字音频系统研究开发交流答疑群(课题组)&#xff1f;可加我微信hezkz17, 本群提供音频技术答疑服务&#xff0c;群赠送蓝牙音频&#xff0c;DSP音频项目核心开发资料, 1 配置工具对应关系 2 事件处理 3 事件定义 4