怎么通过「需求文档+原型图+技术文档」写出高质量的测试用例,尤其是在产品需求写的很模糊的场景下?当下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位"
四、万能写作流程(直接套用)
-
读需求 → 拆解功能点(如"登录功能包含账号、密码、验证码、密码非明文展示")
-
看原型 → 拆解页面元素(如"登录按钮灰色不可点")
-
看技术文档 → 拆解字段规则(如"密码字段需加密存储")
-
用测试方法生成用例 → 等价类+边界值+场景法覆盖
-
模糊点反推确认 → 提问产品/开发补全细节
-
补齐异常/权限/兼容性 → 确保覆盖全面
通过以上结构化整理,可快速生成清晰、可执行的测试用例,兼顾业务规则、界面交互与底层逻辑验证。