当前位置: 首页 > article >正文

编写测试用例

测试用例(Test Case)是用于测试系统的要素集合

目录

编写测试用例作用

编写测试用例要包含七大元素

测试用例的设计方法

1、等价类法

2、边界值法

3、正交表法     

4、判定表法

5、错误推测法

6、场景法


编写测试用例作用

1、确保功能全面覆盖,避免遗漏

2、量化测试覆盖率,明确测试进度

3、支持自动化回归测试,提升版本迭代效率

4、消除冗余测试,优化测试资源分配

编写测试用例要包含七大元素

用例编号、用例标题、测试模块、前置条件、测试数据、测试步骤、预期结果

测试用例的设计方法
1、等价类法

等价类法就是将输入域分为多个等价类,同一等价类的输入产生相同的输出,测试时从等价类中选取一个代表作为测试用例。若该用例通过,即认为整个等价类测试通过。以此用较少的测试用例实现高效的功能覆盖,突破了穷举法的局限,减少冗余用例,提高测试效率。

很明显,这种方法适合于测试数据存在逻辑分组的情况,比如说有个系统要求用户输入年龄,有效范围是18~60岁,那么就可以据此划分等价类,根据等价类编写测试用例

2、边界值法

值得注意的是通常边界值附近往往是缺陷高发区,比如数据溢出、越界访问、逻辑判断。而边界值法就是对输入域的边界值进行测试,检查程序在处理边界情况时可能出现的错误。所以边界值法通常是和等价类法配合使用的,以确保输入域的全面覆盖。

对于上面“系统要求用户输入年龄,有效范围是18~60岁”分析边界值、次边界值。其中次边界值是根据边界值的有效性而定的,若边界值无效则此边界值就为有效值,反之亦然。

假定要求的年龄范围为[18,60],根据边界值、此边界值补充等价类法中编写的测试用例

3、正交表法     

正交表中每个因素的每个水平出现次数一样,而且不同因素的水平组合均匀分布,这样选出来的测试用例组合能代表各种情况,不会集中在某些特定组合上

等价类法和边界值法都是针对单个输入条件进行测试,但是像登录这种功能就需要填写账号、密码等多种输入条件,正交表法就可以解决多因素多水平的组合测试问题,可以减少测试用例数量,同时保证对交互作用的覆盖。

具体操作步骤:

1)excel填写因素和水平

2)在allpairs.exe同级目录下创建文本文件a.txt,直接复制粘贴excel表格中的内容保存并退出

3)在该目录下打开cmd执行命令生成正交表:allpairs.exe a.txt>zhengjiaobiao.txt

4、判定表法

判定表法则是用于测试多条件组合和对应动作之间的逻辑关系,确保所有可能的业务规则分支被覆盖。核心要素包括条件桩、动作桩、条件项、动作项。

具体操作步骤是,首先确认输入条件和输出条件并找出两者之间的关系,然后画出判定表

比方说一段判定三角形类型,输入三边a,b,c

5、错误推测法

基于经验猜测和对系统的了解、常见错误类型等可能出错的地方设计测试用例

6、场景法

这是我在设计测试用例时习惯性使用的方法,场景法即模拟软件使用中的各种场景,每个场景由一系列相关的步骤组成,通过覆盖各种正常和异常的场景发现系统中可能会出现的问题

首先是确定基本流和备选流,根据两者编写测试用例

比如通过邮箱接收验证码实现注册功能,就可以画出下面基本流,与因每一步骤出现异常情况而形成的备选流

 由此可写出测试用例

1)输入正确的账号密码,点击注册后系统发出确认邮件,并且用户在24h内确认:注册成功

2)输入异常的账号密码(各种异常情况,比如不输入、输入部分、输入超长、输入超短、输入特殊字符、输入emoji、输入敏感信息,两者各种的组合情况,比如不输入账号、输入密码等等都要写,但因为这里我主要想说场景法就先省略了 ..>o<..)

3)在点击注册后系统发送确认邮件时出现网络异常:发送邮件失败或者用户未接收到邮件,或客户端收到邮件但服务端发送状态失败

4)系统发送确认邮件后,用户未在24h内点击确认:注册失败,用户需重新输入账号密码点击注册

