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

news2024/9/20 1:10:28

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.coloradmin.cn/o/1465540.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

外包干了两个月,技术退步明显。。。。。

先说一下自己的情况,本科生,19年通过校招进入广州某软件公司,干了接近4年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试…

2024/02/23

使用消息队列完成两个进程间相互通信 A.c #include<myhead.h> struct msgbuf {long mtype;char mtext[1024]; }; //定义表示正文内容大小的宏 #define MSGSIZE sizeof(struct msgbuf)-sizeof(long)int main(int argc, const char *argv[]) {//创建一个key值key_t key;ke…

快速学习安全框架 Springsecurity最新版(6.2)--用户授权模块

简介 上一节Springsecurity 用户认证 Springsecurity 拥有强大的认证和授权功能并且非常灵活&#xff0c;,一来说我们都i有以下需求 可以帮助应用程序实现以下两种常见的授权需求&#xff1a; 用户-权限-资源&#xff1a;例如张三的权限是添加用户、查看用户列表&#xff0c;李…

springboot214基于springboot的多媒体素材库的开发与应用

多媒体素材库的设计与实现 摘要 近年来&#xff0c;信息化管理行业的不断兴起&#xff0c;使得人们的日常生活越来越离不开计算机和互联网技术。首先&#xff0c;根据收集到的用户需求分析&#xff0c;对设计系统有一个初步的认识与了解&#xff0c;确定多媒体素材库的总体功…

CentOS使用Docker搭建Halo网站并实现无公网ip远程访问

&#x1f525;博客主页&#xff1a; 小羊失眠啦. &#x1f3a5;系列专栏&#xff1a;《C语言》 《数据结构》 《C》 《Linux》 《Cpolar》 ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&…

阿里云2024年优惠政策合集,你要的阿里云优惠政策都在这!

2024年阿里云优惠活动大全&#xff0c;包括阿里云服务器优惠活动清单、配置价格表、域名优惠活动、阿里云建站活动、阿里云优惠代金券免费领取、对象存储OSS活动、企业邮箱优惠、无影云电脑优惠、CDN特惠等等&#xff0c;阿里云百科aliyunbaike.com分享2024阿里云优惠活动大全_…

Linux RocketMQ 安装及卸载(附控制台搭建)

一、前言 在安装 RocketMQ 前需要确保 JDK 已安装并正确配置环境变量 二、下载安装 1.下载 下载 | RocketMQ 2.安装 # 打开存放目录 cd /usr/local # 创建目录 mkdir rocketMQ # 进入目录 cd rocketMQ # 把下载的压缩包上传到 rocketMQ 目录中 # 解压 $ unzip rocketmq-all-…

Elasticsearch:基于 Langchain 的 Elasticsearch Agent 对文档的搜索

在今天的文章中&#xff0c;我们将重点介绍如何使用 LangChain 提供的基础设施在 Python 中构建 Elasticsearch agent。 该 agent 应允许用户以自然语言询问有关 Elasticsearch 集群中数据的问题。 Elasticsearch 是一个强大的搜索引擎&#xff0c;支持词法和向量搜索。 Elast…

人工智能 — 数字图像

目录 一、图像1、像素2、图像分辨率3、RGB 模型4、灰度5、通道6、对比度7、RGB 转化为 Gray8、RGB 值转化为浮点数9、二值化10、常用视觉库11、频率12、幅值 二、图像的取样与量化1、数字图像2、取样3、量化 三、上采样与下采样1、上采样&#xff08;upsampling&#xff09;2、…

NOIP2018-J-4-对称二叉树的题解

原题描述&#xff1a; 题目描述 时间&#xff1a;1s 空间&#xff1a;256M 一棵有点权的有根树如果满足以下条件&#xff0c;则被轩轩称为对称二叉树&#xff1a; 1. 二叉树&#xff1b; 2. 将这棵树所有节点的左右子树交换&#xff0c;新树和原树对应位置的结构相同且…

【机器学习的基本术语和概念】

