【测试篇】测试用例
文章目录
- 前言
- 具体设计测试用例
- 等价类
- 边界值
- 场景设计法
- 判定表(因果图)
- 正交排列(用的非常少)
- 错误猜测法
前言
什么是测试用例??
测试用例是针对软件系统或应用程序的特定功能或场景编写的一组步骤,旨在验证软件是否按照预期工作。测试用例描述了预期输入、执行操作和预期输出,以及测试的环境和先决条件。测试用例通常由测试人员编写,用于检查软件的功能、性能、安全性等方面。
测试用例具有什么基本要素??
测试用例通常包含 测试环境、操作步骤、测试数据、预期结果、实际结果、测试状态等要素……
评价测试用例的标准是什么??
- 用例表达清楚,无二义性
- 用例可操作性
- 用例的输入与输出明确。一条用例只有一个预期结果。
- 用例的可维护性好。
- 用例对需求的覆盖率高。
覆盖率高意味着测试用例覆盖了软件系统的许多方面,有助于发现潜在的缺陷和问题。
具体设计测试用例
- 等价类
- 边界值
- 错误猜测法
- 场景设计法
- 因果图
- 正交排列
等价类
-
有效等价类:根据需求说明书,满足需求的集合。
-
无效等价类:根据需求说明书,不满足需求的集合。
举例子:测试一个账号输入机制,要求用户名长度是6~15位&必须全是字符。
测试点是有效等价类+无效等价类
边界值
边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。
-
寻找上点、内点、离点。可以观察下图来理解:

-
设计测试用例(和等价类结合)
针对上述的“上点、内点、离点”设计测试用例。

场景设计法
什么是场景:场景设计法是指根据特定情境和需求,构思和设计出一个具体的场景或情景,以便更好地理解和解决问题,促进创新和设计思考的方法。
场景设计法设计测试用例的时候具体的步骤是什么?
- 主事件流
- 次事件流
- 将主事件流次事件流串起来就会形成场景,一个场景就是一个测试用例
以淘宝购物为例。
测试点①:打开淘宝APP,搜索商品,选中商品,加入购物车,选择支付方式,支付成功,生成订单。
测试点②:打开淘宝APP,APP闪退,没有订单。
判定表(因果图)
判定表需要掌握的基本知识:恒等、与、或、非。
- 恒等:条件为真,结果一定为真,条件为假,结果一定为假
- 与︰条件全为真,结果才为真,条件中有一个为假,结果为假
- 或:条件全为假,结果才为假,条件中有一个为真,结果为真
- 非:条件为假,结果才为真
通过判定表法设计测试用例
- 充分理解需求
- 分析所有的输入和可能的输出
- 找出输入和输出之间的对应关系
- 画判定表
- 把判定表对应到每一个测试用例
案例:假设业务单据的处理规则为:“淘宝618活动,订单已提交,订单合计金额大于300元或有红包,则进优惠”。
分析:
-
输入:订单提交(A),订单没有提交,金额大于等于300(B),金额小于300,有红包©,没有红包。
-
输出:有优惠,没优惠。
-
对应关系:A B C AB AC BC ABC
-
画判定表

-
测试用例:
- 订单已提交,金额大于等于300,有红包,有优惠
- 订单已提交,金额大于等于300,没有红包,有优惠
- 订单已提交,金额小于300,有红包,有优惠
- 订单已提交,金额小于300,没有红包,没有优惠
- 订单未提交,金额大于等于300,有红包,没有优惠
- 订单未提交,金额大于等于300,没有红包,没有优惠
- 订单未提交,金额小于300,有红包,没有优惠
- 订单未提交,金额小于300,没有红包,没有优惠
正交排列(用的非常少)
正交法的核心是正交表,这是一种设计实验的特殊表格,能够将各个因素的水平组合安排得尽可能均匀,从而使得实验结果具有较高的准确性和可重复性。
通过正交表设计测试用例:
- 确定因素和因素取值(确定因素和水平)
- 通过工具生成正交表
- 将正交表转换成测试用例
- 补充正交表
案例:注册 姓名、邮箱、密码、确认密码、验证码必须全部输入,才能进行注册。
- 因素:姓名、密码、确认密码、验证码
- 水平:每个元素填写/不填写