5)系统发送确认邮件后,用户未在24h内点击确认,而后重新注册,系统再次发送确认邮件,但用户确认旧的确认邮件:页面无响应,一直等待

相关文章:

编写测试用例

测试用例&#xff08;Test Case&#xff09;是用于测试系统的要素集合 目录 编写测试用例作用 编写测试用例要包含七大元素 测试用例的设计方法 1、等价类法 2、边界值法 3、正交表法 4、判定表法 5、错误推测法 6、场景法 编写测试用例作用 1、确保功能全面覆盖…...

解释程序(Python)不需要生成机器码 逐行解析 逐行执行

在计算机组成原理中&#xff0c;解释程序&#xff08;Interpreter&#xff09;通常不会生成独立的机器码&#xff0c;但具体情况取决于解释器的实现方式。以下是详细分析&#xff1a; 1. 传统解释程序&#xff1a;不生成机器码 直接逐行执行&#xff1a; 经典的解释器&#xff…...

每日Prompt:隐形人

提示词 黑色棒球帽&#xff0c;白色抹胸、粉色低腰短裙、白色襪子&#xff0c;黑色鞋子&#xff0c;粉紅色背包&#xff0c;衣服悬浮在空中呈现动态姿势&#xff0c;虚幻引擎渲染风格&#xff0c;高清晰游戏CG质感&#xff0c;户外山林背景&#xff0c;画面聚焦在漂浮的衣服上…...

TensorFlow深度学习实战(19)——受限玻尔兹曼机

TensorFlow深度学习实战&#xff08;19&#xff09;——受限玻尔兹曼机 0. 前言1. 受限玻尔兹曼机1.1 受限玻尔兹曼机架构1.2 受限玻尔兹曼机的数学原理 2. 使用受限玻尔兹曼机重建图像3. 深度信念网络小结系列链接 0. 前言 受限玻尔兹曼机 (Restricted Boltzmann Machine, RB…...

告别手动绘图!基于AI的Smart Mermaid自动可视化图表工具搭建与使用指南

以下是对Smart Mermaid的简单介绍&#xff1a; 一款基于 AI 技术的 Web 应用程序&#xff0c;可将文本内容智能转换为 Mermaid 格式的代码&#xff0c;并将其渲染成可视化图表可以智能制作流程图、序列图、甘特图、状态图等等&#xff0c;并且支持在线调整、图片导出可以Docke…...

【Oracle】安装单实例

个人主页&#xff1a;Guiat 归属专栏&#xff1a;Oracle 文章目录 1. 安装前的准备工作1.1 硬件和系统要求1.2 检查系统环境1.3 下载Oracle软件 2. 系统配置2.1 创建Oracle用户和组2.2 配置内核参数2.3 配置用户资源限制2.4 安装必要的软件包 3. 目录结构和环境变量3.1 创建Ora…...

C++测开,自动化测试,业务(第一段实习)

目录 &#x1f33c;前言 一&#xff0c;实习经历怎么写简历 &#x1f339;业务理解 &#x1f382;结构化表达 二&#xff0c;实习 &#x1f982;技术和流程卡点 &#x1f511;实习收获 / 代码风格 三&#xff0c;测试理论&#xff0c;用例设计&#xff0c;工具链 &…...

QT中更新或添加组件时出现“”qt操作至少需要一个处于启用状态的有效资料档案库“解决方法”

在MaintenanceTool.exe中点击下一步 第一个&#xff1a; 第二个&#xff1a; 第三个&#xff1a; 以上任意一个放入资料库中...

论文速读《UAV-Flow Colosseo: 自然语言控制无人机系统》

论文链接&#xff1a;https://arxiv.org/abs/2505.15725项目主页&#xff1a;https://prince687028.github.io/UAV-Flow/ 0. 简介 近年来&#xff0c;无人机技术蓬勃发展&#xff0c;但如何让无人机像智能助手一样理解并执行人类语言指令&#xff0c;仍是一个前沿挑战。现有研…...

ES6+中Promise 中错误捕捉详解——链式调用catch()或者async/await+try/catch

通过 unhandledrejection 捕捉未处理的 Promise 异常&#xff0c;手动将其抛出&#xff0c;最终让 window.onerror 捕捉&#xff0c;从而统一所有异常的处理逻辑 规范代码&#xff1a;catch&#xff08;onRejected&#xff09;、async...awaittry...catch 在 JavaScript 的 Pro…...

