目录
[一、测试用例:不止是 "操作步骤",更是测试的 "施工图"](#一、测试用例:不止是 “操作步骤”,更是测试的 “施工图”)
[1.1 什么是测试用例?------ 定义与核心要素](#1.1 什么是测试用例?—— 定义与核心要素)
[1.2 为什么一定要写测试用例?------ 那些被忽略的核心价值](#1.2 为什么一定要写测试用例?—— 那些被忽略的核心价值)
[二、设计测试用例的思维革命:常规 + 逆向 + 发散,告别 "点状测试"](#二、设计测试用例的思维革命:常规 + 逆向 + 发散,告别 “点状测试”)
[2.1 常规思维:确保 "功能做了它该做的"](#2.1 常规思维:确保 “功能做了它该做的”)
[2.2 逆向思维:检查 "功能没做它不该做的"](#2.2 逆向思维:检查 “功能没做它不该做的”)
[2.3 发散性思维:覆盖 "所有可能的边缘场景"](#2.3 发散性思维:覆盖 “所有可能的边缘场景”)
[2.4 思维落地:从 "点" 到 "面",构建测试用例体系](#2.4 思维落地:从 “点” 到 “面”,构建测试用例体系)
[三、设计测试用例的万能公式:6 大维度 + 2 个补充,覆盖所有场景](#三、设计测试用例的万能公式:6 大维度 + 2 个补充,覆盖所有场景)
[3.1 功能测试:测试的核心,验证 "功能是否符合需求"](#3.1 功能测试:测试的核心,验证 “功能是否符合需求”)
[3.1.1 功能测试的核心原则](#3.1.1 功能测试的核心原则)
[3.1.2 需求不明确时,如何做功能测试?](#3.1.2 需求不明确时,如何做功能测试?)
[3.1.3 功能测试示例(以邮箱注册为例)](#3.1.3 功能测试示例(以邮箱注册为例))
[3.2 界面测试:验证 "颜值与体验的一致性"](#3.2 界面测试:验证 “颜值与体验的一致性”)
[3.2.1 界面测试的核心维度](#3.2.1 界面测试的核心维度)
[3.2.2 界面测试示例(以邮箱注册页为例)](#3.2.2 界面测试示例(以邮箱注册页为例))
[3.3 性能测试:验证 "功能做的好不好"](#3.3 性能测试:验证 “功能做的好不好”)
[3.3.1 性能测试的核心指标](#3.3.1 性能测试的核心指标)
[3.3.2 性能测试示例(以邮箱注册为例)](#3.3.2 性能测试示例(以邮箱注册为例))
[3.4 兼容性测试:验证 "在不同环境下都能用"](#3.4 兼容性测试:验证 “在不同环境下都能用”)
[3.4.1 兼容性测试的核心维度](#3.4.1 兼容性测试的核心维度)
[3.4.2 兼容性测试的关键技巧:如何选择测试环境?](#3.4.2 兼容性测试的关键技巧:如何选择测试环境?)
[3.4.3 兼容性测试示例(以邮箱注册为例)](#3.4.3 兼容性测试示例(以邮箱注册为例))
[3.5 易用性测试:验证 "用户能不能轻松用"](#3.5 易用性测试:验证 “用户能不能轻松用”)
[3.5.1 易用性测试的核心维度](#3.5.1 易用性测试的核心维度)
[3.5.2 易用性测试示例(以邮箱注册为例)](#3.5.2 易用性测试示例(以邮箱注册为例))
[3.6 安全测试:验证 "用户数据和系统是否安全"](#3.6 安全测试:验证 “用户数据和系统是否安全”)
[3.6.1 安全测试的核心维度](#3.6.1 安全测试的核心维度)
[3.6.2 安全测试示例(以邮箱注册为例)](#3.6.2 安全测试示例(以邮箱注册为例))
[3.7 补充测试维度:弱网测试 + 安装卸载测试](#3.7 补充测试维度:弱网测试 + 安装卸载测试)
[3.7.1 弱网测试:验证 "恶劣网络环境下的用户体验"](#3.7.1 弱网测试:验证 “恶劣网络环境下的用户体验”)
[3.7.2 安装卸载测试:验证 "客户端产品的部署可用性"](#3.7.2 安装卸载测试:验证 “客户端产品的部署可用性”)
[产品背景:一款普通的玻璃水杯,支持装水、倒水,带有杯盖,可保温 1 小时。](#产品背景:一款普通的玻璃水杯,支持装水、倒水,带有杯盖,可保温 1 小时。)
[1. 功能测试](#1. 功能测试)
[2. 界面测试](#2. 界面测试)
[3. 性能测试](#3. 性能测试)
[4. 兼容性测试](#4. 兼容性测试)
[5. 易用性测试](#5. 易用性测试)
[6. 安全测试](#6. 安全测试)
[7. 弱网测试(无,因水杯为实体产品,无网络依赖)](#7. 弱网测试(无,因水杯为实体产品,无网络依赖))
[8. 安装卸载测试(无,因水杯为实体产品,无需安装卸载)](#8. 安装卸载测试(无,因水杯为实体产品,无需安装卸载))
前言
作为软件测试工程师,你是否曾遇到过这些灵魂拷问:"这个功能真的测全了吗?""回归测试时怎么确保不遗漏历史功能?""产品出 bug 了,为什么测试没发现?" 其实,解决这些问题的核心钥匙,就是测试用例。测试用例不仅是测试工作的行动指南,更是团队协作的沟通桥梁、质量保障的安全网。
今天这篇文章,我们就从测试用例的基础概念入手,拆解设计测试用例的思维逻辑,再奉上万能设计公式,帮你轻松搞定各类测试场景,告别 "测试不全""背锅返工" 的窘境!下面就让我们正式开始吧!
一、测试用例:不止是 "操作步骤",更是测试的 "施工图"
1.1 什么是测试用例?------ 定义与核心要素
很多刚入行的测试同学会觉得,测试用例就是 "先点这个按钮,再输那个数据,最后看结果对不对"。其实这种理解只停留在表面。专业来讲,测试用例(Test Case)是为实施测试而向被测试系统提供的一组完整集合,这组集合必须包含测试环境、操作步骤、测试数据、预期结果等核心要素,缺一不可。
我们可以把测试用例类比成建筑施工的 "施工图":没有施工图,工人可能凭经验乱砌墙,最后房子歪了、漏雨了都无从追溯;没有测试用例,测试人员可能凭感觉点点点,要么遗漏关键功能,要么重复测试做无用功,最后产品质量失控。
一个完整的测试用例长什么样?给大家看一个经典的网易邮箱注册用例示例:
| 用例编号 | test-01 |
|---|---|
| 标题 | 成功注册网易邮箱 |
| 测试方式 | 手工测试 |
| 功能模块 | 注册登陆 |
| 重要性 | 重要 |
| 测试前提 | 系统运行正常,邮件服务器已开启 |
| 测试环境 | win10 Chrome 版本 103.0.5060.66 (正式版本)(64 位) |
| 测试数据 | 邮箱地址:996402440@qq.com;密码:123456;手机号:12312341234 |
| 测试步骤 | 1. 打开谷歌浏览器,输入网易注册地址:https://mail.163.com/register/index.htm;2. 输入邮箱地址、密码、手机号,获取验证码并输入正确的验证码,勾选协议;3. 点击注册按钮 |
| 期望结果 | 展现注册成功的结果页,并且使用刚注册的账号可以正常登陆并进入邮箱首页 |
从这个示例能看出,好的测试用例必须满足**"明确、可复现、可验证"**三个特点:
- 明确:每个步骤、每个数据都清晰无歧义,任何人拿到用例都知道该怎么做;
- 可复现:按照步骤操作,无论谁来执行,都能得到相同的测试场景;
- 可验证:预期结果是具体的、可判断的,不是 "看起来正常" 这种模糊描述。
1.2 为什么一定要写测试用例?------ 那些被忽略的核心价值
很多测试同学会偷懒:"我经验丰富,不用写用例也能测好!" 真的是这样吗?其实在实际工作中,不写测试用例的坑远比你想象的多:
- 测试覆盖不全:功能点太多,凭记忆很容易遗漏边缘场景,比如 "密码长度刚好 6 位""验证码超时重发" 等;
- 覆盖率无法衡量:领导问 "这个功能测试覆盖率多少?",你只能含糊其辞,无法给出准确数据支撑;
- 回归测试困难:产品迭代后,要验证历史功能是否正常,没有用例的话,只能重新全量测试,效率极低;
- 团队协作受阻:新同事接手工作时,没有用例参考,需要重新熟悉功能,沟通成本陡增;
- 背锅风险极高:产品上线后出 bug,第一责任人往往会问 "测试用例里为什么没覆盖这个场景?",没写用例的你只能百口莫辩。
而测试用例的核心价值,正是解决这些问题:
- 规范测试流程:让测试工作有章可循,避免 "想到哪测到哪" 的混乱状态;
- 保障测试覆盖:通过系统化设计,确保所有功能点、场景都被覆盖到;
- 提高测试效率:回归测试时直接复用用例,无需重复设计,节省时间;
- 降低沟通成本:用例是测试、开发、产品三方的共识文档,减少理解偏差;
- 明确责任边界:用例是测试工作的 "证据",避免后续出现问题时的无意义推诿。
这里要特别说明:现在很多企业采用敏捷开发模式,不再要求写传统的表格形式用例,而是用思维导图(脑图)来梳理测试点,这种方式更灵活、效率更高。但无论是表格还是脑图,核心思路都是一致的 ------ 把测试逻辑系统化、清晰化,本质上都是测试用例的不同呈现形式。
市面上有许多能用于制作思维导图的软件,博主主要使用的是Xmind,大家也可以根据自己的实际需要选择最适合自己的软件进行制作。

二、设计测试用例的思维革命:常规 + 逆向 + 发散,告别 "点状测试"
很多测试新手设计用例时,容易陷入 "只测正常场景" 的误区。比如测试 "门锁" 功能,只会想到 "用钥匙锁门、开门",却忽略了 "不锁门时能不能用手柄打开""室内锁门后室外能不能解锁" 等场景。其实,好的测试用例设计,关键在于思维方式的转变 ------ 要做到**"常规思维 + 逆向思维 + 发散性思维"** 三者结合。
2.1 常规思维:确保 "功能做了它该做的"
常规思维是设计测试用例的基础,核心是验证产品 "是否实现了需求中规定的功能",也就是 "做了它该做的"。
以 "门锁" 为例,常规思维下的测试场景包括:
- 给门上锁,门成功被锁上;
- 用钥匙可以打开已锁的门;
- 室内锁门后,室内可以正常解锁;
- 室外锁门后,用钥匙可以正常解锁。
这些场景都是用户最常使用的 "正常流程",是测试用例的基础,必须优先覆盖。但如果只停留在常规思维,测试用例就会非常单薄,很容易遗漏关键问题。
2.2 逆向思维:检查 "功能没做它不该做的"
逆向思维是测试用例设计的核心技巧,核心是验证产品 "是否存在需求之外的多余功能",也就是 "没做它不该做的"。很多严重的 bug,往往藏在逆向场景里。
还是以 "门锁" 为例,逆向思维下的测试场景包括:
- 将门关上但不锁门,是否可以通过手柄打开?(验证 "不锁门时的正常解锁逻辑")
- 将门关上但不锁门,是否可以通过钥匙打开?(验证 "钥匙的通用性")
- 将门锁上后,是否可以通过手柄打开?(验证 "锁门后的防撬逻辑")
- 室内锁门后,室外是否可以通过非钥匙方式打开?(验证 "室内锁的安全性")
再比如测试 "邮箱注册" 功能,逆向思维场景包括:
- 不输入姓名是否能注册成功?(验证 "必填项校验")
- 输入不符合格式的邮箱(如没有 @)是否能提交?(验证 "格式校验")
- 密码和确认密码不一致是否能注册?(验证 "一致性校验")
- 输入已注册的邮箱是否会提示?(验证 "唯一性校验")
测试的本质是 "找 bug",而 bug 往往更倾向于出现在 "异常场景" 中。逆向思维就是让我们站在 "破坏者" 的角度,主动寻找产品的漏洞,这也是测试工程师核心价值的体现。
2.3 发散性思维:覆盖 "所有可能的边缘场景"
发散性思维是对常规和逆向思维的补充,核心是从 "功能本身" 延伸到 "不同环境、不同用户、不同操作方式" 等边缘场景,确保测试用例的全面性。
继续以 "门锁" 为例,发散性思维下的测试场景包括:
- 低温环境下(如 - 20℃),门锁是否能正常使用?(环境因素)
- 潮湿环境下(如下雨天),门锁是否会生锈、失灵?(环境因素)
- 用损坏的钥匙尝试开门,是否会导致门锁卡死?(操作工具)
- 儿童是否能轻松操作门锁?(用户群体)
- 门锁使用 1000 次后,是否还能正常工作?(使用寿命)
发散性思维的关键在于 "不局限于功能本身",而是从用户使用的全场景出发,考虑各种可能影响功能的因素。比如测试手机 App 时,要考虑不同网络(Wi-Fi/4G/3G)、不同机型、不同系统版本、不同用户操作习惯等;测试 Web 端时,要考虑不同浏览器、不同屏幕分辨率、不同网络速度等。
最后我们编写出完整的测试用例如下:

2.4 思维落地:从 "点" 到 "面",构建测试用例体系
很多测试新手设计用例时,是 "想到一个写一个",呈现 "点状分布",没有系统性。而通过 "常规 + 逆向 + 发散" 的思维组合,我们可以构建出 "面状覆盖" 的测试用例体系。
以 "邮箱注册" 的 "验证码" 功能为例,三种思维的落地场景:
| 思维类型 | 测试场景 | 测试目的 |
|---|---|---|
| 常规思维 | 输入正确的验证码,注册成功 | 验证验证码的正常校验功能 |
| 逆向思维 | 输入错误的验证码,提示 "验证码错误" | 验证错误验证码的拦截逻辑 |
| 逆向思维 | 不输入验证码,点击注册,提示 "请输入验证码" | 验证验证码的必填校验 |
| 发散思维 | 验证码超时后(如 10 分钟),输入原验证码是否有效 | 验证验证码的时效性 |
| 发散思维 | 多次输入错误验证码,是否有次数限制(如 5 次后锁定) | 验证安全性设计 |
| 发散思维 | 同一手机号同时获取多个验证码,使用最新的是否有效 | 验证验证码的唯一性 |
通过这种方式,我们的测试用例不再是孤立的 "点",而是形成了完整的 "面",能够全面覆盖功能的各个维度,大大提高发现 bug 的概率。
三、设计测试用例的万能公式:6 大维度 + 2 个补充,覆盖所有场景
掌握了思维方式后,还需要一个 "万能框架" 来确保用例的全面性,避免遗漏关键测试维度。这个万能公式就是:功能测试 + 界面测试 + 性能测试 + 兼容性测试 + 易用性测试 + 安全测试,再加上补充的弱网测试 + 安装卸载测试,几乎可以覆盖所有软件的测试场景。
这个公式就像测试用例的 "骨架",无论测试什么产品(App、Web、小程序、硬件配套软件等),都可以基于这个框架填充具体场景,确保不遗漏核心测试维度。下面我们逐一拆解每个维度的核心测试点和设计思路。
3.1 功能测试:测试的核心,验证 "功能是否符合需求"
功能测试是测试用例的核心,占比最高,核心是验证产品的功能是否与需求规格说明一致,是典型的**"黑盒测试"**(不关心内部实现,只关注输入输出)。
3.1.1 功能测试的核心原则
- 所有需求中的功能点必须全覆盖,不遗漏;
- 不仅要测试正常输入,还要测试异常输入(如为空、格式错误、超出范围等);
- 要考虑功能之间的交互影响(如注册功能和登录功能的联动);
- 要验证功能的完整性(如 "提交订单" 功能,不仅要验证提交成功,还要验证订单状态、库存扣减、支付联动等)。
3.1.2 需求不明确时,如何做功能测试?
实际工作中,经常会遇到需求文档不清晰、不完整的情况,这时候该怎么设计功能测试用例?分享几个实用技巧:
- 查找相关文档:比如产品原型图、设计文档、历史版本的需求文档,辅助理解功能目标;
- 多参加项目会议:需求评审会、设计讨论会、计划会等,主动提问,加深对产品的理解;
- 组织需求澄清会:召集产品、开发、测试三方,将自己整理的需求疑点逐一确认,形成共识文档;
- 亲身体验产品:如果是已上线产品,多使用几遍,从用户角度理解功能逻辑;
- 参考历史 bug:查看同类功能的历史 bug,了解容易出问题的点,重点覆盖。
3.1.3 功能测试示例(以邮箱注册为例)
- 正常场景:输入符合要求的姓名、邮箱、密码、确认密码、验证码,注册成功,收到激活邮件;
- 异常场景:姓名为空 / 长度小于 6 位 / 大于 15 位、邮箱格式错误、密码与确认密码不一致、验证码错误 / 超时 / 为空;
- 交互场景:注册成功后跳转至激活页面、未收到激活邮件可重新发送、激活成功后跳转至登录页。
3.2 界面测试:验证 "颜值与体验的一致性"
界面测试(UI 测试)主要验证产品的界面呈现是否符合设计要求,是否美观、一致,是否影响用户使用。很多测试同学会忽略界面测试,觉得 "只要功能能用就行",但实际上,界面问题会直接影响用户体验,甚至导致用户放弃使用产品。
3.2.1 界面测试的核心维度
- 整体一致性:界面的布局、颜色、字体、图标风格是否与设计图一致,是否在整个产品中保持统一;
- 元素完整性:所有界面元素(按钮、输入框、文字、图片等)是否都正确显示,无缺失、重叠、错位;
- 控件可用性:按钮、输入框、下拉框等控件是否可正常操作(如按钮可点击、输入框可输入、下拉框可选择);
- 提示信息合理性:错误提示、成功提示、加载提示等是否清晰、准确、友好,位置是否合理;
- 响应式适配:Web 端是否适配不同屏幕分辨率,移动端是否适配不同屏幕大小,无变形、遮挡。
3.2.2 界面测试示例(以邮箱注册页为例)
- 整体布局:输入框、按钮、协议勾选框的位置是否与设计图一致;
- 字体样式:姓名、邮箱、密码等标签的字体、大小、颜色是否符合设计规范;
- 按钮状态:"注册" 按钮在未填写完必填项时是否置灰,填写完整后是否变为可点击状态;
- 提示信息:输入错误邮箱时,提示文案是否为 "请输入有效的邮箱地址",颜色是否为红色,位置是否在输入框下方;
- 适配性:在 1366×768、1920×1080 等分辨率下,界面是否无变形、无遮挡。
3.3 性能测试:验证 "功能做的好不好"
功能测试验证 "软件是否做了",而性能测试验证 "软件做的好不好"。比如同样是 "登录功能",功能测试验证 "能登录",性能测试验证 "1000 人同时登录是否会卡顿""登录响应时间是否在 2 秒内"。
3.3.1 性能测试的核心指标
- 响应时间:用户操作后,系统给出反馈的时间(如登录响应时间、页面加载时间),一般要求核心功能响应时间≤2 秒,用户可忍受的最大响应时间≤5 秒;
- 并发量:系统同时能支持的最大用户数(如并发登录用户数、并发下单用户数);
- 吞吐量:单位时间内系统处理的请求数(如每秒处理 100 个登录请求);
- 稳定性:系统在长时间运行(如 7×24 小时)后,是否仍能正常工作,无内存泄漏、崩溃等问题;
- 资源利用率:CPU、内存、磁盘 IO、网络 IO 等服务器资源的使用率,是否在合理范围内。
3.3.2 性能测试示例(以邮箱注册为例)
- 响应时间:提交注册信息后,系统返回 "注册成功" 提示的时间≤2 秒;
- 并发量:1000 个用户同时提交注册请求,系统无崩溃、无数据丢失;
- 稳定性:持续 24 小时接收注册请求,系统正常运行,无内存泄漏;
- 资源利用率:并发注册时,服务器 CPU 使用率≤80%,内存使用率≤70%。
3.4 兼容性测试:验证 "在不同环境下都能用"
软件是运行在特定环境中的(如操作系统、浏览器、手机机型等),兼容性测试的核心是验证软件在不同环境下是否能正常工作,无异常。
3.4.1 兼容性测试的核心维度
- 操作系统兼容性:Windows(Win7、Win10、Win11)、MacOS(不同版本)、Linux(不同发行版)等;
- 浏览器兼容性:Chrome、Firefox、Edge、Safari 等不同浏览器,以及同一浏览器的不同版本;
- 移动端兼容性:不同品牌(华为、小米、苹果、OPPO 等)、不同机型(旗舰机、中端机、低端机)、不同系统版本(iOS 14+、Android 10+);
- 分辨率兼容性:不同屏幕分辨率(Web 端)、不同屏幕大小(移动端);
- 软件依赖兼容性:与其他依赖软件的兼容(如需要依赖 Java 运行环境的软件,兼容不同 Java 版本)。
3.4.2 兼容性测试的关键技巧:如何选择测试环境?
市面上的操作系统、浏览器、手机机型数不胜数,不可能全部覆盖,我们在实际测试时可以遵循以下原则:
- 优先覆盖 "TOP 级" 环境:通过后台数据统计,选择用户使用最多的操作系统、浏览器、机型(如 Chrome 浏览器占比 80%,优先测试 Chrome);
- 覆盖 "主流环境":选择行业内的主流版本(如 Windows 10、iOS 16、Android 13);
- 覆盖 "边缘环境":选择一些老旧但仍有用户使用的环境(如 Windows 7、Android 9),避免遗漏部分用户;
- 重点测试 "核心功能":在边缘环境中,可只测试核心功能,无需覆盖所有细节功能。
3.4.3 兼容性测试示例(以邮箱注册为例)
- 浏览器兼容:在 Chrome 100+、Firefox 99+、Edge 100+、Safari 15 + 中,注册页面正常显示,功能正常使用;
- 操作系统兼容:在 Windows 10、Windows 11、MacOS 12 中,注册功能正常;
- 移动端兼容:在华为 Mate 40、小米 13、iPhone 14、OPPO Find X5 等机型上,H5 注册页面正常显示,功能正常。
3.5 易用性测试:验证 "用户能不能轻松用"
易用性测试(可用性测试)的核心是验证产品 "是否简单易上手,用户能否快速学会使用",重点关注用户体验。一款功能再强大的产品,如果易用性差,用户也不会买账。
3.5.1 易用性测试的核心维度
- 学习成本:新用户能否在不看说明书的情况下,快速完成核心操作(如注册、登录、发送邮件);
- 操作流程:操作步骤是否简洁,无多余步骤(如注册流程是否可以减少输入项);
- 交互逻辑:操作逻辑是否符合用户习惯(如 "返回" 按钮在左上角,"提交" 按钮在右下角);
- 反馈及时:用户操作后,系统是否有明确反馈(如按钮点击时有状态变化,加载时有加载动画);
- 容错性:用户操作失误时,是否容易恢复(如输入错误后可一键清除,删除操作有确认提示)。
3.5.2 易用性测试示例(以邮箱注册为例)
- 学习成本:新用户能否在 30 秒内完成注册操作;
- 操作流程:注册步骤是否简洁,是否可以通过手机号快捷注册,减少输入项;
- 交互逻辑:"获取验证码" 按钮是否在输入手机号后才变为可点击状态,符合用户习惯;
- 反馈及时:点击 "获取验证码" 后,是否有 "验证码已发送" 的提示,按钮是否变为倒计时状态;
- 容错性:输入错误邮箱时,是否有明确的错误提示,且输入框内容不会清空,方便用户修改。
3.6 安全测试:验证 "用户数据和系统是否安全"
安全测试是测试用例中非常重要但容易被忽略的部分,核心是验证产品的 "数据安全性" 和 "访问控制安全性",防止用户数据泄露、被篡改,或系统被非法入侵。
3.6.1 安全测试的核心维度
- 数据隐私保护:敏感数据(如密码、手机号、邮箱)是否加密存储,是否明文显示(如密码输入时应显示为 * 号);
- 输入校验 :是否防止 SQL 注入、XSS 攻击(如输入框中输入
<script>等恶意代码是否被拦截);- 访问控制:是否存在越权操作(如普通用户能否访问管理员页面,能否修改其他用户的数据);
- 登录安全:是否支持密码复杂度校验(如包含大小写、数字、特殊字符),是否有登录失败次数限制,是否支持单点登录;
- 会话安全:登录后生成的会话令牌是否安全,是否会被劫持,会话超时后是否会自动退出。
3.6.2 安全测试示例(以邮箱注册为例)
- 数据隐私:密码输入时是否显示为 * 号,传输过程中是否加密;
- 输入校验 :在邮箱输入框中输入
' or 1=1 --等 SQL 注入语句,是否会被拦截,系统是否正常响应;- 访问控制:普通用户注册成功后,能否通过 URL 直接访问管理员后台;
- 密码安全:是否要求密码长度≥6 位,是否支持大小写、数字、特殊字符组合;
- 会话安全:注册成功后,会话令牌是否随机生成,关闭浏览器后再次访问是否需要重新登录。
3.7 补充测试维度:弱网测试 + 安装卸载测试
除了上述 6 大核心维度,在实际测试中,还需要根据产品类型补充两个重要的测试维度:弱网测试(主要针对移动端、H5 产品)和安装卸载测试(主要针对客户端产品)。
3.7.1 弱网测试:验证 "恶劣网络环境下的用户体验"
弱网测试的核心是模拟网络不稳定、网速慢、网络切换等场景,验证产品在这些场景下的表现,确保用户体验不受严重影响。
弱网测试其实是网络测试的一部分,其核心关注点有以下几点:

弱网测试需要借助工具实现,常用的工具是Fiddler。

fiddler通过配置代理、修改网络速率等方式模拟弱网环境。测试的步骤如下:

3.7.2 安装卸载测试:验证 "客户端产品的部署可用性"
对于需要安装的客户端产品(如 PC 端软件、手机 App),安装卸载测试是必测维度,核心是验证产品能否正常安装、更新、卸载,且不影响系统环境。
安装卸载测试的核心场景:
- 正常安装:在指定操作系统上,能否正常安装,安装过程无报错,安装后能正常启动;
- 异常安装:磁盘空间不足、权限不够、安装包损坏时,是否有明确提示,无崩溃;
- 升级更新:从旧版本升级到新版本,能否正常升级,数据是否保留,功能是否正常;
- 正常卸载:卸载过程无报错,卸载后文件、注册表、快捷方式等是否完全清除,无残留;
- 异常卸载:卸载过程中中断(如关闭卸载程序、断电),再次卸载能否正常进行,系统是否无损坏。
四、万能公式的实战应用:手把手教你设计测试用例
为了让大家更好地掌握万能公式,我们以水杯为测试对象,完整设计一套测试用例,帮助大家理解如何将 6 大核心维度 + 2 个补充维度落地。
产品背景:一款普通的玻璃水杯,支持装水、倒水,带有杯盖,可保温 1 小时。
1. 功能测试
- 装水功能:水杯能正常装水,无漏水;
- 容量验证:水杯实际容量与标注容量一致(如标注 500ml,实际装水 500ml 无溢出);
- 保温功能:装入 90℃热水,1 小时后水温不低于 60℃;
- 杯盖功能:杯盖能正常盖紧、打开,盖紧后装水无漏水;
- 倒水功能:打开杯盖后能正常倒水,无洒漏;
- 耐高温功能:装入 90℃热水,水杯无破裂、无变形;
- 耐低温功能:装入 0℃冰水,水杯无破裂、无变形。
2. 界面测试
- 整体外观:水杯的颜色、形状、图案与设计一致,无划痕、气泡、瑕疵;
- 杯盖与杯身:杯盖与杯身贴合紧密,无松动、错位;
- 刻度标识:容量刻度清晰、准确,无模糊、脱落;
- 手感:杯身表面光滑,无毛刺,握持舒适。
3. 性能测试
- 保温性能:90℃热水 1 小时后水温≥60℃,符合要求;
- 耐用性:反复盖紧、打开杯盖 1000 次,杯盖仍能正常使用,无损坏;
- 抗摔性:从 1 米高度自由掉落至硬质地面,水杯无破裂(针对抗摔款水杯);
- 密封性:盖紧杯盖后,倒置 10 分钟,无漏水。
4. 兼容性测试
- 装水类型:能装入自来水、矿泉水、茶水、果汁等常见液体,无腐蚀、无异味;
- 使用环境:在室内(25℃)、室外(-10℃~40℃)环境下,能正常使用,无破裂、变形。
5. 易用性测试
- 开盖难度:普通用户能轻松打开杯盖,无需额外工具;
- 倒水便捷性:倒水时水流顺畅,无洒漏,无需刻意调整角度;
- 清洗便捷性:杯身内部光滑,无死角,容易清洗;
- 握持舒适度:杯身粗细适中,握持时不易滑落。
6. 安全测试
- 材质安全:水杯材质符合食品级标准,无异味,装入热水后无有害物质析出;
- 防烫设计:杯身外层有隔热层,装入 90℃热水后,外层温度≤40℃,不烫手;
- 防滑设计:杯底有防滑垫,放置在光滑桌面时不易滑落。
7. 弱网测试(无,因水杯为实体产品,无网络依赖)
8. 安装卸载测试(无,因水杯为实体产品,无需安装卸载)
通过这个示例可以看出,万能公式的适用范围是非常广的,无论是软件、硬件,还是实体产品,都可以按照这个框架来设计测试用例,确保覆盖全面、无遗漏。
总结
掌握了这些核心逻辑,无论遇到什么类型的产品,都能快速设计出全面、高效的测试用例,告别 "测试不全""背锅返工" 的烦恼。
下一篇文章,我们将深入讲解设计测试用例的具体方法:等价类、边界值、判定表、正交法、场景法、错误猜测法,帮助大家进一步提升用例设计的精准度和效率。敬请期待!
如果觉得这篇文章对你有帮助,欢迎点赞、收藏、转发,也可以在评论区分享你的测试用例设计经验,一起交流进步!
