软件测试学习笔记-测试用例的编写
7中测试分类
按照阶段可划分单元测试、集成测试、系统测试、验收测试。代码可见度划分黑盒测试、灰盒测试、白盒测试
单元测试:针对源代码的测试
集成测试:针对接口进行测试
系统测试:针对功能和非功能的测试
验收测试:公测、内测
黑盒测试:不关注源代码针对功能测试 如系统测试
白盒测试:针对源代码进行测试 如:单元测试
灰盒测试:针对接口进行测试 如:集成测试
测试流程的6个步骤:
1.需求评审、2. 测试计划、3. 用例设计、4. 用例执行、5. 缺陷管理、6. 测试报告
文章目录
- 测试用例
- 1. 等价类划分法(应对穷举场景)
- 2. 边界值分析法(限定边界规则)
- 3. 判断表法
- 4. 场景法
测试用例
8个组成部分
测试编号 项目_模块_编号
测试标题 预期结果(测试点) 比如 登录失败(账号为空)
项目/模块
优先级 表示用例的重要程序或者影响力p0~p4(p0最高)用户使用最多的功能 p0
前置条件
测试步骤
测试数据
预期结果
1. 等价类划分法(应对穷举场景)
- 明确需求
- 划分有效和无效等价
- 设计数据编写用例
例子:验证QQ账号合法
需求:6~10位自然数
从位数上分为:
有效:8位自然数
无效:5位、11位自然数
其他:
无效:8位非自然数、空
测试用例为:
| 测试编号 | 测试标题 | 项目/模块 | 优先级 | 前置条件 | 测试数据 | 测试步骤 | 预期结果 |
|---|---|---|---|---|---|---|---|
| qq_001 | QQ合法(8位自然数) | qq账号 | p0 | 打开QQ验证程序 | 账号:12345678 | 1. 输入QQ账号 2.点击验证 | QQ合法 |
| qq_002 | QQ不合法(5位自然数) | qq账号 | p1 | 打开QQ验证程序 | 账号:12345 | 1. 输入QQ账号 2.点击验证 | QQ不合法 |
| qq_003 | QQ不合法(11位自然数) | qq账号 | p1 | 打开QQ验证程序 | 账号:12345678910 | 1. 输入QQ账号 2.点击验证 | QQ不合法 |
| qq_004 | QQ不合法(8位非自然数) | qq账号 | p1 | 打开QQ验证程序 | 账号:1234567a | 1. 输入QQ账号 2.点击验证 | QQ不合法 |
| qq_005 | QQ不合法(空) | qq账号 | p1 | 打开QQ验证程序 | 账号:空 | 1. 输入QQ账号 2.点击验证 | QQ不合法 |
例子:电话号码的正确性
需求:
- 区号:空或者三位数字
- 前缀码:非“0”且非“1”开头的三位数字
- 后缀码:四位数字

