【测试理论与实践】(四)测试用例篇(上):从概念到万能思路,解锁测试设计核心密码


目录

​编辑

前言

[一、测试用例:不止是 "操作步骤",更是测试的 "施工图"](#一、测试用例:不止是 “操作步骤”,更是测试的 “施工图”)

[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,第一责任人往往会问 "测试用例里为什么没覆盖这个场景?",没写用例的你只能百口莫辩。

而测试用例的核心价值,正是解决这些问题:

  1. 规范测试流程:让测试工作有章可循,避免 "想到哪测到哪" 的混乱状态;
  2. 保障测试覆盖:通过系统化设计,确保所有功能点、场景都被覆盖到;
  3. 提高测试效率:回归测试时直接复用用例,无需重复设计,节省时间;
  4. 降低沟通成本:用例是测试、开发、产品三方的共识文档,减少理解偏差;
  5. 明确责任边界:用例是测试工作的 "证据",避免后续出现问题时的无意义推诿。

这里要特别说明:现在很多企业采用敏捷开发模式,不再要求写传统的表格形式用例,而是用思维导图(脑图)来梳理测试点,这种方式更灵活、效率更高。但无论是表格还是脑图,核心思路都是一致的 ------ 把测试逻辑系统化、清晰化,本质上都是测试用例的不同呈现形式。

市面上有许多能用于制作思维导图的软件,博主主要使用的是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 需求不明确时,如何做功能测试?

实际工作中,经常会遇到需求文档不清晰、不完整的情况,这时候该怎么设计功能测试用例?分享几个实用技巧:

  1. 查找相关文档:比如产品原型图、设计文档、历史版本的需求文档,辅助理解功能目标;
  2. 多参加项目会议:需求评审会、设计讨论会、计划会等,主动提问,加深对产品的理解;
  3. 组织需求澄清会:召集产品、开发、测试三方,将自己整理的需求疑点逐一确认,形成共识文档;
  4. 亲身体验产品:如果是已上线产品,多使用几遍,从用户角度理解功能逻辑;
  5. 参考历史 bug:查看同类功能的历史 bug,了解容易出问题的点,重点覆盖。

3.1.3 功能测试示例(以邮箱注册为例)

  • 正常场景:输入符合要求的姓名、邮箱、密码、确认密码、验证码,注册成功,收到激活邮件;
  • 异常场景:姓名为空 / 长度小于 6 位 / 大于 15 位、邮箱格式错误、密码与确认密码不一致、验证码错误 / 超时 / 为空;
  • 交互场景:注册成功后跳转至激活页面、未收到激活邮件可重新发送、激活成功后跳转至登录页。

3.2 界面测试:验证 "颜值与体验的一致性"

界面测试(UI 测试)主要验证产品的界面呈现是否符合设计要求,是否美观、一致,是否影响用户使用。很多测试同学会忽略界面测试,觉得 "只要功能能用就行",但实际上,界面问题会直接影响用户体验,甚至导致用户放弃使用产品。

3.2.1 界面测试的核心维度

  1. 整体一致性:界面的布局、颜色、字体、图标风格是否与设计图一致,是否在整个产品中保持统一;
  2. 元素完整性:所有界面元素(按钮、输入框、文字、图片等)是否都正确显示,无缺失、重叠、错位;
  3. 控件可用性:按钮、输入框、下拉框等控件是否可正常操作(如按钮可点击、输入框可输入、下拉框可选择);
  4. 提示信息合理性:错误提示、成功提示、加载提示等是否清晰、准确、友好,位置是否合理;
  5. 响应式适配:Web 端是否适配不同屏幕分辨率,移动端是否适配不同屏幕大小,无变形、遮挡。

3.2.2 界面测试示例(以邮箱注册页为例)

  • 整体布局:输入框、按钮、协议勾选框的位置是否与设计图一致;
  • 字体样式:姓名、邮箱、密码等标签的字体、大小、颜色是否符合设计规范;
  • 按钮状态:"注册" 按钮在未填写完必填项时是否置灰,填写完整后是否变为可点击状态;
  • 提示信息:输入错误邮箱时,提示文案是否为 "请输入有效的邮箱地址",颜色是否为红色,位置是否在输入框下方;
  • 适配性:在 1366×768、1920×1080 等分辨率下,界面是否无变形、无遮挡。

3.3 性能测试:验证 "功能做的好不好"

功能测试验证 "软件是否做了",而性能测试验证 "软件做的好不好"。比如同样是 "登录功能",功能测试验证 "能登录",性能测试验证 "1000 人同时登录是否会卡顿""登录响应时间是否在 2 秒内"。

3.3.1 性能测试的核心指标

  1. 响应时间:用户操作后,系统给出反馈的时间(如登录响应时间、页面加载时间),一般要求核心功能响应时间≤2 秒,用户可忍受的最大响应时间≤5 秒;
  2. 并发量:系统同时能支持的最大用户数(如并发登录用户数、并发下单用户数);
  3. 吞吐量:单位时间内系统处理的请求数(如每秒处理 100 个登录请求);
  4. 稳定性:系统在长时间运行(如 7×24 小时)后,是否仍能正常工作,无内存泄漏、崩溃等问题;
  5. 资源利用率:CPU、内存、磁盘 IO、网络 IO 等服务器资源的使用率,是否在合理范围内。

3.3.2 性能测试示例(以邮箱注册为例)

  • 响应时间:提交注册信息后,系统返回 "注册成功" 提示的时间≤2 秒;
  • 并发量:1000 个用户同时提交注册请求,系统无崩溃、无数据丢失;
  • 稳定性:持续 24 小时接收注册请求,系统正常运行,无内存泄漏;
  • 资源利用率:并发注册时,服务器 CPU 使用率≤80%,内存使用率≤70%。

3.4 兼容性测试:验证 "在不同环境下都能用"

软件是运行在特定环境中的(如操作系统、浏览器、手机机型等),兼容性测试的核心是验证软件在不同环境下是否能正常工作,无异常。

3.4.1 兼容性测试的核心维度

  1. 操作系统兼容性:Windows(Win7、Win10、Win11)、MacOS(不同版本)、Linux(不同发行版)等;
  2. 浏览器兼容性:Chrome、Firefox、Edge、Safari 等不同浏览器,以及同一浏览器的不同版本;
  3. 移动端兼容性:不同品牌(华为、小米、苹果、OPPO 等)、不同机型(旗舰机、中端机、低端机)、不同系统版本(iOS 14+、Android 10+);
  4. 分辨率兼容性:不同屏幕分辨率(Web 端)、不同屏幕大小(移动端);
  5. 软件依赖兼容性:与其他依赖软件的兼容(如需要依赖 Java 运行环境的软件,兼容不同 Java 版本)。

3.4.2 兼容性测试的关键技巧:如何选择测试环境?

市面上的操作系统、浏览器、手机机型数不胜数,不可能全部覆盖,我们在实际测试时可以遵循以下原则:

  1. 优先覆盖 "TOP 级" 环境:通过后台数据统计,选择用户使用最多的操作系统、浏览器、机型(如 Chrome 浏览器占比 80%,优先测试 Chrome);
  2. 覆盖 "主流环境":选择行业内的主流版本(如 Windows 10、iOS 16、Android 13);
  3. 覆盖 "边缘环境":选择一些老旧但仍有用户使用的环境(如 Windows 7、Android 9),避免遗漏部分用户;
  4. 重点测试 "核心功能":在边缘环境中,可只测试核心功能,无需覆盖所有细节功能。

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 易用性测试的核心维度

  1. 学习成本:新用户能否在不看说明书的情况下,快速完成核心操作(如注册、登录、发送邮件);
  2. 操作流程:操作步骤是否简洁,无多余步骤(如注册流程是否可以减少输入项);
  3. 交互逻辑:操作逻辑是否符合用户习惯(如 "返回" 按钮在左上角,"提交" 按钮在右下角);
  4. 反馈及时:用户操作后,系统是否有明确反馈(如按钮点击时有状态变化,加载时有加载动画);
  5. 容错性:用户操作失误时,是否容易恢复(如输入错误后可一键清除,删除操作有确认提示)。

3.5.2 易用性测试示例(以邮箱注册为例)

  • 学习成本:新用户能否在 30 秒内完成注册操作;
  • 操作流程:注册步骤是否简洁,是否可以通过手机号快捷注册,减少输入项;
  • 交互逻辑:"获取验证码" 按钮是否在输入手机号后才变为可点击状态,符合用户习惯;
  • 反馈及时:点击 "获取验证码" 后,是否有 "验证码已发送" 的提示,按钮是否变为倒计时状态;
  • 容错性:输入错误邮箱时,是否有明确的错误提示,且输入框内容不会清空,方便用户修改。

3.6 安全测试:验证 "用户数据和系统是否安全"

安全测试是测试用例中非常重要但容易被忽略的部分,核心是验证产品的 "数据安全性" 和 "访问控制安全性",防止用户数据泄露、被篡改,或系统被非法入侵。

3.6.1 安全测试的核心维度

  1. 数据隐私保护:敏感数据(如密码、手机号、邮箱)是否加密存储,是否明文显示(如密码输入时应显示为 * 号);
  2. 输入校验 :是否防止 SQL 注入、XSS 攻击(如输入框中输入<script>等恶意代码是否被拦截);
  3. 访问控制:是否存在越权操作(如普通用户能否访问管理员页面,能否修改其他用户的数据);
  4. 登录安全:是否支持密码复杂度校验(如包含大小写、数字、特殊字符),是否有登录失败次数限制,是否支持单点登录;
  5. 会话安全:登录后生成的会话令牌是否安全,是否会被劫持,会话超时后是否会自动退出。

3.6.2 安全测试示例(以邮箱注册为例)

  • 数据隐私:密码输入时是否显示为 * 号,传输过程中是否加密;
  • 输入校验 :在邮箱输入框中输入' or 1=1 --等 SQL 注入语句,是否会被拦截,系统是否正常响应;
  • 访问控制:普通用户注册成功后,能否通过 URL 直接访问管理员后台;
  • 密码安全:是否要求密码长度≥6 位,是否支持大小写、数字、特殊字符组合;
  • 会话安全:注册成功后,会话令牌是否随机生成,关闭浏览器后再次访问是否需要重新登录。

3.7 补充测试维度:弱网测试 + 安装卸载测试

除了上述 6 大核心维度,在实际测试中,还需要根据产品类型补充两个重要的测试维度:弱网测试(主要针对移动端、H5 产品)和安装卸载测试(主要针对客户端产品)。

3.7.1 弱网测试:验证 "恶劣网络环境下的用户体验"

弱网测试的核心是模拟网络不稳定、网速慢、网络切换等场景,验证产品在这些场景下的表现,确保用户体验不受严重影响。

弱网测试其实是网络测试的一部分,其核心关注点有以下几点:

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

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

3.7.2 安装卸载测试:验证 "客户端产品的部署可用性"

对于需要安装的客户端产品(如 PC 端软件、手机 App),安装卸载测试是必测维度,核心是验证产品能否正常安装、更新、卸载,且不影响系统环境。

安装卸载测试的核心场景:

  1. 正常安装:在指定操作系统上,能否正常安装,安装过程无报错,安装后能正常启动;
  2. 异常安装:磁盘空间不足、权限不够、安装包损坏时,是否有明确提示,无崩溃;
  3. 升级更新:从旧版本升级到新版本,能否正常升级,数据是否保留,功能是否正常;
  4. 正常卸载:卸载过程无报错,卸载后文件、注册表、快捷方式等是否完全清除,无残留;
  5. 异常卸载:卸载过程中中断(如关闭卸载程序、断电),再次卸载能否正常进行,系统是否无损坏。

四、万能公式的实战应用:手把手教你设计测试用例

为了让大家更好地掌握万能公式,我们以水杯为测试对象,完整设计一套测试用例,帮助大家理解如何将 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. 安装卸载测试(无,因水杯为实体产品,无需安装卸载)

通过这个示例可以看出,万能公式的适用范围是非常广的,无论是软件、硬件,还是实体产品,都可以按照这个框架来设计测试用例,确保覆盖全面、无遗漏。


总结

掌握了这些核心逻辑,无论遇到什么类型的产品,都能快速设计出全面、高效的测试用例,告别 "测试不全""背锅返工" 的烦恼。

下一篇文章,我们将深入讲解设计测试用例的具体方法:等价类、边界值、判定表、正交法、场景法、错误猜测法,帮助大家进一步提升用例设计的精准度和效率。敬请期待!

如果觉得这篇文章对你有帮助,欢迎点赞、收藏、转发,也可以在评论区分享你的测试用例设计经验,一起交流进步!

相关推荐
Leinwin17 小时前
OpenClaw 多 Agent 协作框架的并发限制与企业化规避方案痛点直击
java·运维·数据库
2401_8653825017 小时前
信息化项目运维与运营的区别
运维·运营·信息化项目·政务信息化
漠北的哈士奇17 小时前
VMware Workstation导入ova文件时出现闪退但是没有报错信息
运维·vmware·虚拟机·闪退·ova
如意.75917 小时前
【Linux开发工具实战】Git、GDB与CGDB从入门到精通
linux·运维·git
运维小欣18 小时前
智能体选型实战指南
运维·人工智能
yy552718 小时前
Nginx 性能优化与监控
运维·nginx·性能优化
爱吃土豆的马铃薯ㅤㅤㅤㅤㅤㅤㅤㅤㅤ19 小时前
Linux 查询某进程文件所在路径 命令
linux·运维·服务器
05大叔21 小时前
网络基础知识 域名,JSON格式,AI基础
运维·服务器·网络
安当加密21 小时前
无需改 PAM!轻量级 RADIUS + ASP身份认证系统 实现 Linux 登录双因子认证
linux·运维·服务器
dashizhi201521 小时前
服务器共享禁止保存到本地磁盘、共享文件禁止另存为本地磁盘、移动硬盘等
运维·网络·stm32·安全·电脑