Install
openclaw skills install @kokxi/qa-testcase-generator从需求文档(Markdown/PDF/Word)或图片流程图中生成结构化 Excel 测试用例。 当用户提到以下内容时触发:生成测试用例、编写测试用例、从需求提取测试场景、 根据需求文档/设计文档/接口文档/流程图生成测试、需要按业务域分组的测试报告、 测试覆盖、测试计划。输出带有优先级着色和模块分隔行的格式化 Excel 文件。 不适用于:生成自动化测试脚本(Selenium/Playwright)、执行测试运行、搭建测试框架。
openclaw skills install @kokxi/qa-testcase-generator从需求文档生成结构化 Excel 测试用例。核心是将需求映射到可验证的测试场景。
版本: V1.1.0 | 最后更新: 2026-06-29
阶段一:业务域分析 ═══> output/phase1_domains.json
↓
阶段二:需求提取与分类 ═══> output/phase2_requirements.json
↓
阶段三:测试设计 ═══> output/phase3_design.json
↓
阶段四:用例生成 ═══> output/test_cases.json
↓
阶段五:输出 Excel ═══> output/xxx.xlsx
每个阶段由 AI 按顺序执行,各阶段输出独立 JSON 文件到 output/ 目录,形成可追溯的审计链条。阶段五调用 scripts/writer.py 生成格式化 Excel。
必须阅读 references/quality.md 获取完整清单,涵盖:
⚠️ 生成用例完毕后,必须对照
references/quality.md中的"输出验证清单"逐项确认。
由 AI 执行,无需 Python 脚本。
扫描文档,找出独立的业务域。每个域记录:
示例输出:
业务域:订单管理
├── 核心实体:订单、订单项、收货地址
├── 业务规则:库存扣减规则、价格计算规则
├── 状态流转:待支付→已支付→已发货→已完成→已退款
└── 域间交互:依赖用户域、库存域
按重要性分层,决定测试深度:
| 层级 | 定义 | 测试深度 |
|---|---|---|
| 核心层 | 没有它业务跑不起来 | 穷尽各种场景 |
| 重要层 | 影响体验但不阻塞 | 主流程 + 关键异常 |
| 辅助层 | 锦上添花 | 仅主流程 |
| 基础层 | 通用能力 | 基本功能验证 |
将分析结果整理为结构化 JSON,必须保存到 output/phase1_domains.json:
{
"业务域": [{
"名称": "订单管理", "层级": "核心层",
"核心实体": ["订单", "订单项", "收货地址"],
"关键规则": ["库存扣减规则", "价格计算规则"],
"状态流转": ["待支付→已支付→已发货→已完成"],
"关联域": ["用户管理", "库存管理"]
}]
}
⚠️ 如果文档未明确描述业务域,根据上下文推断并标注
[推断]。不允许返回空列表。
由 AI 执行,无需 Python 脚本。输出保存到 output/phase2_requirements.json。
从文档中提取每条可验证的需求。来源包括章节标题、段落、列表项、表格中的功能描述、图片/流程图中的标注文字。
判断每条需求的复杂度来源(可多项):
| 复杂度来源 | 识别信号 |
|---|---|
| 输入空间 | 长度限制、取值范围、格式要求 |
| 状态组合 | 状态转换、生命周期、流转条件 |
| 条件逻辑 | 多条件判断、分支规则、权限控制 |
| 流程步骤 | 多步骤操作、业务流程、操作序列 |
| 配置组合 | 多参数组合、多环境配置、选项交叉 |
在功能基础上,识别额外的质量属性:
| 质量属性 | 触发条件 |
|---|---|
| 可靠性 | 有错误处理、容错、恢复、超时等描述 |
| 效率 | 有响应时间、并发、性能指标等描述 |
| 安全性 | 有认证、授权、加密、注入防护等描述 |
| 兼容性 | 有浏览器、操作系统、分辨率、移动端适配等描述 |
| 易用性 | 有 UI、交互、用户体验等描述 |
| 可维护性 | 有日志、监控、配置、审计等描述 |
每条需求检查是否可测:
| 可测性状态 | 定义 | 处理方式 |
|---|---|---|
| 可测 | 输入输出明确,结果可验证 | 正常生成用例 |
| 不可测 | 描述模糊,无法设计验证步骤 | 标记不可测,不生成用例 |
| 需澄清 | 缺少关键细节 | 做合理假设,标注[假设]说明假设内容 |
判断示例:
| 需求描述 | 可测性 | 原因 |
|---|---|---|
| "密码长度必须为8-20位" | ✅ 可测 | 明确的输入范围和验证条件 |
| "系统应具有良好的用户体验" | ❌ 不可测 | "良好"是主观判断 |
| "系统应在高并发下保持稳定" | ⚠️ 需澄清 | 缺少并发数、持续时间标准 |
{
"需求": [{
"编号": "REQ-001", "描述": "用户注册时密码长度必须为 8-20 位",
"业务域": "用户管理", "复杂度来源": ["输入空间"],
"质量属性": ["功能", "安全性"], "可测性": "可测", "不可测原因": ""
}]
}
⚠️ 每条需求的
业务域必须对应阶段一输出的业务域[].名称。标注为"不可测"的需求不生成用例。
由 AI 执行,无需 Python 脚本。输出保存到 output/phase3_design.json。
阅读 references/design_methods.md 获取完整的方法选择矩阵和步骤结构指导。
核心原则:根据复杂度来源选择方法(输入空间→边界分析,状态组合→状态迁移,条件逻辑→判定表,流程步骤→场景法,配置组合→Pairwise)。单一需求可用多种方法组合。
针对每个业务域,按以下顺序设计:
功能用例基础上,根据阶段二标记的质量属性扩展:可靠性→异常输入/超时,效率→响应时间/并发,安全性→越权/注入/SQLi,易用性→流程合理性/错误提示,可维护性→日志/配置。
{
"设计策略": [{
"业务域": "订单管理",
"设计方法": ["场景法", "状态迁移", "边界分析"],
"覆盖目标": {
"核心实体": ["订单CRUD", "订单项CRUD"],
"业务规则": ["库存扣减", "价格计算"],
"状态流转": {
"合法转换": ["待支付→已支付", "已支付→已发货", "已发货→已完成", "待支付→已取消"],
"非法转换": ["已取消→已支付", "已完成→退货"]
},
"质量属性扩展": ["可靠性:超时场景", "安全性:越权访问"]
},
"预期用例数": 8
}]
}
此输出将作为阶段四生成用例的直接依据。
设计方法字段决定用例使用的具体方法,覆盖目标中的每一项都应至少生成一条用例。
由 AI 执行,无需 Python 脚本。阅读 references/quality.md 获取数据生成规则。
每条用例必须包含以下字段:
| 字段 | 说明 | 示例 |
|---|---|---|
| 用例编号 | TC-NNN,全局连续 | TC-001 |
| 业务域 | 与阶段一输出一致 | 订单管理 |
| 优先级 | P0/P1/P2/P3 | P0 |
| 测试维度 | 功能/安全/性能/可靠性/兼容性/易用性/可维护性 | 功能 |
| 用例类型 | 冒烟/回归/探索性/验收 | 冒烟测试 |
| 设计方法 | 场景法/边界分析/状态迁移/判定表 | 场景法 |
| 测试场景 | 测试场景描述 | 主流程:用户成功下单 |
| 测试点 | 具体验证点 | 验证正常下单流程完整性 |
| 操作步骤 | 步骤数组,每条含 步骤 + 操作 + 预期 | [{"步骤":1, "操作":"...", "预期":"..."}] |
| 测试数据 | 具体值(非"测试数据") | 邮箱: test@example.com |
| 前置条件 | 执行前的环境准备 | 用户已登录 |
| 需求来源 | 关联的需求编号 | REQ-001 |
| 标签 | 标签列表(不出现在 Excel) | ["场景法","主流程","P0"] |
每种设计方法的步骤结构不同,详见 references/design_methods.md:
{
"测试用例": [{
"用例编号": "TC-001", "业务域": "订单管理", "优先级": "P0",
"测试维度": "功能", "用例类型": "冒烟测试", "设计方法": "场景法",
"测试场景": "主流程验证:用户成功下单",
"测试点": "验证正常下单流程的完整性",
"操作步骤": [
{"步骤": 1, "操作": "打开商品详情页", "预期": "页面正确展示商品信息"},
{"步骤": 2, "操作": "点击「加入购物车」", "预期": "商品成功添加,购物车角标更新"},
{"步骤": 3, "操作": "进入购物车页面并点击「结算」", "预期": "跳转到订单确认页,商品和金额正确"},
{"步骤": 4, "操作": "选择收货地址并提交订单", "预期": "订单创建成功,跳转到支付页面"},
{"步骤": 5, "操作": "验证数据库订单状态", "预期": "订单状态为「待支付」"}
],
"测试数据": "已登录用户、有效商品 ID、有效收货地址",
"前置条件": "用户已登录、商品库存充足、收货地址已维护",
"需求来源": "REQ-001", "标签": ["场景法", "主流程", "P0"]
}]
}
AI 组装数据 → 调用 scripts/writer.py 生成 Excel。
合并阶段一、二、四的输出:
{
"元数据": {"源文件": "order.md", "生成时间": "ISO格式", "需求总数": 10, "用例总数": 20, "覆盖率": "100%"},
"业务域": [{"名称": "订单管理", "层级": "核心层", "核心实体": ["订单"], "状态流转": ["待支付→已支付→已发货"]}],
"测试用例": [{"用例编号": "TC-001", "业务域": "订单管理", "优先级": "P0", ...}],
"覆盖统计": {"按业务域": {"订单管理": 5}, "按设计方法": {"场景法": 3}}
}
# 方式一:从文件读取
python3 scripts/writer.py output/testcases_data.json
# 方式二:从标准输入
echo '<JSON>' | python3 scripts/writer.py
writer.py 自动生成带格式的 Excel:
操作步骤[].预期 提取渲染为独立列生成 Excel 后,对照 references/quality.md "输出验证清单"逐项检查。
| 格式 | 提取方式 | 推荐工具 |
|---|---|---|
Markdown (.md) | 直接读取分析 | — |
PDF (.pdf) | 提取文本后分析 | scripts/extract_pdf.py 或 pdfplumber |
Word (.docx) | 提取文本后分析 | scripts/extract_docx.py 或 python-docx |
图片/流程图 (.png/.jpg) | AI 视觉分析 | 结合 references/image_analysis.md |
对于 PDF/Word,优先使用
scripts/目录中的提取脚本,避免每次都自行写提取代码。
详见 references/image_analysis.md。核心策略:
| 图表类型 | 分析方法 | 用例生成 |
|---|---|---|
| 流程图 | 识别决策节点和路径 | 路径覆盖 + 分支用例 |
| 状态图 | 识别状态和转换条件 | 状态转换用例 |
| 序列图 | 识别消息流和时序 | 集成 + 时序用例 |
| UI 原型 | 分析界面元素和交互 | UI 交互用例 |
| 文件 | 内容 | 何时阅读 |
|---|---|---|
references/quality.md | 质量检查清单 + 测试数据规则 + 输出验证 | 生成前和生成后 |
references/design_methods.md | 设计方法详解 + 步骤结构 + 优先级分配 | 阶段三/四 |
references/image_analysis.md | 图片/流程图处理策略 | 输入含图片时 |
references/templates.md | 用例模板参考 | 需要参考格式时 |
references/environment.md | 环境配置和依赖安装 | 首次运行 |
references/troubleshooting.md | 常见问题排查 | 运行出错时 |
python scripts/writer.py examples/用户管理系统_测试用例.json
examples/ 目录包含 36 条用例、6 个业务域的完整示例。
| 版本 | 日期 | 变更说明 |
|---|---|---|
| V1.1.0 | 2026-06-29 | 重构评估体系:74 条断言 + 3 个提取脚本 + 阶段独立输出 + 迭代 pipeline |
| V1.0.1 | 2026-06-29 | 拆分质量清单和设计方法至 references/,增加阶段独立输出 |
| V1.0.0 | 2026-06-27 | 初始版本:五阶段工作流、中文字段、Excel输出 |