CDN安全加速:HTTPS加密最佳配置方案

CDN安全加速的HTTPS加密最佳配置方案需从证书管理、协议优化、安全策略到性能调优进行全链路设计&#xff0c;以下是核心实施步骤与注意事项&#xff1a; ​​一、证书配置与管理​​ ​​证书选择与格式​​ ​​证书类型​​&#xff1a;优先使用受信任CA机构颁发的DV/OV/EV证…...

解常微分方程组

Euler法 function euler_method % 参数设置 v_missile 450; % 导弹速度 km/h v_enemy 90; % 敌艇速度 km/h % 初始条件 x0 0; % 导弹初始位置 x y0 0; % 导弹初始位置 y xe0 120; % 敌艇初始位置 y t0 0; % 初始时间 % 时间步长和总时间 dt 0.01; % 时间步长 t_final …...

C++实现汉诺塔游戏自动完成

目录 一、汉诺塔的规则二、数学递归推导式三、步骤实现(一)汉诺塔模型(二)递归实现(三)显示1.命令行显示2.SDL图形显示 四、处理用户输入及SDL环境配置五、总结六、源码下载 一、汉诺塔的规则 游戏由3根柱子和若干大小不一的圆盘组成&#xff0c;初始状态下&#xff0c;所有的…...

在 ABP VNext 中集成 Serilog:打造可观测、结构化日志系统

&#x1f680; 在 ABP VNext 中集成 Serilog&#xff1a;打造可观测、结构化日志系统 &#x1f4da; 目录 &#x1f680; 在 ABP VNext 中集成 Serilog&#xff1a;打造可观测、结构化日志系统1. 为什么要使用结构化日志&#xff1f; &#x1f914;2. 核心集成步骤 &#x1f6e…...

pikachu靶场通关笔记07 XSS关卡03-存储型XSS