曾梦想执剑走天涯&#xff0c;我是程序猿【AK】 目录 简述概要知识图谱 简述概要 提示&#xff1a;简要描述文章内容&#xff0c;适合哪些人观看 知识图谱 样本&#xff08;Sample&#xff09;/实例&#xff08;Instance&#xff09;&#xff1a;在机器学习中&#xff0c;我…

vue-利用属性(v-if)控制表单(el-form-item)显示/隐藏

表单控制属性 v-if 示例&#xff1a; 通过switch组件作为开关&#xff0c;控制表单的显示与隐藏 <el-form-item label"创建数据集"><el-switch v-model"selectFormVisible"></el-switch></el-form-item><el-form-item label&…

AndroidStudio 2024-2-21 Win10/11最新安装配置(Kotlin快速构建配置,gradle镜像源)

AndroidStudio 2024 Win10/11最新安装配置 教程目的&#xff1a; (从安装到卸载) &#xff0c;针对Kotlin开发配置&#xff0c;gradle-8.2-src/bin下载慢&#xff0c;以及Kotlin构建慢的解决 好久没玩AS了,下载发现装个AS很麻烦,就觉得有必要出个教程了(就是记录一下:嘻嘻) 因…

❤ hexo主题+Gitee搭建个人博客

Hexo的基本使用 ​官网 官网地址&#xff1a;https://hexo.io/zh-cn/ Hexo是一个快速、简洁且高效的博客框架。Hexo 使用 Markdown&#xff08;或其他渲染引擎&#xff09;解析文章&#xff0c;在几秒内&#xff0c;即可利用靓丽的主题生成静态网页。即把用户的markdown文件…

开源LLMs导览:工作原理、顶级LLM列表对比

目录 一、开源 LLM 是什么意思&#xff1f;二、开源LLM如何工作&#xff1f;2.1 预训练2.2 代币化2.3 开源LLM的微调2.4 输入编码2.5 训练与优化2.6 推理 三、开源LLM对组织的好处3.1 增强的数据安全和隐私3.2 节约成本3.3 减少供应商依赖性3.4 代码透明度 四、哪种LLM模式最好…

AcrelEMS-HIM高速公路综合能效系统在高速公路的案例

摘 要&#xff1a;我国新型工业化、信息化、城镇化和农业现代化加快发展&#xff0c;经济结构加快转型&#xff0c;交通运输总量将保持较快增长态势&#xff0c;各项事业发展要求提高国家公路网的服务能力和水平。高速公路沿线的收费站、互通枢纽、服务区、隧道等配置的供配电、…

白令海峡的题解

目录 原题描述&#xff1a; 题目描述 输入格式 输出格式 样例输入 样例输出 样例解释 数据规模 主要思路&#xff1a; 小细节&#xff1a; 代码code: 原题描述&#xff1a; 时间限制: 1000ms 空间限制: 524288kB 题目描述 很久很久以前&#xff0c;一座大陆桥横…

云图极速版限时免费活动

产品介绍 云图极速版是针对拥有攻击面管理需求的用户打造的 SaaS 应用&#xff0c;致力于协助用户发现并管理互联网资产攻击面。 实战数据 (2023.11.6 - 2024.2.23) 云图极速版上线 3 个月以来&#xff0c;接入用户 3,563 家&#xff0c;扫描主体 19,961 个&#xff0c;累计发…

Atcoder ABC341 A-D题解

比赛链接:ABC341 Problem A: 先签个到。 #include <bits/stdc.h> using namespace std; int main() {int n;cin>>n;for(int i0;i<n;i)cout<<"10"<<endl;cout<<"1"<<endl;return 0; } Problem B: 继续签。 #i…

3D模型可视化引擎HOOPS Visualize V2024版全新发布:增强了大量点云数据集的处理,与HOOPS系列产品集合实现照片级渲染!

HOOPS Visualize是一款工业级3D渲染引擎&#xff0c;可以用于打造移动端和PC端工程应用程序&#xff0c;其灵活、分层的场景管理引擎&#xff0c;支持处理各种3D模型实体&#xff0c;其高性能图形和交互处理算法&#xff0c;支持大型模型可视化&#xff0c;现已帮助达索 SOLIDW…