对应的测试用例如下:
| 测试编号 | 测试标题 | 项目/模块 | 优先级 | 前置条件 | 测试数据 | 测试步骤 | 预期结果 |
|---|---|---|---|---|---|---|---|
| 电话_001 | 电话号码合法(区号为空+其他正常) | 电话号码 | p0 | 打开电话号码验证程序 | 区号:空 前缀:234 后缀:1234 | 1. 输入区号 2. 输入前缀 3.输入后缀 4. 点击验证 | 电话号码合法 |
| 电话_002 | 电话号码合法(区号为三位数字+其他正常) | 电话号码 | p0 | 打开电话号码验证程序 | 区号:123 前缀:234 后缀:1234 | 1. 输入区号 2. 输入前缀 3.输入后缀 4. 点击验证 | 电话号码合法 |
| 电话_003 | 电话号码不合法(区号为非三位数字+其他正常) | 电话号码 | p1 | 打开电话号码验证程序 | 区号:1234 前缀:234 后缀:1234 | 1. 输入区号 2. 输入前缀 3.输入后缀 4. 点击验证 | 电话号码不合法 |
| 电话_004 | 电话号码不合法(前缀为非0且非1开头的非三位数字+其他正常) | 电话号码 | p1 | 打开电话号码验证程序 | 区号:123 前缀:2345 后缀:1234 | 1. 输入区号 2. 输入前缀 3.输入后缀 4. 点击验证 | 电话号码不合法 |
| 电话_005 | 电话号码不合法(后缀为非四位数字+其他正常) | 电话号码 | p1 | 打开电话号码验证程序 | 区号:123 前缀:234 后缀:234 | 1. 输入区号 2. 输入前缀 3.输入后缀 4. 点击验证 | 电话号码不合法 |
| 电话_006 | 电话号码不合法(区号为非数字+其他正常) | 电话号码 | p1 | 打开电话号码验证程序 | 区号:12a 前缀:234 后缀:1234 | 1. 输入区号 2. 输入前缀 3.输入后缀 4. 点击验证 | 电话号码不合法 |
| 电话_007 | 电话号码不合法(前缀为非数字+其他正常) | 电话号码 | p1 | 打开电话号码验证程序 | 区号:123 前缀:23a 后缀:1234 | 1. 输入区号 2. 输入前缀 3.输入后缀 4. 点击验证 | 电话号码不合法 |
| 电话_008 | 电话号码不合法(后缀为非数字+其他正常) | 电话号码 | p1 | 打开电话号码验证程序 | 区号:123 前缀:234 后缀:123a | 1. 输入区号 2. 输入前缀 3.输入后缀 4. 点击验证 | 电话号码不合法 |
| 电话_009 | 电话号码不合法(前缀以0开头+其他正常) | 电话号码 | p1 | 打开电话号码验证程序 | 区号:123 前缀:023 后缀:1234 | 1. 输入区号 2. 输入前缀 3.输入后缀 4. 点击验证 | 电话号码不合法 |
| 电话_010 | 电话号码不合法(前缀以1开头+其他正常) | 电话号码 | p1 | 打开电话号码验证程序 | 区号:123 前缀:123 后缀:1234 | 1. 输入区号 2. 输入前缀 3.输入后缀 4. 点击验证 | 电话号码不合法 |
使用场景:需要大量测试数据输入,但是没法穷举测试的地方
- 输入框
- 下拉列表
- 单选复选框
2. 边界值分析法(限定边界规则)
解决边界值位数限制问题
选取正好等于、刚好大于、刚好小于边界的值作为测试数据
上点:边界上的点(正好等于)
离点:距离上点最近的点(刚好大于、刚好小于)
内点:范围内的点(区间范围内的数据)
最多:7点(不考虑类型,按照位数)
步骤:
- 明确需求
- 确定有效和无效等价类(只考虑类型)
- 确定边界范围值
- 提取数据编写测试用例
例子:
需求:通过边界值法验证标题长度的合法性。
要求:标题长度大于0,小于等于30个字符
有效:长度大于0小于或等于30的字符
无效:长度大于0小于或等于30的数字
上点:0,30
离点:-1,1,29,31
内点:15
总共7种,长度没有为-1的,且内点为15和有效重复

优化:离点–>考虑开闭区间,开区间选择内部离点,闭区间选择外部离点
使用场景:
- 在等价类的基础上针对有边界范围的测试数据输入的地方(重点关注边界)
- 常见词语描述:大小、尺寸、重量、最大、最小、至多、至少等修饰词语
- 典型代表:有边界范围的输入框类测试
3. 判断表法
场景:多条件有依赖关系
是一种以表格形式表示多条件逻辑判断的工具
组成:
- 条件桩:列出问题中的所有条件,列出条件的次序无关紧要
- 动作桩:列出问题中可能采取的操作,操作的排列顺序没有约束
- 条件项:列出条件对应的取值,所有可能情况下的真假值
- 动作项:列出条件项的、各种取值情况下应该采取的动作结果
例子:验证”若用户欠费或者关机,则不允许主被叫“功能的测试

规则:
- 判断表中贯穿条件项和动作项的一列就是一条规则
- 假设有n个条件,每个条件的取值有两个,全部组合为2的n次方种规则
步骤:
- 明确需求
- 画出判定表
1) 列出条件桩和动作桩
2)填写条件项,对条件进行全组合
3)根据条件项和组合确定动作项
4)简化、合并相似规则(有相同动作) - 根据规则编写测试用例
例子1:

条件桩:金额是否大于500、是否过期
动作项:发出批准单和提货单、发出通知单

测试用例:
| 测试编号 | 测试标题 | 项目/模块 | 优先级 | 前置条件 | 测试数据 | 测试步骤 | 预期结果 |
|---|---|---|---|---|---|---|---|
| order_001 | 发通知单(金额大于500,过期) | 订单 | p0 | 打开订单验证程序 | 1. 金额:600 2.是否过期:是 | 1. 输入金额 2. 输入是否过期 3. 点击验证 | 发通知单,不发批准单和提货单 |
| order_002 | 发批准单和提货单(金额大于500,没有过期) | 订单 | p0 | 打开订单验证程序 | 1. 金额:600 2.是否过期:否 | 1. 输入金额 2. 输入是否过期 3. 点击验证 | 不发通知单,发批准单和提货单 |
| order_003 | 发批准单和提货单、通知单(金额小于500,过期) | 订单 | p0 | 打开订单验证程序 | 1. 金额:400 2.是否过期:是 | 1. 输入金额 2. 输入是否过期 3. 点击验证 | 发通知单,发批准单和提货单 |
| order_004 | 发批准单和提货单(金额小于500,没有过期) | 订单 | p0 | 打开订单验证程序 | 1. 金额:400 2.是否过期:否 | 1. 输入金额 2. 输入是否过期 3. 点击验证 | 不发通知单,发批准单和提货单 |
例子2:
文件修改规则

