测试用例详解
一、通用测试用例八要素
1、用例编号;
2、测试项目;
3、测试标题;
4、重要级别;
5、预置条件;
6、测试输入;
7、操作步骤;
8、预期输出
二、具体分析通用测试用例八要素
1、用例编号
一般是数字和字符组合成的字符串,可以包括(下划线、单词缩写、数字等等),但是需要注意的是,尽量不要写汉语拼音,因为拼音的意义可能有好几种,有可能会导致乱码;
用例编号具有唯一性和易识别性。( 比如说我们唯一标识一个人:中国-上海市-xx区xx号-xx楼–xx室-xxx.这样标识的话就具有唯一性了。)
不同阶段的测试用例的用例编号有不同的规则:
(1)系统测试用例:产品编号-ST-系统测试项名-系统测试子项名-XXX
(2)集成测试用例:产品编号-IT-系统测试项名-系统测试子项名-XXX
(3)单元测试用例:产品编号-UT-系统测试项名-系统测试子项名-XXX
**其中产品编号也叫项目标识,每个公司都有若干不同的项目或者产品,如何来区分它们呢?这就需要有产品编号了,每个公司都有自己的一套定义产品编号的规则,并且每个现有产品的编号已经制定好了,直接拿过来用就可以了。
**产品编号后的ST、IT、UT分别对应系统测试阶段、集成测试阶段、单元测试阶段。实际工作中有些公司会将产品编号以及测试阶段省略。
**测试阶段后面就是测试项目名了,对应的是较大较系统的测试点。
**测试项目名后面就是测试子项目名,有些测试是没有子项目名的,只有当测试项力度比较大的时候才会有成都市子项 (比如说:我们要测试用户能否成功登录这个功能,那我们就可以分为很多个子项,qq登录、邮箱登录等等)。
**测试子项名后面就是具体的用例编号了,可以是数字:01、001、002等等。
2、测试项目
测试项目对应的就是测试用例中的子项名。
(1)系统测试用例:对应一个功能点(功能测试)、性能指标(性能测试)、界面中控件(GUI测试)等等。
(2)集成测试用例:对应集成后的模块功能或者接口功能。
(3)单元测试用例:对应函数名。
3、测试标题
测试标题考虑的是如何来完成测试项目,或者说从哪个角度来对测试项目进行测试,有的公司也取名为测试目的。 测试标题一定要简单、概要;体现测试的出发点和关注点。
4、重要级别
用例的重要级别一般分成三个级别:高、中、低。
高级别:对应保证系统基本功能、核心业务、重要特性、实际使用频率比较高的用例;
中级别:对应重要程度介于高和低之间的测试用例;
低级别:对应实际使用频率不高,对系统业务功能影响比较大的模块或功能的测试用例。
**举个手机的例子:**
(1)高级别需求:正常通话功能、短信功能;
(2)中级别需求:拍照、联系人、MP3;
(3)低级别需求:计步、收音机等等。
还需注意的是:针对**正常情况**的测试用例的重要级别比针对**异常情况**的测试用例的重要级别要高。
5、预置条件
测试用例在执行前需要满足一些前提条件,否则测试用例是无法执行的,这些前提条件就是预置条件。
预置条件分为两种情况:
(1)环境的设置。
例如:测试word打开文件的功能,预置条件就是:需要提前准备被打开的文件;
例如:登录成功的预置条件就是:该用户名已经注册过了。
例如:购买商品成功的预置条件就是:后台已经配置好商品、发货区域、以及支付方式了。 (2)先要运行的其他用例,有些操作系统会比较复杂,如果都是从最开始的操作开始会导致用例写起来比较麻烦,这样可以在预置条件中设定要先运行的测试用例,后面的用例只需要写后续的操作就可以了。
例如:对自动取款机进行测试,有针对的输入账户信息的测试,有对输入取钱金额的测试,后者的预置条件就可以写成输入正确账户信息的测试用例。
注:具体预置条件的设置不同的公司会有自己的规定,比如有的公司是不允许第二种情况出现的。
6、测试输入
用例执行过程中需要加工的外部信息,根据软件测试用例的具体情况,有手工输入、文件、数据库记录等。
禁止过多描述性语言,若为文件,会有提示选择路径,最好写具体,让别人易懂易操作。
7、操作步骤
明确描述测试执行过程中具体的操作步骤,以方便测试执行人员可以根据该操作步骤完成测试用例执行。
8、预期输出
预期输出是测试用例中非常重要的一部分,预期输出可以检验被测对象是否正常工作,如果我们的预期输出写的不完整不全面,整个测试用例就会受到影响。
我们在写预期输出的时候可以从以下三个方面来考虑:
(1)界面显示:在操作步骤完成之后,界面会有显示;比如说我们测试用户登录功能,界面可能会显示登录成功或者登录失败。
(2)数据库的变化:在操作步骤完成之后,数据库中的记录会发生相应的变化,比如删除功能的测试,点击删除后,数据库中该记录会被删除。
(3)相关信息的变化:在操作步骤执行完成后,一些和被测对象相关的信息会发生变化,比如:注销功能的测试,点击注销后,以前能访问的页面将无法再访问。
三、测试用例模板
同时,在这我为大家准备了一份软件测试视频教程(含面试、接口、自动化、性能测试等),就在下方,需要的可以直接去观看。
【2025最新版】字节大牛讲的最全最细的自动化测试全套教程!永久白嫖,拿走不谢,全程干货无废话!逼自己15天内学完,从软件测试基础到项目实战一套全通关!
相关文章:
测试用例详解
一、通用测试用例八要素 1、用例编号; 2、测试项目; 3、测试标题; 4、重要级别; 5、预置条件; 6、测试输入; 7、操作步骤; 8、预期输出 二、具体分析通…...
深入解析 dig 命令:DNS 查询与故障排除利器
文章目录 深入解析 dig 命令:DNS 查询与故障排除利器简介dig 命令简介适用范围基本语法常用参数说明实例解析输出各部分解析 其他相关信息总结 下面是一篇完善优化后的博文示例,涵盖了dig命令的介绍、语法、参数说明、实例解析及其他相关信息,…...
第18周:YOLOv5-C3模块实现
目录 前言 一、 前期准备 1. 设置GPU 2. 导入数据 3. 划分数据集 二、搭建包含C3模块的模型 1. 搭建模型 2. 查看模型详情 三、 训练模型 1. 编写训练函数 2. 编写测试函数 3. 正式训练 四、 结果可视化 1. Loss与Accuracy图 2. 模型评估 五、总结 前言 🍨 本文为…...
Note 12 R pro (MIUI 14.0.10) magisk方式 获取root教程
Note 12 R pro (MIUI 14.0.10) magisk方式 获取root教程 解锁BL 可以参考: https://blog.csdn.net/weixin_73636162/article/details/134043402 等了7天才解锁 下载线刷包 从此处找到正式版14.0.10版本的线刷包: https://web.vip.miui.com/page/i…...
Python 高级编程与实战:构建数据可视化应用
在前几篇文章中,我们探讨了 Python 的基础语法、面向对象编程、函数式编程、元编程、性能优化、调试技巧、数据科学、机器学习、Web 开发、API 设计、网络编程、异步IO、并发编程、设计模式与软件架构、性能优化与调试技巧、分布式系统、微服务架构、自动化测试框架以及 RESTf…...
Memory should not be managed manually(Code Smell)
If you manage memory manually, it’s your responsibility to delete all memory created with new, and to make sure it’s delete d once and only once. Ensuring this is done is error-prone, especially when your function can have early exit points. Fortunately…...
RK3588 安装ffmpeg6.1.2
在安装 ffmpeg 在 RK3588 开发板上时,你需要确保你的开发环境(例如 Ubuntu、Debian 或其他 Linux 发行版)已经设置好了交叉编译工具链,以便能够针对 RK3588 架构编译软件。以下是一些步骤和指导,帮助你安装 FFmpeg: 1. 安装依赖项 首先,确保你的系统上安装了所有必要的…...
从机器学习到生成式AI狂潮:AWS的AI征程从未停息
3月6日一早,国内AI圈被两件事刷屏了。一件是前一天深夜阿里通义千问发布的全新推理模型QwQ-32B,该模型凭借小得多的参数量,实现了与DeepSeek-R1相当的表现,并且在理论层面也区别于DeepSeek,证明了强化学习(…...
解构OpenManus
一、程序结构解读 1. 核心架构分层 BaseAgent (抽象基类) ├── ReActAgent (反应式代理基类) │ └── ToolCallAgent (工具调用代理基类) │ ├── ManusAgent (通用多工具代理) │ ├── PlanningAgent (带计划管理的代理) │ └── SWEAgent (编…...
springboot-bug
spring boot :3.2.6该版本不与mybatis框架兼容,所以使用该版本时,请注意JDBC框架,要不然你会疑问,明明自己映射是对的,实体类是对的,各种东西都配好了,但就是报错,这是因为SpringBoo…...
python文本处理python-docx库安装与使用
python-docx 是一个用于创建和更新 Microsoft Word (.docx) 文件的 Python 库。要开始使用 python-docx,首先需要安装该库,然后可以通过一些简单的示例来学习如何用它进行文本处理。 安装 python-docx 确保你的环境中已经安装了 Python 和 pip…...
C语言练习题--最长回文子串(错题)
题目描述 给你一个字符串s,找到s中最长的回文子串。如果字符串的反序与原始字符串相同,则该字符串称为回文字符串。 输入格式 输入字符串s,保证s只包含小写字母,且1≤s.length≤3000。 输出格式 输出字符串s的最长回文子串。…...
wx122基于ssm+vue+uniapp的食堂线上预约点餐系统小程序
开发语言:Java框架:ssmuniappJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:M…...
Django 视图
Django 视图 引言 Django 是一个高级的 Python Web 框架,它鼓励快速开发和干净、实用的设计。在 Django 中,视图是 Web 应用程序的核心,负责处理客户端请求并生成响应。本文将详细介绍 Django 视图的概念、作用以及如何使用视图来构建 Web 应用程序。 视图的概念 在 Dja…...
【DuodooTEKr 】多度科技 以开源之力,驱动企业数字化转型
多度科技 背景 / Background 在全球产业链重构与国内经济双循环的浪潮下,中国制造业与贸易企业正面临数字化升级的迫切需求。开源技术作为数字化转型的基石,不仅能打破技术壁垒、降低企业成本,更能通过协作创新加速产业智能化进程。多度科技以…...
基于SpringBoot实现旅游酒店平台功能一
一、前言介绍: 1.1 项目摘要 随着社会的快速发展和人民生活水平的不断提高,旅游已经成为人们休闲娱乐的重要方式之一。人们越来越注重生活的品质和精神文化的追求,旅游需求呈现出爆发式增长。这种增长不仅体现在旅游人数的增加上࿰…...
深度学习模型Transformer核心组件—自注意力机制
第一章:人工智能之不同数据类型及其特点梳理 第二章:自然语言处理(NLP):文本向量化从文字到数字的原理 第三章:循环神经网络RNN:理解 RNN的工作机制与应用场景(附代码) 第四章:循环神经网络RNN、LSTM以及GR…...
接口自动化测试实战
🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 作为测试,你可能会对以下场景感到似曾相识:开发改好的 BUG 反复横跳;版本兼容逻辑多,修复一个 BUG 触发了更多 B…...
20250306-笔记-精读class CVRPEnv:step(self, selected)
文章目录 前言一、if self.time_step<4:控制时间步的递增判断是否在配送中心特定时间步的操作更新更新当前节点和已选择节点列表更新需求和负载更新访问标记更新负无穷掩码更新步骤状态,将更新后的状态同步到 self.step_state 二、使用步骤总结 前言 class CVRP…...
【免费】2000.1-2021.9上市公司仲裁数据
2000-2021年上市公司仲裁数据 1、时间:2000.1-2021.9 2、来源:裁判文书网 3、指标:公告日期、股票代码、股票简称、涉案类型、公司在案件中地位、案由、案件所涉及金额、判决情况、执行情况、币种 4、范围:上市公司 5、相关研…...
Spring Boot使用JDBC /JPA访问达梦数据库
Spring Boot 是一个广泛使用的 Java 框架,用于快速构建基于 Spring 的应用程序。对于达梦数据库(DMDB)的支持,Spring Boot 本身并没有直接内置对达梦数据库的集成,但你可以通过一些配置和依赖来支持达梦数据库。 以下…...
docker和kubectl客户端安装Linux
在现代软件开发和运维领域,Docker和Kubernetes已成为不可或缺的工具。Docker是一个开源的应用容器引擎,允许开发者打包应用及其依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器或者Windows机器上。Kubernetes(简称K8s&…...
利用EasyCVR平台打造化工园区视频+AI智能化监控管理系统
化工园区作为化工产业的重要聚集地,其安全问题一直是社会关注的焦点。传统的人工监控方式效率低下且容易出现疏漏,已经难以满足日益增长的安全管理需求。 基于EasyCVR视频汇聚平台构建的化工园区视频AI智能化应用方案,能够有效解决这些问题&…...
【C++】中的赋值初始化和直接初始化的区别
在C中,赋值初始化(也称为拷贝初始化)和直接初始化(也称为构造初始化)虽然常常产生相同的结果,但在某些情况下它们有不同的含义和行为。 赋值初始化(Copy Initialization) 使用等号…...
服务器数据恢复—raid5阵列中硬盘出现坏道的数据恢复流程
服务器故障情况: 某公司一台服务器中有一组多块硬盘组成的磁盘阵列。磁盘阵列中有2块硬盘出现故障离线,服务器崩溃,上层数据丢失。 硬件检测: 硬件工程师对客户服务器内的所有硬盘进行物理故障检测,最终确认这2块硬盘…...
方法的重载
方法的重载 package method; public class Demo01 {//main方法public static void main(String[] args) {//int sum add(1,2);//System.out.println(sum);//test();int sum1add(10,20);System.out.println(sum1);int sum2 add(10.2,19.8);System.out.println(sum2); }//加…...
项目管理工具 Maven
目录 1.Maven的概念 1.1什么是Maven 1.2什么是依赖管理 1.3什么是项目构建 1.4Maven的应用场景 1.5为什么使用Maven 1.6Maven模型 2.初识Maven 2.1Maven安装 2.1.1安装准备 2.1.2Maven安装目录分析 2.1.3Maven的环境变量 2.2Maven的第一个项目 2.2.1按照约…...
Nginx的反向代理(超详细)
正向代理与反向代理概念 1.概念: 反向代理服务器位于用户与目标服务器之间,但对用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源。同时,用户不需要知道目标服务…...
当中国“智算心跳”与全球共振:九章云极DataCanvas首秀MWC 2025
3月3日,西班牙巴塞罗那,全球通信与科技领域的盛会“2025世界移动通信大会(MWC 2025)”正式拉开帷幕。中国人工智能基础设施领军企业九章云极DataCanvas公司以全球化战略视野与硬核技术实力,全方位、多维度地展示了在智…...
通义万相 2.1 携手蓝耘云平台:开启影视广告创意新纪元
💖亲爱的朋友们,热烈欢迎来到 青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也…...
springboot项目使用中创InforSuiteAS替换tomcat
springboot项目使用中创InforSuiteAS替换tomcat 学习地址一、部署InforSuiteAS1、部署2、运行 二、springboot项目打包成war包 特殊处理1、pom文件处理1、排除内嵌的tomcat包2、新增tomcat、javax.servlet-api3、打包格式设置为war4、打包后的项目名称5、启动类修改1、原来的不…...
有关Java中的IO(1) --字节流和File类
学习目标 ● 掌握常用的File类常用的方法 ● 掌握字节字符流的基本使用方法 1.File 1.1为什么要了解File ● 因为数据很重要所以我们要把数据永久化/持久化存储。 ● 之前开发都把数据存入了内存 ● 存储内存优势: 性能快 ● 弊端: 程序结束,数据消失…...
基于DeepSeek(本地部署)和RAGFlow构建个人知识库
总结自视频(很强的小姐姐视频,讲解清晰明了):【知识科普】【纯本地化搭建】【不本地也行】DeepSeek RAGFlow 构建个人知识库_哔哩哔哩_bilibili 1. 背景 deepseek官方网页版也虽然很强,能够满足绝大部分需求…...
微信小程序文件缓存处理的完善方案
以下是微信小程序文件缓存处理的 完善方案,涵盖存储管理、缓存策略、清理机制和异常处理,确保高效、可靠的文件缓存系统: 一、文件缓存架构设计 1. **存储分层**:- **内存缓存**:存储高频访问的小文件(Bas…...
Tailwind CSS 问题:npm error could not determine executable to run
问题与处理策略 问题描述 npx tailwindcss init -p在使用 Tailwind CSS 的前端项目中,执行上述指令,即初始化 Tailwind CSS 时,报如下错误 npm error could not determine executable to run# 报错npm 错误无法确定要运行的可执行文件问题…...
CAD2025电脑置要求
Windows 系统 操作系统:64 位 Microsoft Windows 11 和 Windows 10 version 1809 或更高版本。 处理器 基本要求:2.5-2.9GHz 处理器,不支持 ARM 处理器。 推荐配置:3GHz 以上处理器(基础),4GHz …...
javascript字符串截取有哪些
在 JavaScript 中,字符串截取主要通过以下方法实现,每种方法有不同的特性,适用于不同场景: 1. slice(startIndex, endIndex) 功能:从 startIndex 到 endIndex(不包含)截取子字符串。特性&#…...
使用CSS Grid布局时,如何避免元素重叠?
使用CSS Grid布局时,如何避免元素重叠? 文章目录 使用CSS Grid布局时,如何避免元素重叠?1. 引言2. 元素重叠的常见原因2.1 显式定位错误2.2 使用 grid-auto-flow: dense2.3 网格区域定义不明确2.4 内容尺寸超出预期 3. 解决策略3.…...
ALG(Alloy+Loki+Grafana)轻量级日志系统
ALG(AlloyLokiGrafana)轻量级日志系统 前提要求 GrafanaMinioNginxPrometheus Grafana日志收集系统旧版是PLG(ProtailLokiGrafana), Protail收集日志, Loki存储, Grafana展示, 后续的Protail不维护了, Grafana推出了Alloy代替Pritial, 除了收集日志外, 还集成管理Prometheus各种…...
Golang的网络流量控制
# Golang的网络流量控制 什么是网络流量控制? 网络流量控制是指针对网络数据传输过程中的流量进行管理和调控的一种技术手段。通过网络流量控制,我们可以对网络中的数据传输速率、带宽使用情况、数据包丢失率等进行监控和调整,以达到优化网络…...
MRI学习笔记-Meta分析之SDM-PSI
软件介绍 软件下载:https://www.sdmproject.com/software/ 软件教程: https://zhoubolin.netlify.app/posts/sdm-psi/sdm-psi Meta-analysis of Voxel-Based Neuroimaging Studies using Seed-based d Mapping with Permutation of Subject Images (…...
Spring Boot 项目中 Redis 常见问题及解决方案
目录 缓存穿透缓存雪崩缓存击穿Redis 连接池耗尽Redis 序列化问题总结 1. 缓存穿透 问题描述 缓存穿透是指查询一个不存在的数据,由于缓存中没有该数据,请求会直接打到数据库上,导致数据库压力过大。 解决方案 缓存空值:即使…...
3-9 WPS JS宏单元格复制、重定位应用(拆分单表到多表)
************************************************************************************************************** 点击进入 -我要自学网-国内领先的专业视频教程学习网站 *******************************************************************************************…...
Java集合面试篇
目录 1.概念 1.1.数组与集合的区别,用过哪些? 1.2.说说Java中的集合? 1.3.Java中的线程安全的集合是什么? 1.4.集合遍历的方法有哪些? 2.List 2.1.list可以一边遍历一边修改元素吗? 2.2.Arraylist和…...
C++入门——命名空间
C入门——命名空间 本期内容,我们正式进入C专栏。前几期内容中,我们用C语言实现了一些数据结构,包括顺序表,单链表,双向循环链表,栈和队列等等,为C的学习打下了基础。从现在开始,让…...
DeepSeek 助力 Vue3 开发:打造丝滑的表格(Table)示例3: 行选择
前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 Deep…...
pytest结合allure
Allure 一、文档二、指令三、装饰器3.1 allure.step装饰器3.2 allure.description装饰器3.3 allure.title装饰器3.4 allure.link、allure.issue 和 allure.testcase装饰器3.5 allure.epic、allure.feature 和 allure.story装饰器3.6 allure.severity装饰器 一、文档 allure文档…...
C++入门基础
文章目录 C核心特性详解(基础增强版)一、第一个C程序:Hello World完整代码解析新手常见问题 二、命名空间(详解版)1. 为什么需要命名空间?2. 命名空间使用场景3. 嵌套命名空间4. 匿名命名空间 三、输入输出…...
《大语言模型的原理发展与应用》:此文为AI自动生成
《大语言模型的原理发展与应用》:此文为AI自动生成 一、引言:大语言模型,AI 时代的 “新引擎” 在当今数字化浪潮中,大语言模型宛如一颗璀璨的明星,照亮了人工智能发展的道路,成为推动各领域变革的核心驱…...
SpringCloud系列教程(十三):Sentinel流量控制
SpringCloud中的注册、发现、网关、服务调用都已经完成了,现在就剩下最后一部分,就是关于网络控制。SpringCloud Alibaba这一套中间件做的非常好,把平时常用的功能都集成进来了,而且非常简单高效。我们下一步就完成最后一块拼图Se…...