如何写出高质量的测试用例

怎么通过「需求文档+原型图+技术文档」写出高质量的测试用例,尤其是在产品需求写的很模糊的场景下?当下AI智能体已经可以根据产品需求输出测试用例了,但是大模型对于不同业务的理解还会存在一些偏差,导致输出的用例质量不高,当然随着不断地训练,大模型学习了更多的项目相关的需求文档和技术文档后,再进行测试用例的输出,后期会输出更高质量的测试用例。通过AI进行测试用例的输出暂时先不展开,后面会继续跟进相关内容,这篇文档主要还是想聊下在不借助AI大模型场景下,我们如何写出高质量的测试用例。

一、三类文档的测试重点与输出用例类型

1. 需求文档 → 测「业务规则」

重点抓取内容

  • 业务流程(如登录→下单→支付→退款)

  • 约束条件(必填、长度、格式、权限)

  • 异常提示文案(如"请输入有效手机号")

输出

  • 功能测试用例主体(覆盖核心业务流程与规则验证)
2. 原型图 → 测「界面+交互」

重点抓取内容

  • 控件位置(按钮、输入框、下拉菜单、弹窗)

  • 交互逻辑(可点击/灰显、跳转逻辑、返回/刷新)

  • 字段属性(必填/可选、可编辑性)

输出

  • 界面测试用例(布局、控件可见性)

  • 易用性测试用例(操作路径合理性)

  • 流程跳转测试用例(页面间导航逻辑)

3. 技术文档 → 测「逻辑+边界」

重点抓取内容

  • 接口字段(长度、类型、枚举值)

  • 数据库字段(长度、精度、约束)

  • 状态机(状态流转规则,如待支付→已支付→已取消)

  • 前后端校验规则(如服务端必填校验)

输出

  • 边界值测试用例(如字段最大/最小值)

  • 异常测试用例(如非法输入、状态异常)

  • 数据一致性测试用例(如接口返回与数据库存储是否匹配)

二、需求不详细时的高质量用例编写方法

1. 显性需求全覆盖

操作示例

  • 原始需求:"用户可以修改手机号"

  • 拆分用例:

    • ✔️ 输入正确手机号 → 修改成功

    • ✔️ 输入已存在手机号 → 提示重复

    • ✔️ 输入空 → 提示"不能为空"

    • ✔️ 输入格式错误 → 提示"格式不正确"

    • ✔️ 未登录 → 提示"请先登录"

    • ✔️ 验证码正确/错误/过期 → 分别验证结果

2. 测试设计方法自动补全

必用方法

  • 等价类划分

    • 有效类(合法数据)、无效类(非法数据)
  • 边界值分析

    • 长度边界(如手机号11位)、数值边界(如年龄0-150)
  • 场景法

    • 正常流程、中断流程(断网/杀进程)、逆向流程(取消/返回)
  • 错误推测法

    • 快速点击、重复提交、权限越界(普通用户访问管理员数据)
3. 从原型+技术文档反推需求

强制测试规则

  • 原型有"删除按钮" → 必须测删除功能、二次确认弹窗

  • 技术文档规定字段长度varchar(20)→ 测试20位/21位输入

  • 接口返回枚举值0/1/2→ 必须覆盖所有枚举场景

​4. 主动提问确认模糊点

需明确的问题清单

  • 字段长度限制(如"用户名最多输入多少字符?")

  • 异常处理规则(如"重复提交如何拦截?")

  • 权限控制(如"普通用户能否查看他人数据?")

  • 兼容性要求(如"是否支持IE浏览器?")

输出

  • 问题记录表(作为用例设计的补充依据)

三、高质量用例的四大标准

1. 可独立执行
  • ❌ 模糊用例:

    "验证支付功能是否正常"

  • ✅ 明确用例:

    "使用余额支付100元,验证订单状态变为'已支付'且账户余额减少100元"

2. 预期结果明确
  • ❌ 模糊预期:

    "系统应正确处理"

  • ✅ 明确预期:

    "返回HTTP状态码200,且响应JSON包含success:true字段"

3. 覆盖全面性
  • 覆盖维度

    • 正常场景

    • 异常场景(如网络异常、数据错误)

    • 边界值(如输入框最大长度)

    • 权限场景(如管理员/普通用户权限差异)

    • 兼容性场景(如不同浏览器/设备)

4. 简洁无冗余
  • ❌ 冗余用例:

    "测试用户名长度为1位→失败;测试用户名长度为2位→失败;..."

  • ✅ 精简用例:

    "测试用户名长度为0~5位→均提示'长度需6~20位"

四、万能写作流程(直接套用)

  1. 读需求​ → 拆解功能点(如"登录功能包含账号、密码、验证码、密码非明文展示")

  2. 看原型​ → 拆解页面元素(如"登录按钮灰色不可点")

  3. 看技术文档​ → 拆解字段规则(如"密码字段需加密存储")

  4. 用测试方法生成用例​ → 等价类+边界值+场景法覆盖

  5. 模糊点反推确认​ → 提问产品/开发补全细节

  6. 补齐异常/权限/兼容性​ → 确保覆盖全面

通过以上结构化整理,可快速生成清晰、可执行的测试用例,兼顾业务规则、界面交互与底层逻辑验证。

相关推荐
姚青&2 小时前
Pytest 测试用例生命周期管理-fixture
测试用例·pytest
少云清5 小时前
【UI自动化测试】3_TPshop项目实战 _一个测试用例脚本编写过程
ui·测试用例
测试199810 小时前
软件测试之压力测试详解
自动化测试·软件测试·python·测试用例·接口测试·压力测试·性能测试
姚青&14 天前
Pytest 测试用例断言
测试用例·pytest
米码收割机14 天前
【测试平台】测试用例管理平台(前后端源码+部署文档)【独一无二】
测试用例
带你看月亮14 天前
第 2 章:重构的原则
重构·模块测试·极限编程
姚青&14 天前
Pytest 测试用例结构
测试用例·pytest
holeer14 天前
【V3.0】「酒店 × 视觉AI」项目 | 需求分析说明书(软件工程概论 - 课程作业三)
人工智能·软件工程·需求分析·原型设计·总体设计·结构化设计
W-琑14 天前
软件测试-自动化测试
功能测试·自动化