目录 一、XSS 二、存储型XSS 三、源码分析 四、渗透实战 1、输入mooyuan试一试 2、注入Payload 3、查看数据库 4、再次进入留言板页面 本系列为通过《pikachu靶场通关笔记》的XSS关卡(共10关&#xff09;渗透集合&#xff0c;通过对XSS关卡源码的代码审计找到XSS风险的…...

GitLab CI、GitHub Actions和Jenkins进行比较

特性/工具JenkinsGitLab CIGitHub Actions架构设计哲学Master/Agent分布式架构&#xff0c;通过插件扩展功能代码与CI/CD强耦合&#xff0c;内置Git仓库&#xff0c;基于Runner注册机制事件驱动&#xff0c;与GitHub深度集成&#xff0c;基于虚拟机的Job执行单元核心运行机制支…...

strcat及其模拟实现

#define _CRT_SECURE_NO_WARNINGS strcat 追加字符串 str "string"&#xff08;字符串&#xff09; cat "concatenate"&#xff08;连接 / 追加&#xff09; char* strcat(char* destination, const char* source); strcat的应用 方法一&#xff…...

OpenCV CUDA模块直方图计算------用于在 GPU 上执行对比度受限的自适应直方图均衡类cv::cuda::CLAHE

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 cv::cuda::CLAHE 是 OpenCV 的 CUDA 模块中提供的一个类&#xff0c;用于在 GPU 上执行对比度受限的自适应直方图均衡&#xff08;Contrast Limi…...

华为OD机试真题——矩形绘制(2025A卷:200分)Java/python/JavaScript/C/C++/GO最佳实现

2025 A卷 200分 题型 本专栏内全部题目均提供Java、python、JavaScript、C、C++、GO六种语言的最佳实现方式; 并且每种语言均涵盖详细的问题分析、解题思路、代码实现、代码详解、3个测试用例以及综合分析; 本文收录于专栏:《2025华为OD真题目录+全流程解析+备考攻略+经验分…...

通义开源视觉感知多模态 RAG 推理框架 VRAG-RL:开启多模态推理新时代

通义实验室的自然语言智能团队&#xff0c;凭借深厚的技术积累与创新精神&#xff0c;成功研发并开源了视觉感知多模态 RAG 推理框架 VRAG-RL&#xff0c;为 AI 在复杂视觉信息处理领域带来了重大突破。 传统 RAG 方法的局限 传统的检索增强型生成&#xff08;RAG&#xff0…...

爬虫入门:从基础到实战全攻略

&#x1f9e0; 一、爬虫基础概念 1.1 爬虫定义 爬虫&#xff08;Web Crawler&#xff09;是模拟浏览器行为&#xff0c;自动向服务器发送请求并获取响应数据的一种程序。主要用于从网页中提取结构化数据&#xff0c;供后续分析、展示或存储使用。 1.2 爬虫特点 数据碎片化&…...

qemu安装risc-V 64

参考这篇文章https://developer.aliyun.com/article/1323996&#xff0c;其中在wsl下面安装可能会报错环境变量中有空格。 # clean_path.sh#!/bin/bash# 备份旧 PATH OLD_PATH"$PATH"# 过滤掉包含空格、制表符、换行的路径 CLEAN_PATH"" IFS: read -ra PA…...

JDBC连不上mysql:Unable to load authentication plugin ‘caching_sha2_password‘.

最近为一个spring-boot项目下了mysql-9.3.0&#xff0c;结果因为mysql版本太新一直报错连不上。 错误如下&#xff1a; 2025-06-01 16:19:43.516 ERROR 22088 --- [http-nio-8080-exec-2] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispat…...

AsyncIOScheduler与BackgroundScheduler的线程模型对比

1. BackgroundScheduler的线程机制‌ ‌多线程模型‌&#xff1a;BackgroundScheduler基于线程池执行任务&#xff0c;默认通过ThreadPoolExecutor创建独立线程处理任务&#xff0c;每个任务运行在单独的线程中&#xff0c;主线程不会被阻塞。‌适用场景‌&#xff1a;适合同步…...

Python+MongoDb使用手册(精简)

这里是学了下面链接的内容&#xff0c;加上一些自己学习的内容综合的&#xff0c;大家也可以去看看这篇文章&#xff0c;写的特别好 【python】在Python中操作MongoDB的详细用法教程与实战案例分享_python轻松入门&#xff0c;基础语法到高阶实战教学-CSDN专栏 1 库&#xff1…...

前端面经 协商缓存和强缓存

HHTTPTTP缓存 协商缓存和强缓存 核心区别是否向服务器发起请求验证资源过期 强缓存 浏览器直接读取本地缓存,不发请求 HTTP响应头 Cache-Control:max-age3600资源有效期 Expires优先级低 如果有效浏览器返回200(浏览器换伪造的200) 应用静态资源 协商缓存 OK如果 1强缓…...

MacOS安装Docker Desktop并汉化

1. 安装Docker Desktop 到Docker Desktop For Mac下载对应系统的Docker Desktop 安装包&#xff0c;下载后安装&#xff0c;没有账号需要注册&#xff0c;然后登陆即可。 2. 汉化 前往汉化包下载链接下载对应系统的.asar文件 然后将安装好的文件覆盖原先的文件app.asar文件…...

Centos系统搭建主备DNS服务

目录 一、主DNS服务器配置 1.安装 BIND 软件包 2.配置主配置文件 3.创建正向区域文件 4.创建区域数据文件 5.检查配置语法并重启服务 二、从DNS服务配置 1.安装 BIND 软件包 2.配置主配置文件 3.创建缓存目录 4.启动并设置开机自启 一、主DNS服务器配置 1.安装 BIN…...

VUE项目部署IIS服务器手册

IIS部署Vue项目完整手册 &#x1f4cb; 目录 基础概念准备工作Vue项目构建web.config详解IIS部署步骤不同场景配置常见问题实用配置模板 基础概念 Vue单页应用&#xff08;SPA&#xff09;工作原理 重要理解&#xff1a;Vue项目是单页应用&#xff0c;这意味着&#xff1a;…...

使用 HTML + JavaScript 实现在线考试系统

在现代的在线教育平台中&#xff0c;在线考试系统是不可或缺的一部分。本文将通过一个完整的示例&#xff0c;演示如何使用 HTML、CSS 和 JavaScript 构建一个支持多种题型的在线考试系统。 效果演示 项目概述 本项目主要包含以下核心功能&#xff1a; 支持4种常见题型&…...