软件测试学习笔记-测试用例的编写
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、…...
基于算法竞赛的c++编程(28)结构体的进阶应用
结构体的嵌套与复杂数据组织 在C中,结构体可以嵌套使用,形成更复杂的数据结构。例如,可以通过嵌套结构体描述多层级数据关系: struct Address {string city;string street;int zipCode; };struct Employee {string name;int id;…...
LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明
LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造,完美适配AGV和无人叉车。同时,集成以太网与语音合成技术,为各类高级系统(如MES、调度系统、库位管理、立库等)提供高效便捷的语音交互体验。 L…...
三维GIS开发cesium智慧地铁教程(5)Cesium相机控制
一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点: 路径验证:确保相对路径.…...
工业自动化时代的精准装配革新:迁移科技3D视觉系统如何重塑机器人定位装配
AI3D视觉的工业赋能者 迁移科技成立于2017年,作为行业领先的3D工业相机及视觉系统供应商,累计完成数亿元融资。其核心技术覆盖硬件设计、算法优化及软件集成,通过稳定、易用、高回报的AI3D视觉系统,为汽车、新能源、金属制造等行…...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现录音机应用
1. 项目配置与权限设置 1.1 配置module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.MICROPHONE","reason": "录音需要麦克风权限"},{"name": "ohos.permission.WRITE…...
(转)什么是DockerCompose?它有什么作用?
一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用,而无需手动一个个创建和运行容器。 Compose文件是一个文本文件,通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...
是否存在路径(FIFOBB算法)
题目描述 一个具有 n 个顶点e条边的无向图,该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序,确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数,分别表示n 和 e 的值(1…...
Maven 概述、安装、配置、仓库、私服详解
目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...
BLEU评分:机器翻译质量评估的黄金标准
BLEU评分:机器翻译质量评估的黄金标准 1. 引言 在自然语言处理(NLP)领域,衡量一个机器翻译模型的性能至关重要。BLEU (Bilingual Evaluation Understudy) 作为一种自动化评估指标,自2002年由IBM的Kishore Papineni等人提出以来,…...
【从零开始学习JVM | 第四篇】类加载器和双亲委派机制(高频面试题)
前言: 双亲委派机制对于面试这块来说非常重要,在实际开发中也是经常遇见需要打破双亲委派的需求,今天我们一起来探索一下什么是双亲委派机制,在此之前我们先介绍一下类的加载器。 目录 编辑 前言: 类加载器 1. …...

