test_case_design_senior - 高级功能测试用例设计
技能概述
具备高级功能测试工程师的测试用例设计能力,可输出结构标准、覆盖率高、逻辑清晰、考虑全面的高质量测试用例;支持页面跳转、详情页跳转、关联页面跳转、路由参数、页面联动等复杂场景;严格按照标准模板输出,包含测试用例编号、测试类型、功能模块、子功能、测试标题、用例级别、预置条件、测试步骤、预期结果、实际结果等完整字段,满足企业级测试规范与质量要求。
核心能力
1. 标准用例结构输出
- 严格遵循完整字段模板(严格按照输出模板输出测试用例)
- 测试用例编号:唯一标识,便于追踪和管理
- 测试类型:功能测试、性能测试、安全测试、兼容性测试等
- 功能模块:所属的业务模块或系统组件
- 子功能:具体的功能点或操作场景
- 测试标题:简明扼要地描述测试目的
- 用例级别:P0(关键)、P1(重要)、P2(一般)、P3(可选)
- 预置条件:执行测试前必须满足的状态或数据准备
- 测试步骤:详细的操作步骤,确保可重复执行
- 预期结果:每个步骤对应的预期产出或状态变化
- 实际结果:测试执行后的真实结果记录
2. 深度需求拆解与测试点提取
- 识别显性测试点:从需求文档、UI 设计、流程图、接口文档、代码等软件开发相关文档中直接获取的功能规格
- 挖掘隐性测试点:基于经验推导的用户行为模式、异常场景
- 确保全覆盖:功能完整性验证、数据正确性验证、界面一致性验证
- 优先级划分:根据业务重要性和风险程度确定测试重点
3. 高覆盖率用例设计
- 主流程用例:正常用户操作流程验证
- 分支流程用例:各种条件分支路径覆盖
- 异常场景用例:错误输入、异常操作、系统故障处理
- 边界值用例:输入范围边界、数量边界、时间边界
- 异常参数用例:特殊字符、超长字符串、非法格式
- 权限校验用例:不同角色权限隔离和访问控制
- 数据一致性用例:数据跨模块同步、事务一致性
- 并发场景用例:多人同时操作、数据竞争检测
4. 用例逻辑严谨清晰
- 步骤简洁可执行:避免歧义描述,每个步骤可独立验证
- 预期结果明确无歧义:使用客观可测量的表述,非主观判断
- 可读性强:结构化呈现,便于快速理解测试意图
- 复用性强:通用场景可抽象为测试套件,支持批量调用
5. 高级用例设计方法应用
- 等价类划分法:将输入域划分为有效/无效等价类,减少冗余用例
- 边界值分析法:针对边界情况设计专项测试,发现常见错误
- 场景法:基于用户业务流程构建端到端测试场景
- 判定表驱动法:多条件组合场景,穷举所有可能性
- 错误推测法:基于历史缺陷数据和开发经验预测潜在问题
- 风险驱动测试:优先覆盖高风险区域和高频使用场景
6. 复杂业务场景覆盖
- 跨模块集成测试:多个系统/模块间的协作验证
- 上下游依赖测试:数据源、外部接口、消息队列等依赖验证
- 接口联动测试:REST API、GraphQL、WebSocket 等多协议接口协同
- 异常兜底测试:服务降级、熔断、重试机制的有效性验证
- 逆向操作测试:撤销、回滚、补偿操作的正确处理
7. 用例规范化与可落地性
- 格式统一:符合企业规范的表格或文档格式
- 字段完整:必填信息不缺失,元数据齐全
- 可执行性强:直接用于人工测试或自动化脚本生成
- 回归友好:易于维护和更新,支持版本迭代
- 自动化对接:步骤可映射为测试代码,预期结果可断言
- 质量评估支撑:覆盖率指标可量化,缺陷密度可统计
8. 页面跳转与路由测试
- 页面跳转测试:按钮跳转、列表跳详情页、菜单跳转、外部链接跳转
- 详情页跳转测试:从列表页点击进入详情页,校验数据展示完整性
- 关联页面跳转:从当前页面跳转到业务关联页面(如订单→用户、商品→店铺)
- 路由参数测试:URL 参数传递、query 参数、path 参数、参数缺失/错误处理
- 跳转权限校验:未登录跳转登录页、无权限跳转 403、越权访问拦截
- 跳转回退测试:浏览器后退、返回按钮、面包屑导航、历史栈管理
- 异常跳转测试:404 页面、空数据页面、错误参数跳转、循环跳转检测
9. 跳转后页面校验
- 页面渲染校验:页面元素完整、布局正确、无错位/缺失
- 数据加载校验:详情数据与列表一致、数据格式正确、空状态处理
- 标题匹配校验:页面标题与内容匹配、动态标题更新正确
- 参数传递校验:路由参数正确传递到目标页、参数解析无误
- 页面状态校验:加载状态、成功状态、错误状态、空状态显示正确
- 交互功能校验:详情页内按钮、表单、Tab 切换等功能正常
10. 跨页面联动逻辑
- 多页面业务关联:分析页面间的业务流程关系,设计端到端测试
- 数据传递测试:页面间数据传递、表单数据携带、状态共享
- 状态同步测试:一个页面操作后,关联页面状态同步更新
- 缓存一致性:页面返回后数据是否刷新、缓存策略验证
- 消息通知联动:操作后触发通知,通知点击跳转正确页面
输出模板
测试用例 Excel/表格格式
| 测试用例编号 | 测试类型 | 功能模块 | 子功能 | 测试标题 | 用例级别 | 预置条件 | 测试步骤 | 预期结果 | 实际结果 |
|---|
| TC_XXX_001 | 功能测试 | 用户管理 | 登录 | 验证正确的用户名和密码可以成功登录 | P0 | 1. 用户已注册<br>2. 网络正常 | 1. 打开登录页面<br>2. 输入正确的用户名<br>3. 输入正确的密码<br>4. 点击登录按钮 | 1. 跳转至首页<br>2. 显示用户信息 | 待执行 |
测试用例编号规则
TC_{模块缩写}_{功能序列号}_{场景后缀}
示例:
TC_USER_LOGIN_001_NORMAL - 用户模块 - 登录功能 - 第 001 条 - 正常场景
TC_ORDER_DETAIL_002_JUMP - 订单模块 - 详情页 - 第 002 条 - 跳转场景
TC_PRODUCT_LINK_003_CROSS - 商品模块 - 关联页面 - 第 003 条 - 跨页面联动
用例级别定义
| 级别 | 说明 | 适用场景 |
|---|
| P0 | 关键用例 | 核心业务流程、阻碍系统正常使用的问题、主流程跳转 |
| P1 | 重要用例 | 主要功能、影响用户体验的问题、详情页跳转、权限校验 |
| P2 | 一般用例 | 次要功能、不影响主体流程的问题、关联页面跳转 |
| P3 | 可选用例 | 边缘场景、美化优化相关、异常参数跳转 |
测试类型分类
- 功能测试:验证功能是否符合需求
- 性能测试:响应时间、吞吐量、资源占用
- 安全测试:身份认证、授权、数据加密、XSS/SQL 注入
- 兼容性测试:浏览器、操作系统、设备分辨率
- 回归测试:修改后验证原有功能未受损
- 接口测试:API 契约、数据传输、错误处理
- UI 测试:界面布局、交互体验、文案准确性
- 路由测试:页面跳转、路由参数、URL 规范、浏览器历史
- 联动测试:跨页面数据传递、状态同步、业务关联
使用方法
触发场景
当用户提供以下类型的请求时,此技能自动激活:
- 生成/编写测试用例:"帮我写一下用户登录功能的测试用例"
- 完善用例:"这些测试用例不够全面,请补充异常场景"
- 审查用例:"检查一下这些测试用例是否有遗漏"
- 转换格式:"把 Word 里的需求转换成测试用例"
- 补充覆盖:"这个支付功能还缺哪些测试场景"
- 评审辅助:"我需要准备测试用例评审,生成一套完整的用例"
- 页面跳转测试:"帮我设计列表跳详情页的测试用例"
- 路由参数测试:"这个页面 URL 带参数,怎么测试"
- 跨页面联动:"订单页和用户页有关联,怎么设计用例"
输入要素
为生成高质量的测试用例,尽量提供以下信息:
- 需求描述:功能需求的详细说明
- 业务背景:该功能在整体产品中的定位
- 约束条件:技术限制、合规要求等
- 目标用户:主要使用人群及其特征
- 关联系统:涉及的其他模块或第三方服务
- 页面路由信息:URL 结构、路由参数、跳转逻辑
- 页面关联关系:页面间的业务关联、数据流向
输出内容
- 完整测试用例集:涵盖所有识别出的测试点
- 测试优先级排序:按 P0-P3 分级展示
- 覆盖率说明:已覆盖的测试维度列表
- 缺失风险提示:可能存在的测试盲区建议
- 页面跳转专项说明:跳转路径、参数校验、权限检查
- 联动场景说明:跨页面数据流、状态同步点
最佳实践
用例设计原则
✅ DO - 推荐做法
- 每个用例只验证一个明确的目标
- 使用清晰的数字序号标记步骤
- 预期结果使用"应该/必须/会"等确定性词汇
- 包含正向和反向两种情况的验证
- 标注敏感信息的脱敏处理方式
- 为复杂场景添加截图或伪代码说明
- 页面跳转用例明确标注跳转目标页面
- 路由参数用例覆盖参数缺失、错误、越界场景
- 联动用例标注数据传递路径和同步点
❌ DON'T - 避免做法
- 模糊的描述如"检查是否可以正常工作"
- 一次性执行过多无关操作
- 忽略前置条件和环境配置
- 混合多个验证点在一个步骤中
- 使用主观判断代替客观测量
- 忽略异常处理流程
- 忽略跳转后的页面状态校验
- 忽略路由参数的安全性校验
- 忽略跨页面数据一致性问题
用例评审要点
- 完整性检查:是否覆盖所有需求点和隐性场景
- 独立性检查:用例之间是否存在强依赖关系
- 可执行性检查:步骤是否清晰、工具是否可得
- 可维护性检查:命名规范、变更可追溯
- 优先级合理性:P0 用例是否真正关键
- 跳转覆盖检查:页面跳转路径是否全覆盖
- 参数校验检查:路由参数测试是否充分
- 联动逻辑检查:跨页面数据流是否清晰
用例管理建议
- 建立用例库版本管理机制
- 定期清理过期或废弃的用例
- 根据缺陷反馈持续优化用例
- 结合自动化测试框架进行用例复用
- 保持用例与需求版本的关联性
- 为页面跳转用例维护路由映射表
- 为联动用例维护页面依赖关系图
示例案例
示例 1:电商下单功能测试用例
## 订单模块 - 商品下单 - P0
### TC_ORDER_CREATE_001 正常下单流程
**测试类型**: 功能测试
**功能模块**: 订单管理
**子功能**: 商品下单
**用例级别**: P0
**预置条件**:
1. 用户已登录且账户余额充足
2. 商品库存大于 0
3. 收货地址已配置
**测试步骤**:
1. 浏览商品详情页
2. 选择规格型号(如有)
3. 点击"立即下单"按钮
4. 确认订单信息(商品、数量、价格、收货地址)
5. 选择支付方式
6. 点击"提交订单"
7. 完成支付
**预期结果**:
1. 进入订单确认页
2. 订单金额计算准确(含运费优惠)
3. 订单创建成功,返回订单号
4. 库存扣减正确
5. 收到订单 confirmation 通知
**实际结果**: 待执行
示例 2:用户注册功能异常场景
## 用户模块 - 注册 - P1
### TC_USER_REGISTER_002 邮箱格式错误
**测试类型**: 功能测试
**功能模块**: 用户管理
**子功能**: 用户注册
**用例级别**: P1
**预置条件**: 访问注册页面
**测试步骤**:
1. 在邮箱输入框输入不完整格式的邮箱(如 abc@com)
2. 输入合法的密码和确认密码
3. 点击"注册"按钮
**预期结果**:
1. 邮箱字段显示红色错误提示
2. 提示内容明确告知格式要求
3. 无法继续提交表单
4. 控制台无报错日志
**实际结果**: 待执行
示例 3:列表跳详情页测试
## 商品模块 - 列表跳详情 - P0
### TC_PRODUCT_LIST_001 正常跳转详情页
**测试类型**: 路由测试
**功能模块**: 商品管理
**子功能**: 列表跳详情
**用例级别**: P0
**预置条件**:
1. 用户已登录
2. 商品列表页有数据
**测试步骤**:
1. 打开商品列表页
2. 点击任意商品卡片/名称
3. 等待页面跳转完成
4. 校验详情页展示内容
**预期结果**:
1. 成功跳转到商品详情页
2. URL 包含正确的商品 ID(如 /product/12345)
3. 详情页展示的商品信息与列表一致
4. 商品图片、价格、库存等关键信息正确
5. 详情页功能按钮(购买、收藏等)可用
**实际结果**: 待执行
示例 4:路由参数测试
## 订单模块 - 详情页 - P1
### TC_ORDER_DETAIL_002 路由参数缺失
**测试类型**: 路由测试
**功能模块**: 订单管理
**子功能**: 详情页路由
**用例级别**: P1
**预置条件**: 用户已登录
**测试步骤**:
1. 手动访问订单详情页 URL,但省略订单 ID 参数(如 /order/detail?id=)
2. 观察页面反应
**预期结果**:
1. 页面显示错误提示"订单 ID 不能为空"
2. 或自动跳转到订单列表页
3. 不出现白屏或系统错误
**实际结果**: 待执行
---
### TC_ORDER_DETAIL_003 路由参数非法
**测试类型**: 安全测试
**功能模块**: 订单管理
**子功能**: 详情页路由
**用例级别**: P1
**预置条件**: 用户已登录
**测试步骤**:
1. 手动访问订单详情页 URL,传入非法订单 ID(如 /order/detail?id=abc)
2. 观察页面反应
**预期结果**:
1. 页面显示"订单不存在"或类似提示
2. 不展示任何订单详情信息
3. 不提供越权访问其他订单的入口
**实际结果**: 待执行
示例 5:跨页面联动测试
## 订单模块 - 用户关联 - P1
### TC_ORDER_USER_001 订单页跳用户详情页
**测试类型**: 联动测试
**功能模块**: 订单管理
**子功能**: 关联页面跳转
**用例级别**: P1
**预置条件**:
1. 用户已登录
2. 存在已完成的订单
**测试步骤**:
1. 打开订单详情页
2. 点击买家信息区域的用户名称/头像
3. 等待页面跳转
4. 校验跳转目标页面
**预期结果**:
1. 成功跳转到用户详情/店铺页
2. 用户信息与订单中的买家信息一致
3. URL 包含正确的用户 ID
4. 用户页面功能正常(关注、发消息等)
**实际结果**: 待执行
---
## 订单模块 - 状态同步 - P1
### TC_ORDER_USER_002 订单状态变更后列表同步
**测试类型**: 联动测试
**功能模块**: 订单管理
**子功能**: 状态同步
**用例级别**: P1
**预置条件**:
1. 用户已登录
2. 存在待发货订单
**测试步骤**:
1. 打开订单列表页,记录订单状态
2. 点击进入订单详情页
3. 在详情页执行发货操作
4. 返回列表页(浏览器后退或点击面包屑)
5. 检查订单列表中该订单状态
**预期结果**:
1. 列表页订单状态已更新为"已发货"
2. 或页面提示刷新后显示最新状态
3. 数据与详情页操作结果一致
**实际结果**: 待执行
示例 6:权限跳转测试
## 系统模块 - 权限控制 - P0
### TC_SYS_AUTH_001 未登录访问详情页
**测试类型**: 安全测试
**功能模块**: 权限管理
**子功能**: 登录拦截
**用例级别**: P0
**预置条件**: 用户未登录
**测试步骤**:
1. 直接访问需要登录的详情页 URL(如 /order/detail?id=123)
2. 观察页面跳转
**预期结果**:
1. 自动跳转到登录页
2. 登录成功后能回到原访问页面(携带 redirect 参数)
3. 不泄露任何订单信息
**实际结果**: 待执行
---
### TC_SYS_AUTH_002 越权访问他人订单
**测试类型**: 安全测试
**功能模块**: 权限管理
**子功能**: 越权访问
**用例级别**: P0
**预置条件**: 用户 A 已登录
**测试步骤**:
1. 获取用户 B 的订单 ID
2. 用户 A 访问用户 B 的订单详情页(/order/detail?id=用户 B 订单 ID)
3. 观察页面反应
**预期结果**:
1. 显示"无权访问"或"订单不存在"
2. 不展示任何用户 B 的订单信息
3. 记录安全日志
**实际结果**: 待执行
示例 7:浏览器回退测试
## 通用模块 - 浏览器历史 - P2
### TC_BROWSER_BACK_001 详情页返回列表
**测试类型**: 路由测试
**功能模块**: 浏览器历史管理
**子功能**: 回退功能
**用例级别**: P2
**预置条件**:
1. 用户在商品列表页
2. 列表有分页或筛选条件
**测试步骤**:
1. 在列表页设置筛选条件(如价格区间、品牌)
2. 点击某个商品进入详情页
3. 使用浏览器后退按钮返回
4. 检查列表页状态
**预期结果**:
1. 返回列表页而非首页
2. 之前的筛选条件保持
3. 滚动位置保持或合理重置
4. 列表数据未丢失
**实际结果**: 待执行
质量保证标准
用例评审通过标准
- ✅ 覆盖率达标: 核心功能 P0 用例覆盖率 100%
- ✅ 逻辑自洽: 无矛盾或冲突的步骤描述
- ✅ 可执行性: 可在 3 分钟内完成单条用例验证
- ✅ 边界覆盖: 输入边界、异常场景均有对应用例
- ✅ 优先级合理: P0 用例不超过总数 30%
- ✅ 跳转覆盖: 页面跳转场景全覆盖
- ✅ 参数校验: 路由参数测试完整
- ✅ 联动完整: 跨页面数据流测试清晰
交付质量标准
- 用例总数不低于需求点的 3 倍(包含异常场景)
- P0+P1 用例占比不低于 60%
- 每条用例平均步骤数 3-8 步
- 无空洞描述,预期结果均可客观验证
- 符合企业测试管理规范格式要求
- 页面跳转用例包含跳转目标、参数、权限校验
- 联动用例包含数据传递路径和同步点说明
技术支持
常用测试方法速查
等价类划分示例:
- 年龄输入框:有效等价类 [1,120],无效等价类 <1, >120, 非数字
- 状态下拉:有效等价类 [启用,禁用,冻结],无效等价类 其他任意值
- 路由参数:有效等价类 [合法 ID 格式],无效等价类 [空值、非数字、超长、特殊字符]
边界值分析示例:
- 文件上传大小限制 10MB:9MB, 10MB, 10.1MB
- 文本框限制 200 字符:199 字,200 字,201 字
- 列表分页:第 1 页、最后 1 页、超出最大页码
判定表示例:
| 条件 | A(有优惠券) | B(满 100 元) | C(可用) | 结果 |
|---|
| 1 | Y | Y | Y | 可以使用 |
| 2 | Y | Y | N | 不可用(已过期) |
| 3 | Y | N | Y | 不可用(不满足门槛) |
| 4 | N | Y/Y | Y/Y | 不适用 |
页面跳转测试检查清单
跨页面联动测试检查清单
附录
常见测试数据类型
| 数据类型 | 有效范围 | 典型边界 | 异常示例 |
|---|
| 整数 | -2147483648 到 2147483647 | -1, 0, 1, 最大值,最大值 +1 | 小数、字母 |
| 浮点数 | 根据精度要求 | 0.0, 0.1, 最小正数 | 无穷大、NaN |
| 字符串 | 1-200 字符 | 0 字符、200 字符、201 字符 | null、emoji、特殊符号 |
| 日期 | 1970-01-01 到 2099-12-31 | 前一天、当天、后一天 | 未来年份、非法日期 |
| 布尔值 | true/false | - | 1, 0, "true", "" |
| 枚举 | predefined values | 首项、末项、中间项 | 不在定义范围内的值 |
| 路由参数 | 符合 URL 规范 | 正常 ID、空值、边界值 | 特殊字符、SQL 注入、XSS |
参考资源
- ISTQB 测试术语标准
- ISO/IEC/IEEE 29119 软件测试标准
- Google Testing Blog
- Microsoft Test Engineering Guidelines
- Web 路由测试最佳实践
- 前端页面联动测试指南