基于需求文档(PRD/Spec)或功能描述,自动生成面向功能测试的结构化测试用例。生成的测试用例包含测试场景、前置条件、操作步骤及预期结果,确保逻辑准确且具备可执行性。
测试用例 = 前置条件 + 操作步骤 + 预期结果
每份测试用例必须覆盖以下维度:
| 维度 | 说明 | 占比建议 |
|------|------|----------|
| 正向流程 | 正常数据、正常操作路径 | 30-40% |
| 逆向校验 | 错误输入、非法操作、边界值 | 30-40% |
| 界面交互 | 联动、下拉、弹框、必填校验 | 15-20% |
| 异常处理 | 网络异常、超时、数据异常 | 5-10% |
| 非功能 | 权限、日志、并发、兼容性 | 5-10% |
| 优先级 | 定义 | 适用场景 |
|--------|------|----------|
| P0 | 必测 | 核心功能、主流程、阻断性Bug |
| P1 | 重要 | 重要分支、业务规则、边界条件 |
| P2 | 一般 | 次要功能、异常处理 |
| P3 | 可选 | 兼容性、极端场景 |
| 材料类型 | 分析重点 |
|----------|----------|
| PRD | 业务背景、功能点、业务流程、优先级 |
| Spec | I/O定义、验收标准、约束条件、非目标 |
| 界面设计稿 | 字段布局、联动关系、交互细节 |
| 接口文档 | 请求参数、响应结构、错误码 |
| 流程图/泳道图 | 流程分支、异常路径、角色权限 |
根据功能特性划分测试模块:
# [功能名称]
## [子模块1 - 页面/接口名称]
### [测试点分组1]
### [测试点分组2]
## [子模块2 - 页面/接口名称]
模块划分原则:
从验收标准或功能描述中提取测试点:
原始描述 → 测试点
"仓库下拉联动库区" → 仓库库区联动
"执行日期范围1-31" → 参数边界校验
"同一库区只能有一条配置" → 唯一性校验
为每个测试点设计用例时,遵循以下模式:
正向流程设计:
前置条件(正常状态) + 正确操作 → 预期结果(成功)
逆向校验设计:
前置条件(异常状态/错误输入) + 操作 → 预期结果(失败提示)
边界条件设计:
前置条件(边界值) + 操作 → 预期结果(符合/不符合业务规则)
> ## 📌 输出格式说明(重要)
>
> 分隔符规范:
> - | (竖线):分隔 前置条件、操作步骤、预期结果 三大字段
> - ; (分号):分隔同一字段内的 多个条目
> - [Px]:优先级标记(P0/P1/P2/P3)
>
> 标准格式:
> ```
> - [Px] 前置条件 1;前置条件 2 | 操作步骤 1;操作步骤 2 | 预期结果 1;预期结果 2 | - [ ] 通过 - [ ] 未通过
> ```
>
> 示例:
> ```
> - [P0] 用户已登录;已进入目标页面 | 点击 [新建] 按钮;填写表单;点击提交 | 弹出成功提示;列表刷新显示新数据 | - [ ] 通过 - [ ] 未通过
> ```
使用标准格式输出每条用例:
### [测试用例名称]
- [P0] 前置条件1;前置条件2 | 操作步骤1;操作步骤2 | 预期结果1;预期结果2 | - [ ] 通过 - [ ] 未通过
格式说明:
[Px]:优先级(P0必测/P1重要/P2一般/P3可选)
;:分隔多个条件/步骤
|:字段分隔符(前置条件|操作步骤|预期结果|执行结果)
- [ ] 通过 - [ ] 未通过
| 测试点 | 测试内容 |
|--------|----------|
| 功能可见性 | 入口按钮/菜单正确显示 |
| 权限控制 | 有权限用户可见;无权限用户不可见或无操作 |
| 登录校验 | 未登录访问需跳转登录页 |
| 路由校验 | 直接URL访问需权限校验 |
| 测试点 | 测试内容 |
|--------|----------|
| 页面布局 | 字段正确显示、布局符合设计 |
| 字段标签 | 必填标识(*)正确显示 |
| 字段默认值 | 默认值符合业务规则 |
| 字段类型 | 输入控件类型正确(下拉/输入/日期等) |
| 测试点 | 测试内容 |
|--------|----------|
| 级联联动 | 上级选择后下级正确过滤 |
| 状态联动 | 状态变化触发相关控件可用性 |
| 清空联动 | 切换上级时清空下级已选项 |
| 测试点 | 测试内容 |
|--------|----------|
| 必填校验 | 空值提交被拦截并提示 |
| 格式校验 | 格式错误被拦截并提示 |
| 长度校验 | 超过最大长度被拦截 |
| 唯一性校验 | 重复数据被拦截并提示 |
| 业务规则校验 | 违反业务规则被拦截并提示 |
| 测试点 | 测试内容 |
|--------|----------|
| 新增功能 | 正常新增成功,数据正确保存 |
| 编辑功能 | 编辑后数据正确更新 |
| 删除功能 | 删除确认、二次确认、数据移除 |
| 查询功能 | 查询条件正确过滤结果 |
| 状态切换 | 状态变更生效,关联数据正确处理 |
| 测试点 | 测试内容 |
|--------|----------|
| 成功提示 | 操作成功提示信息 |
| 结果展示 | 列表/详情正确显示 |
| 刷新机制 | 操作后列表正确刷新 |
| 分页展示 | 分页数据正确、切换正常 |
| 测试点 | 测试内容 |
|--------|----------|
| 主流程 | 完整业务流程正确执行 |
| 分支流程 | 各分支条件正确处理 |
| 边界值 | 最小/最大/临界值正确处理 |
| 组合条件 | 多条件组合正确筛选 |
| 测试点 | 测试内容 |
|--------|----------|
| 数据存储 | 正确字段正确存储到数据库 |
| 数据计算 | 统计、汇总、公式正确 |
| 数据转换 | 格式转换、编码转换正确 |
| 数据关联 | 关联表数据一致 |
| 测试点 | 测试内容 |
|--------|----------|
| 触发时机 | 定时器按配置正确触发 |
| 参数读取 | 正确读取配置参数 |
| 执行日志 | 正确记录执行结果 |
| 异常处理 | 执行失败正确告警/重试 |
| 测试点 | 测试内容 |
|--------|----------|
| 空数据 | 无数据时的处理和提示 |
| 超大数据 | 大量数据处理性能 |
| 并发操作 | 并发修改的冲突处理 |
| 重复操作 | 重复提交的幂等性 |
| 网络异常 | 网络超时/断开的处理 |
| 测试点 | 测试内容 |
|--------|----------|
| 数值边界 | 最小值、最大值、临界值 |
| 字符边界 | 最短、最长、空字符串 |
| 日期边界 | 最小日期、最大日期 |
| 状态边界 | 所有状态的转换 |
| 测试点 | 测试内容 |
|--------|----------|
| 响应时间 | 操作响应在预期范围内 |
| 操作日志 | 关键操作记录日志 |
| 数据权限 | 只能操作有权限的数据 |
| SQL注入 | 特殊字符正确转义 |
> ## 📌 格式说明
>
> - `#` 表示模块名称,`##` 表示功能模块,`###` 表示测试用例名称
> - 用例行格式:`- [Px] 前置条件 | 操作步骤 | 预期结果 | 执行结果`
> - `[Px]` 表示优先级(P0 必测/P1 重要/P2 一般/P3 可选)
> - `|` 表示字段分隔符(前置条件 | 操作步骤 | 预期结果 | 执行结果)
> - `;` 表示同一字段内多个条目的分隔符
> - 执行结果固定格式:`- [ ] 通过 - [ ] 未通过`
# [功能名称]
## [子模块1 - 功能分组]
### [测试点1]
- [P0] 前置条件 | 操作步骤 | 预期结果 | - [ ] 通过 - [ ] 未通过
### [测试点2]
- [P0] 前置条件 | 操作步骤 | 预期结果 | - [ ] 通过 - [ ] 未通过
## [子模块2 - 功能分组]
### [测试点3]
- [P1] 前置条件 | 操作步骤 | 预期结果 | - [ ] 通过 - [ ] 未通过
生成测试用例后,自查以下内容:
按钮点击:
[P0] 用户已登录;已进入目标页面 | 点击[按钮名称]按钮 | 弹出[预期弹框/执行预期操作]
下拉选择:
[P0] 下拉列表已展开 | 选择选项[选项名称] | 下拉关闭;字段值更新为[选项名称]
必填校验:
[P0] 目标字段为空;其他字段已填写 | 点击提交按钮 | 弹出提示"[字段名]不能为空"
联动关系:
[P0] 已选择仓库A | 展开库区下拉 | 库区列表仅显示仓库A下的库区
唯一性校验:
[P0] 已存在相同数据的记录 | 提交相同数据 | 弹出提示"[字段]已存在"
边界值校验:
[P0] 输入值超过最大长度100 | 点击提交 | 弹出提示"最大长度为100字符"
成功提示:
[P0] 所有必填字段已正确填写 | 点击提交按钮 | 弹出成功提示"[操作]成功"
prd-writer 将原始素材转化为完整 PRD
prd-splitter 将 PRD 拆分为 Spec
生成的测试用例可直接用于:
共 1 个版本