Vitest Testing
提供 Vitest 单元测试与集成测试的模式与最佳实践,涵盖断言、异步测试与模拟方法。
基于8维评估框架生成与评审标准化功能测试用例。
openclaw skills install @zengzhaoyu2528/functional-test-case-standard命令、参数、文件名以原文为准
本技能提供高质量功能性测试用例编写的标准指南,以及一个八维度测试用例质量评估框架。
核心功能:
在设计测试用例前,需使用以下5种方法进行深度需求分析,以提取所有测试细节:
对需求文档中的每一句话进行分析,识别以下四类关键词:
输出:每个识别出的元素转化为一个验证项。
示例:
- 条件:所有必填字段已填写 → 使用有效/无效组合进行测试
- 动作:点击提交按钮 → 验证按钮是否可点击且响应正常
- 状态:显示成功提示 → 验证提示文本是否准确
- 数据:跳转至订单列表 → 验证页面跳转是否正确
识别从开始到结束的完整业务流程:
输出:每个节点和分支均生成一个测试场景。
示例(订单流程):
追踪数据在其完整生命周期中的流转路径:
输出:每个数据转换环节均成为验证项。
示例(用户注册):
将系统建模为有限状态机:
输出:每个合法与非法转换均生成一条测试用例。
示例(订单状态):
从不同用户视角进行分析:
输出:每个角色与场景的组合生成一条测试用例。
示例(文件上传):
- 功能模块清单
- 业务规则清单
- 异常场景清单
- 测试数据清单
本技能支持两种输出格式,用户可自行选择:
| 格式 | 触发条件 | 说明 |
|---|---|---|
| Markdown(默认) | 用户未指定格式 | 生成标准 Markdown 测试用例文档 |
| XMind 思维导图 | 用户明确请求“mindmap format”、“XMind format”或“both md and xmind” | 额外生成 XMind 思维导图文件,用于可视化评审 |
| 维度 | 使用场景 | 结构 | 适用时机 |
|---|---|---|---|
| 评审维度(默认) | 质量评估、同行评审、需求覆盖分析 | 按照:模块 → 功能 → 测试点 → 验证项(关注完整性和覆盖度) | 当相关方需要审查测试用例覆盖情况、在需求评审会议中、进行质量审计时 |
| 执行维度 | 测试执行、自动化测试、逐步测试 | 按照:模块 → 测试用例 → 步骤 → 预期结果(关注可执行性和可追溯性) | 当测试人员执行测试用例、生成自动化脚本、处于测试执行阶段时 |
生成前询问用户:
默认行为:若用户未指定,以评审维度生成 Markdown 格式。
评审维度结构:
产品需求名称
├── I. 模块名称
│ ├── 1.1 子功能名称
│ │ ├── 1.1.1 功能点
│ │ │ ├── 测试点:条件验证
│ │ │ │ ├── [ ] 验证项 1
│ │ │ │ ├── [ ] 验证项 2
│ │ │ │ └── [ ] 验证项 3
│ │ │ └── 测试点:业务规则验证
│ │ │ ├── [ ] 验证项 1
│ │ │ └── [ ] 验证项 2执行维度结构:
产品需求名称
├── I. 模块名称
│ ├── 1.1 子功能名称
│ │ ├── TC-001: [模块][平台] 功能 - 条件 - 验证
│ │ │ ├── 前置条件:...
│ │ │ ├── 步骤
│ │ │ │ ├── 1. ...
│ │ │ │ ├── 2. ...
│ │ │ │ └── 3. ...
│ │ │ ├── 预期结果
│ │ │ │ ├── 1. ...
│ │ │ │ ├── 2. ...
│ │ │ │ └── 3. ...
│ │ │ └── 优先级:P0/P1/P2每次生成测试用例时都会创建带版本号的文件,以支持可追溯性和历史对比。
文件命名规范:
{需求名称}-v{MMdd_HHmmss}.md
{需求名称}-v{MMdd_HHmmss}.xmind时间戳格式:
MMdd_HHmmss(月日_时分秒)0318_143052 表示 3 月 18 日 14:30:52示例:
- user-registration-enhancement-v0318_143052.md
- user-registration-enhancement-v0318_143052.xmind(若请求生成 XMind 文件)
版本管理优势:
版本对比:
当用户请求对比多个版本时:
按功能项设计测试用例。将具有相似业务或操作特性的功能点归类为“功能项”——每个功能项包含一个或多个相似的功能点。针对某一功能项,输入一组特定数据或操作序列,并验证该功能项内各功能点对应的唯一输出结果。
理解测试层级划分,避免过度依赖单一类型的测试。该金字塔指导资源分配与功能测试的设计重点。
/\
/ \ 端到端测试(数量少、速度慢、维护成本高)
/----\ ————————————————————————————————————————
/ \ 接口/集成测试(数量适中、速度较快)
/--------\ ————————————————————————————————————————
/ \ 单元/组件测试(数量最多、速度最快、成本最低)
/------------\| 层级 | 范围 | 速度 | 维护成本 | 何时在此设计用例 |
|---|---|---|---|---|
| 单元测试 | 单个函数/类 | <100ms | 低 | 复杂业务逻辑、计算规则、状态机 |
| 集成测试 | 模块间交互 | <1s | 中等 | 数据库操作、消息队列、第三方服务调用 |
| 接口测试 | 接口契约 | <1s | 中等 | 参数校验、响应结构、错误码、认证机制 |
| 端到端测试 | 完整用户流程 | 几秒 ~ 数分钟 | 高 | 跨模块业务流程、用户关键路径 |
设计建议:
默认采用:二级粒度
| 等级 | 定义 | 特性 | 使用场景 |
|---|---|---|---|
| 等级 1 | 验证单一、独立、不可分割的功能点。最小的功能验证单元,具有明确的输入和预期输出。 | 最细粒度;每个用例测试一个边界或规则。 | 当需要精确隔离边界值和独立规则时使用。 |
| 等级 2(默认) | 将同类型或相关功能点的多个等级 1 点合并为一个小类别。 | 整合相似点以实现系统化组织;更易于管理和维护。 | 默认选择用于功能测试用例。在覆盖范围与可维护性之间取得平衡。 |
| 等级 3 | 进一步将同类型或业务相关的等级 2 用例整合为大类别。 | 聚焦更广泛的业务场景;更高层次的测试视角;维护成本更低。 | 当需要模块覆盖的高层概览时使用。 |
需求:用户名限制:长度 6-20 位,仅允许小写字母和数字。
等级 2 用例:
1. 输入长度少于 6 个字符的用户名
2. 输入长度超过 20 个字符的用户名
1. 显示错误提示:“用户名必须在 6-20 个字符之间”
2. 显示错误提示:“用户名必须在 6-20 个字符之间”
更多细粒度示例,请参见 [reference.md](reference.md)。
统一格式:[模块][平台] 功能 - 条件 - 验证点
命名原则:
示例:
[反馈][APP] 反馈创建 - 内容 - 长度验证[促销][WEB] 红包活动 - 手动停止 - 影响验证[户外广告管理][WEB] 广告文件导入 - 模板 - 销售区域3 必填字段格式:主模块_子模块_序号
user_reg_001、order_create_014、product_import_005| 字段 | 是否必填 | 说明 |
|---|---|---|
| 用例名称 | 是 | 遵循命名规范;基于输入条件的简洁描述 |
| 用例 ID | 是 | 主模块_子模块_序号 格式 |
| 前置条件 | 否 | 测试所需的前置条件、特定输入及材料 |
| 测试步骤 | 是 | 清晰、可执行的操作步骤,需包含具体 UI 元素 |
| 预期结果 | 是 | 功能项的唯一、清晰输出结果,包括状态变化 |
| 用例类型 | 是 | 功能 / 冒烟 / 主流程 / 单接口 / 接口流程 |
| 优先级 | 是 | P0(阻断/高) / P1(核心/中) / P2(正常/低) |
| 项目 | 是 | 该用例所属的项目 |
| 版本 | 是 | 该用例所属的版本 |
| 模块 | 是 | 该用例所属的模块 |
| 后置条件 | 否 | 影响范围;当需求变更时填写 |
| 类型 | 说明 |
|---|---|
| 功能测试用例 | 针对特定功能点设计,具有明确的输入与输出。例如:验证用户名长度限制,覆盖最大值、最小值及空值等边界情况。 |
| 冒烟测试用例 | 从测试套件中选取的 P0 用例。快速验证关键主功能是否可用,以判断是否可进行深入测试。 |
| 主流程业务用例 | 按照业务流程设计,覆盖从开始到结束的完整生命周期。例如:用户 A 创建订单 → B 处理 → C 审批 → D 完成支付。 |
| 单接口用例 | 验证接口输入参数:必填项、空值、错误类型、长度溢出等。 |
| 接口业务流程用例 | 通过接口操作完成整个业务流程,验证业务流程的完整性。 |
设计方法分为 5 类,根据功能项特性选择合适的方法。
适用场景:表单字段、数值范围、长度限制、日期范围、枚举值。
适用场景:多字段表单、配置组合、筛选组合、权限矩阵。
适用场景:审批流程、订单生命周期、有状态实体、多步骤操作。
适用场景:复杂遗留系统、历史缺陷密度高的区域、已修复缺陷的回归测试。
适用场景:回归测试用例设计、复杂有状态系统的测试设计。
| 功能项特征 | 推荐方法 |
|---|---|
| 包含多个字段的输入表单 | 等价类划分 + 边界值分析 + 决策表 |
| 带审批环节的业务流程 | 场景法 + 状态转换法 + 错误猜测法 |
| 配置 / 权限矩阵 | 成对测试 + 决策表 |
| API 参数校验 | 边界值分析 + 等价类划分 + 错误猜测法 |
| 复杂计算逻辑 | 等价类划分 + 边界值分析 + 属性测试 |
| 未知或新功能 | 风险导向测试 + 错误猜测法 |
1. 2. 3.将测试逻辑与测试数据分离。数据存储于外部文件(CSV、Excel、JSON、数据库)。同一测试用例可使用多组数据执行。
适用场景:多种账户类型登录、不同有效/无效输入的表单提交、支持多种文件格式的批量导入。
模板:
| 数据集 | 输入 | 预期结果 |
|--------|------|----------|
| 有效-1 | "user01" | 成功 |
| 有效-2 | "user123456" | 成功 |
| 无效-1 | "" | 错误:用户名不能为空 |
| 无效-2 | "ab" | 错误:最小长度为6 |对于仅输入值不同的用例,设计一个参数化用例:
{username}、{password}、{amount}当依赖项在测试设计阶段不可用或不稳定时:
创建 -> 审查 -> 维护 -> 归档| 阶段 | 关键活动 | 判断标准 |
|---|---|---|
| 创建 | 按标准编写用例;提交前自审 | 字段完整,设计理由清晰 |
| 审查 | 同行评审或小组评审;重点关注覆盖缺口与设计清晰度 | 覆盖率 ≥ 90% 的需求;无空字段;步骤清晰具体 |
| 维护 | 需求变更时更新用例;新增缺陷对应的用例 | 在需求变更后 1 个 sprint 内完成评审 |
| 归档 | 归档过时用例;不删除(保留审计追溯) | 用例在连续 2 个以上版本中不再适用 |
团队内使用一致的术语:
| 推荐用语 | 应避免的替代词 |
|---|---|
| 创建 | 添加、新建、插入 |
| 查询 | 筛选、搜索 |
| 编辑 | 修改、更新 |
| 删除 | 移除、清除 |
| 提交 | 保存、确认 |
| 导入 | 上传(仅限文件场景) |
| 导出 | 下载(仅限文件场景) |
对每位测试用例作者从以下 8 个维度进行评估(0-10 分制):
综合得分 = round(8个维度平均分, 1)
等级映射:
根据需求生成测试用例时,请遵循以下流程:
- 输出格式:仅 Markdown 或 Markdown + XMind?
- 导出维度:评审维度 或 执行维度?
- 应用全部5种分析方法(逐句分析、业务流程、数据流、状态转换、用户场景)
- 提取:功能模块、业务规则、异常场景、测试数据
- 从测试设计方法论部分选择合适的方法
- 默认采用 Level 2 细粒度
- 遵循命名规范和字段规则
- 创建基于时间戳的文件名:{name}-v{MMdd_HHmmss}.md
- 若请求 XMind:同时生成 {name}-v{MMdd_HHmmss}.xmind
- 按选定维度(评审或执行)进行结构化组织
- 运行编写检查清单
- 验证8维度质量标准
- 确保需求覆盖率 ≥ 95%
评估测试用例时,请按以下步骤操作:
- 每位作者的得分表
- 每位作者的优势
- 每位作者的改进建议
- 团队共性问题
- 可操作的建议
| 字段 | 值 |
|------|----|
| 用例ID | order_create_014 |
| 用例名称 | [订单管理][WEB] 订单创建 - 产品数量 - 边界值校验 |
| 项目 | 电商平台 |
| 版本 | V2.3.0 |
| 模块 | 订单处理 |
| 用例类型 | 功能测试用例 |
| 优先级 | P1 |
| 前置条件 | 1. 用户使用有效凭证登录<br>2. 库存中有可用商品 |
| 测试步骤 | 1. 进入订单管理 > 创建订单<br>2. 选择商品并输入数量为 0<br>3. 点击提交按钮<br>4. 输入数量为 999<br>5. 点击提交按钮 |
| 预期结果 | 1. 订单创建页面成功加载<br>2. 显示错误提示:“数量必须至少为1”<br>3. 显示错误提示:“单笔订单最大数量为100” |
| 后置条件 | 无 |提交测试用例前,请确认以下事项:
评审者使用此清单验证用例质量:
审查项 通过 不通过 备注
─────────────────────────────────────────────────────────
命名符合标准格式 □ □
ID 唯一且反映模块层级结构 □ □
前置条件描述充分 □ □
步骤可执行(具体到 UI 元素) □ □
预期结果可验证(具体明确) □ □
优先级分配合理 □ □
粒度适当(默认 Level 2) □ □
正向/负向覆盖均衡 □ □
测试数据具体明确 □ □
设计方法可识别 □ □
可追溯至需求 □ □
─────────────────────────────────────────────────────────
审查结论:通过 / 需修改 / 失败
评审人:__________ 日期:__________已收录 1 个 Skill