条件桩:第一列为A或者B、第二列是数字
动作桩:给出信息L、给出信息M、修改文件成功

4. 场景法
使用标准图和箭头来表达程序或业务的走向(流程图)
先测试业务,再测试单功能,单模块,单页面

例子:ATM机取款流程


对应的测试用例

相关文章:
软件测试学习笔记-测试用例的编写
7中测试分类 按照阶段可划分单元测试、集成测试、系统测试、验收测试。代码可见度划分黑盒测试、灰盒测试、白盒测试 单元测试:针对源代码的测试 集成测试:针对接口进行测试 系统测试:针对功能和非功能的测试 验收测试:公测、内测…...
『运维备忘录』之 Kubernetes(K8S) 常用命令速查
一、简介 kubernetes,简称K8s,是用8代替名字中间的8个字符“ubernete”而成的缩写,是一个开源的,用于管理云平台中多个主机上的容器化的应用。kubernetes是基于容器技术的分布式架构解决方案,具有完备的集群管理能力&a…...
Android SDK 上传 Maven 喂奶级教程
最近领导给安排了个任务,让我把我们现有的一个 SDK 上传到 Maven 上去,方便客户直接用 gradle 依赖,不再需要拷贝 jar 和 so 了,此前我也看过一些相关的文章我想问题也不大,觉得工作量也就一两天的事情,主要…...
R语言绘图教程 | 双侧条形图绘制教程
写在前面 双侧条形图在我们的文章中也是比较常见的,那么这样的图形是如何绘制的呢? 以及它使用的数据类型是什么呢? 这些都是我们在绘制图形前需要掌握的,至少我们知道绘图的数据集如何准备,这样才踏出第一步。 今天的教程,我们会从数据的准备,以及数据如何整理,以及…...
ubuntu篇---ubuntu安装python3.9
ubuntu篇—ubuntu安装python3.9 在ubuntu上安装Python有两种方法:在线安装和源码编译安装。 方法1:使用apt在线安装 1.更新软件包列表并安装必备组件: $ sudo apt update $ sudo apt install software-properties-common2.将Deadsnakes PPA添加到系统…...
git初始化一个远程空仓库
目录 1. 仅做简单初始化2. 推送现有的非仓库文件夹3. 推送现有的仓库 git初始化一个远程空仓库主要有以下三种途径: 仅做简单初始化,例如添加 README.md 和 .gitignore。将现有的文件夹(非仓库)推送到远程仓库。将现有的仓库推送…...
装箱问题+宠物小精灵之收服+数字组合——01背包
一、装箱问题 (裸题) 有一个箱子容量为 V,同时有 n 个物品,每个物品有一个体积(正整数)。 要求 n 个物品中,任取若干个装入箱内,使箱子的剩余空间为最小。 输入 第一行是一个整数 V (0 < V ≤ 20000)&…...
记一次页面接口502问题:“502 Bad Gateway”
接收别人的项目进行迭代,项目部署到服务器上之后,有一个接口数据刷不出来,一直502 后来联想到网关的问题,想通过设置白名单的方式解决,设置之后依旧不行。 查看nginx日志发现报错: *169 connect() failed …...
Oracle systemstate、gdb、dbx介绍
当数据库出现严重的性能问题或者hang了的时候, 可能最常用的办法就是重启数据库,简单有效解决问题;但是重启后如何追踪问题的根本原因成了难题,很多信息随着重启也消失不见了,让追查问题变的十分棘手,这时就…...
Stable Diffusion 模型下载:RealCartoon-Anime - V10
文章目录 模型介绍生成案例案例一案例二案例三案例四案例五案例六案例七案例八案例九案例十下载地址模型介绍 这个检查点是从 RealCartoon3D 检查点分支出来的。它的目标是产生更多的“动漫”风格,因为我喜欢动漫。:)我知道有很多人做得很好(...
课时22:内置变量_字符串相关
2.4.2 字符串相关 学习目标 这一节,我们从 基础知识、简单实践、小结 三个方面来学习 基础知识 字符串相关的变量解析 字符串计数${#file} 获取字符串的长度字符串截取 - 语法为${var:pos:length} 表示对变量var从pos开始截取length个字符,pos为…...
软件应用实例分享,电玩计时计费怎么算,佳易王PS5游戏计时器系统程序教程
软件应用实例分享,电玩计时计费怎么算,佳易王PS5游戏计时器系统程序教程 一、前言 以下软件教程以 佳易王电玩计时计费管理系统软件V17.9为例说明 软件文件下载可以点击最下方官网卡片——软件下载——试用版软件下载 点击开始计时后,图片…...
架设游戏服务器租用价格?腾讯云和阿里云价格对比
游戏服务器租用多少钱一年?1个月游戏服务器费用多少?阿里云游戏服务器26元1个月、腾讯云游戏服务器32元,游戏服务器配置从4核16G、4核32G、8核32G、16核64G等配置可选,可以选择轻量应用服务器和云服务器,阿腾云atengyu…...
ag-Grid:对数据变化的单元格进行高亮显示
对单元格高亮 问:ag-grid 当 rowData 数据变化,如何对数据变化的党员个进行高亮? 解析: 在ag-Grid中,想要对数据变化的单元格进行高亮显示,你可以使用以下步骤来实现: 监听数据变化:首先,你需要监听rowData的变化。这可以通过在你的组件中观察rowData属性的变化来实…...
Oracle 几种行转列的方式 sum+decode sum+case when pivot
目录 原始数据: 方式一: 方式二: 方式三: unpivot的使用: 原始数据: 方式一: select t_name,sum(decode(t_item, item1, t_num, 0)) item1,sum(decode(t_item, item2, t_num, 0)) item2,s…...
[AIGC] Tomcat:一个简单 and 高效的 Java Web 服务器
Tomcat(Tomcat Server)是 Apache 基金会下的一个开源项目,它是一个简单 and 高效的 Java Web 服务器,支持 Servlet 2.5、JSP 2.2 和 EL 2.2 规范。Tomcat 是当今最受欢迎的 Java Web 服务器之一,它在 Java 世界中被广泛…...
鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Toggle组件
鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Toggle组件 一、操作环境 操作系统: Windows 10 专业版、IDE:DevEco Studio 3.1、SDK:HarmonyOS 3.1 二、Toggle组件 组件提供勾选框样式、状态按钮样式及开关样式。 子组件 仅当Toggl…...
使用耳机壳UV树脂制作私模定制耳塞有哪些选择呢?
私模定制耳塞人士的选择可以从以下几个方面考虑: 专业经验:选择有丰富经验的私模定制耳塞人士,能够更好地理解用户需求,提供更专业的建议和服务。可以通过查看其作品和客户评价来了解其经验和口碑。材料质量:选择使用…...
什么是集群服务器
近一段时间来,集群服务器被广大站长热议,所谓集群服务器就是指很多台服务器把它们集中在一起来进行同一种服务。集群服务器也可以由很多个的计算机并行去计算,这样可以获得非常高的计算速度,提升服务器整体的工作效. 其实我们都知…...
HCIA-HarmonyOS设备开发认证V2.0-3.轻量系统内核基础
目录 一、前言二、LiteOS-M系统概述三、内核框架3.1、CMSIS 和 POSIX 整体架构3.2、LiteOS-M内核启动流程 四、内核基础4.1、任务管理4.2、时间管理(待续)4.3、中断管理(待续)4.4、软件定时器(待续) 五、内存管理5.1、静态内存(待续)5.2、动态内存(待续) 六、内核通信机制6.1、…...
边缘计算医疗风险自查APP开发方案
核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...
linux 错误码总结
1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...
ffmpeg(四):滤镜命令
FFmpeg 的滤镜命令是用于音视频处理中的强大工具,可以完成剪裁、缩放、加水印、调色、合成、旋转、模糊、叠加字幕等复杂的操作。其核心语法格式一般如下: ffmpeg -i input.mp4 -vf "滤镜参数" output.mp4或者带音频滤镜: ffmpeg…...
sqlserver 根据指定字符 解析拼接字符串
DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...
新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案
随着新能源汽车的快速普及,充电桩作为核心配套设施,其安全性与可靠性备受关注。然而,在高温、高负荷运行环境下,充电桩的散热问题与消防安全隐患日益凸显,成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...
现代密码学 | 椭圆曲线密码学—附py代码
Elliptic Curve Cryptography 椭圆曲线密码学(ECC)是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础,例如椭圆曲线数字签…...
leetcodeSQL解题:3564. 季节性销售分析
leetcodeSQL解题:3564. 季节性销售分析 题目: 表:sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...
Axios请求超时重发机制
Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式: 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...
让回归模型不再被异常值“带跑偏“,MSE和Cauchy损失函数在噪声数据环境下的实战对比
在机器学习的回归分析中,损失函数的选择对模型性能具有决定性影响。均方误差(MSE)作为经典的损失函数,在处理干净数据时表现优异,但在面对包含异常值的噪声数据时,其对大误差的二次惩罚机制往往导致模型参数…...
深度学习水论文:mamba+图像增强
🧀当前视觉领域对高效长序列建模需求激增,对Mamba图像增强这方向的研究自然也逐渐火热。原因在于其高效长程建模,以及动态计算优势,在图像质量提升和细节恢复方面有难以替代的作用。 🧀因此短时间内,就有不…...