测试点①:姓名填写,邮箱填写,密码填写,确认密码填写,验证码填写
……
错误猜测法
错误猜测法更多的是依赖以往的经验,长期对于被测软件涉及的理解来进行的猜测。
依赖测试人员的工作经验和积累。
相关文章:
【测试篇】测试用例
文章目录 前言具体设计测试用例等价类边界值场景设计法判定表(因果图)正交排列(用的非常少)错误猜测法 前言 什么是测试用例?? 测试用例是针对软件系统或应用程序的特定功能或场景编写的一组步骤…...
Shell学习 - 2.24 Shell let命令:对整数进行数学运算
let 命令和双小括号 (( )) 的用法是类似的,它们都是用来对整数进行运算,读者已经学习了《Shell (())》,再学习 let 命令就相当简单了。 注意:和双小括号 (( )) 一样,let 命令也只能进行整数运算,不能对小数…...
langchain Chroma 构建本地向量数据库
langchain Chroma 构建本地向量数据库 # import from langchain_community.document_loaders import TextLoader from langchain_community.embeddings.sentence_transformer import (SentenceTransformerEmbeddings, ) from langchain_community.embeddings import HuggingFa…...
Rust 中的字符串类型:`str` 和 `String`
Rust 中的字符串类型:&str 和 String 文章目录 Rust 中的字符串类型:&str 和 String1. &str:不可变的字符串引用2. String:可变的字符串3、字符串使用综合案例代码执行结果 在 Rust 编程语言中,有两种主要…...
Visual Studio(VS) 搭建 QT 开发环境
Visual Studio(VS) 搭建 QT 开发环境 在当今的软件开发领域,Visual Studio(VS)是一款备受欢迎的集成开发环境(IDE),而 QT 则是一个强大的跨平台应用程序框架。将两者结合使用,可以为开发人员提供高效、便捷的开发体验。本文将详细介绍如何在 VS2022 中搭建 QT 开发环…...
Qt模拟面试(超硬核)
1. 请简要介绍一下你的 Qt 开发经验。 建议:诚实地描述你的 Qt 经验,包括你使用过的 Qt 版本、开发过的项目类型、遇到的挑战以及如何解决它们。 假如你没有开发经验,可以提供一些关于 Qt 开发的一般信息和常见的经验分享。 Qt 是一个跨平…...
某眼实时票房接口获取
某眼实时票房接口获取 前言解决方案1.找到veri.js2.找到signKey所在位置3.分析它所处的这个函数的内容4.index参数的获取5.signKey参数的获取运行结果关键代码另一种思路票房接口:https://piaofang.maoyan.com/dashboard-ajax https://piaofang.maoyan.com/dashboard 实时票房…...
cesium键盘控制相机位置和姿态
该类主要用于监听键盘事件并在用户按下不同按键时执行相应的相机操作,如改变相机的位置、偏航角、俯仰角和翻滚角,从而实现在三维场景中的漫游。 以下是代码的主要逻辑: 导入Cesium库,并定义一个flags对象,其中包含了…...
基于ArrayList实现简单洗牌
前言 在之前的那篇文章中,我们已经认识了顺序表—>http://t.csdnimg.cn/2I3fE 基于此,便好理解ArrayList和后面的洗牌游戏了。 什么是ArrayList? ArrayList底层是一段连续的空间,并且可以动态扩容,是一个动态类型的顺序表&…...
Paddle实现人脸对比
人脸对比 人脸对比,顾名思义,就是对比两个人脸的相似度。本文将用Paddle实现这一功能。 PS:作者肝了整整3天才稍微搞明白实现方法 数据集准备 这里使用百度AI Studio的开源数据集: 人脸数据_数据集-飞桨AI Studio星河社区 (b…...
挖一挖:PostgreSQL Java里的double类型存储到varchar精度丢失问题
前言 大概故事是这样的,PostgreSQL数据库,表结构: create table t1(a varchar);然后使用标准的Java jdbc去插入数据,其基本代码如下: import java.sql.*; public class PgDoubleTest {public static void main(Stri…...
函数对象基本使用
一、函数对象概念 1.重载函数调用操作符的类,其对象常称为函数对象 2.函数对象使用重载的()时,行为类似函数调用,也叫仿函数 本质: 函数对象(仿函数)是一个类,不是一个函数 二、函数对象使用 特点: 函…...
浅谈HTTP
浅谈HTTP 要通过netty实现HTTP服务器(或者客户端),首先你要了解HTTP协议。 HTTP在客户端 - 服务器计算模型中用作请求 - 响应协议。 例如,web浏览器可以是客户端,并且在托管网站的计算机上运行的应用程序可以是服务器。 客户端向服务器提交…...
HarmonyOS NEXT应用开发之@Provide装饰器和\@Consume装饰器:与后代组件双向同步
Provide和Consume,应用于与后代组件的双向数据同步,应用于状态数据在多个层级之间传递的场景。不同于上文提到的父子组件之间通过命名参数机制传递,Provide和Consume摆脱参数传递机制的束缚,实现跨层级传递。 其中Provide装饰的变…...
Docker 安装 | 部署MySQL 8.x 初始设置
1、准备工作 如果不想看前面的废话请直接右边目录跳到 运行容器 处 默认你已经有 docker 环境。 Windows 推荐 Docker Desktop (下载地址)并基于 WSL2 运行 Docker 环境 mac 推荐 Orbstack (下载地址)(这个很节省资源&…...
linux三剑客之流编辑器sed
sed(stream editor)是Linux和Unix系统中一个非常强大的文本处理工具。它主要用于对文本数据进行过滤和转换。sed 可以在不打开文件的情况下,直接对输入流进行操作,并且可以将结果输出到标准输出或文件。 基本语法: s…...
【Android Studio】上位机-安卓系统手机-蓝牙调试助手
【Android Studio】上位机-安卓系统手机-蓝牙调试助手 文章目录 前言AS官网一、手机配置二、移植工程三、配置四、BUG五、Java语言总结 前言 提示:以下是本篇文章正文内容,下面案例可供参考 AS官网 AS官网 一、手机配置 Android Studio 下真机调试 …...
怎样把学浪购买的课程下载下来
如何把学浪已购买的课程下载下来?这里就教大家一个方法,利用一个工具轻轻松松把视频下载下来 这个工具我打包成压缩包了,有需要的自己取一下 链接:https://pan.baidu.com/s/1y7vcqILToULrYApxfEzj_Q?pwdkqvj 提取码:kqvj --来自百度网盘超级会员V1…...
SD-WAN如何解决更有性价比地跨境网络问题
云桥通SD-WAN利用智能路由和负载均衡技术,优化数据传输路径,提高网络性能和可靠性。这意味着数据在跨国传输时可以更快到达目的地,减少延迟和丢包率。跨境SD-WAN提高了网络连接速度和质量,使用户能够更快地访问跨国业务所需的资源…...
第15章 File类与IO流
一 java.io.File类的使用 1.1 概述 File类及本章下的各种流,都定义在java.io包下。一个File对象代表硬盘或网络中可能存在的一个文件或者文件目录(俗称文件夹),与平台无关。(体会万事万物皆对象)File 能新…...
Python爬虫实战:研究MechanicalSoup库相关技术
一、MechanicalSoup 库概述 1.1 库简介 MechanicalSoup 是一个 Python 库,专为自动化交互网站而设计。它结合了 requests 的 HTTP 请求能力和 BeautifulSoup 的 HTML 解析能力,提供了直观的 API,让我们可以像人类用户一样浏览网页、填写表单和提交请求。 1.2 主要功能特点…...
未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?
编辑:陈萍萍的公主一点人工一点智能 未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战,在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...
超短脉冲激光自聚焦效应
前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应,这是一种非线性光学现象,主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场,对材料产生非线性响应,可能…...
【JVM】- 内存结构
引言 JVM:Java Virtual Machine 定义:Java虚拟机,Java二进制字节码的运行环境好处: 一次编写,到处运行自动内存管理,垃圾回收的功能数组下标越界检查(会抛异常,不会覆盖到其他代码…...
UDP(Echoserver)
网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法:netstat [选项] 功能:查看网络状态 常用选项: n 拒绝显示别名&#…...
【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)
服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...
Yolov8 目标检测蒸馏学习记录
yolov8系列模型蒸馏基本流程,代码下载:这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中,**知识蒸馏(Knowledge Distillation)**被广泛应用,作为提升模型…...
LINUX 69 FTP 客服管理系统 man 5 /etc/vsftpd/vsftpd.conf
FTP 客服管理系统 实现kefu123登录,不允许匿名访问,kefu只能访问/data/kefu目录,不能查看其他目录 创建账号密码 useradd kefu echo 123|passwd -stdin kefu [rootcode caozx26420]# echo 123|passwd --stdin kefu 更改用户 kefu 的密码…...
Python+ZeroMQ实战:智能车辆状态监控与模拟模式自动切换
目录 关键点 技术实现1 技术实现2 摘要: 本文将介绍如何利用Python和ZeroMQ消息队列构建一个智能车辆状态监控系统。系统能够根据时间策略自动切换驾驶模式(自动驾驶、人工驾驶、远程驾驶、主动安全),并通过实时消息推送更新车…...
Ubuntu系统复制(U盘-电脑硬盘)
所需环境 电脑自带硬盘:1块 (1T) U盘1:Ubuntu系统引导盘(用于“U盘2”复制到“电脑自带硬盘”) U盘2:Ubuntu系统盘(1T,用于被复制) !!!建议“电脑…...
