generate-test-docs

从需求文档自动生成专业测试文档,具备项目感知、持续学习和专业测试设计方法能力。

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "generate-test-docs" with this command: npx skills add himicoswilson/himi-claude-plugins/himicoswilson-himi-claude-plugins-generate-test-docs

自主学习型测试文档生成器

从需求文档自动生成专业测试文档,具备项目感知、持续学习和专业测试设计方法能力。

核心能力

  • 专业测试设计方法:等价类划分、边界值分析、场景法、错误推测法

  • 需求追溯矩阵:自动生成需求-用例追溯关系,计算覆盖率

  • 优先级管理:P0-P3 优先级分类,支持冒烟/核心/全量回归测试集

  • 自主学习:学习项目模板、领域术语、命名规范

  • 交互式确认:关键节点询问用户,支持快速/专家双模式

交互模式

详见 INTERACTION-PATTERNS.md

模式定义

模式 名称 适用场景 确认方式

quick

快速模式 日常生成、熟悉流程 回车继续,仅问题时询问

expert

专家模式 首次使用、精细控制 每阶段确认,完整预览

交互检查点

检查点 阶段 Quick 模式 Expert 模式

解析确认 Phase 2.5 摘要 + 有问题时询问 完整列表 + 等待确认

歧义处理 Phase 2.6 仅关键歧义 所有歧义

生成预览 Phase 2.8 统计数据 统计 + 样例 + 可调整

输出选择 Phase 2.9 确认默认配置 完整格式选择

模式切换

  • 首次运行:询问用户选择模式

  • 命令切换:切换模式 / 快速模式 / 专家模式

  • 偏好存储:.memory/user-preferences.json

首次使用

检测或询问用户项目结构:

  • 模板文件夹路径(默认: ./templates )

  • 需求文档路径(默认: ./requirements )

  • 创建 .memory 文件夹用于存储学习数据

安装依赖:

pip install openpyxl PyMuPDF python-docx

测试设计方法

详见 TEST-DESIGN-METHODS.md

方法选择指南

需求特征 推荐方法

有明确输入范围/格式要求 等价类划分 + 边界值分析

涉及业务流程/多步骤操作 场景法

历史缺陷多/高风险模块 错误推测法

核心4种方法

等价类划分法 (EP)

  • 划分有效/无效等价类

  • 一条用例覆盖多个有效类,每个无效类单独覆盖

边界值分析法 (BVA)

  • 测试边界点:上点、离点、内点

  • 对闭区间 [a,b]:测试 a-1, a, b, b+1

场景法 (ST)

  • 识别基本流、备选流、异常流

  • 每条路径生成对应用例

错误推测法 (EG)

  • 基于经验推测常见错误

  • 补充特殊字符、极端值、并发等测试

用例设计流程

  1. 等价类划分 → 识别所有输入的有效/无效等价类 ↓
  2. 边界值分析 → 对每个等价类的边界进行测试 ↓
  3. 场景法 → 覆盖主要业务流程(基本流+备选流+异常流) ↓
  4. 错误推测 → 补充经验性测试用例

需求追溯与覆盖率

详见 TRACEABILITY.md

追溯矩阵

生成用例时自动关联需求ID,输出包含:

  • 正向追溯:需求ID → 关联用例列表

  • 反向追溯:用例 → 来源需求

  • 覆盖率统计:需求覆盖率、覆盖深度

需求ID提取规则

自动识别需求文档中的ID模式:

  • REQ_001 、REQ-123

  • F1.2 、F-3.1.2

  • US_042

  • JIRA格式:PROJ-123

若无明确ID,自动生成:MOD_{模块缩写}_{序号}

优先级与回归分类

详见 TEST-PRIORITY.md

优先级定义

级别 定义 来源

P0 核心功能,不可用则系统无法使用 基本流用例

P1 主要功能,影响核心业务流程 备选流 + 边界值

P2 次要功能,不影响主流程 异常流 + 错误推测

P3 体验优化,边缘场景 边缘错误推测

回归测试集

测试集 包含用例 执行时机

冒烟测试 所有 P0 每次构建

核心回归 P0 + P1 每日/提测

全量回归 所有 发版前

项目感知

识别项目结构

  • 扫描项目根目录

  • 查找 templates/ 、requirements/ 、docs/ 等目录

  • 识别模板文件和需求文档

  • 将识别结果存入 .memory/project-context.json

支持的文档格式

格式 扩展名 提取脚本

PDF .pdf scripts/extract_document.py --format pdf

Word .docx scripts/extract_document.py --format docx

Markdown .md 直接读取

富文本 .rtf scripts/extract_document.py --format rtf

.memory 记忆系统

Skill 在项目中创建 .memory/ 文件夹,存储学习数据:

project-context.json

{ "project_name": "电商平台", "detected_at": "2024-01-15", "template_dir": "./templates", "requirements_dir": "./requirements", "output_dir": "./test-docs" }

template-schemas.json

{ "test_case": { "source": "./templates/测试用例模板.xlsx", "columns": ["用例编号", "模块名称", "用例标题", "优先级", "关联需求ID", "设计方法", "前置条件", "测试步骤", "预期结果", "实际结果", "是否通过", "回归类型", "备注"], "id_format": "TC_{module}_{seq:03d}", "learned_at": "2024-01-15" } }

terminology.json

{ "domain_terms": { "SKU": "库存单位", "GMV": "商品交易总额" }, "module_abbreviations": { "用户登录": "LOGIN", "购物车": "CART" } }

generation-history.json

{ "generations": [ { "date": "2024-01-15", "type": "test_case", "source": "PRD-v1.0.pdf", "output": "登录模块_测试用例_v1.xlsx", "case_count": 25, "coverage_rate": "95%" } ] }

Workflow

Phase 0: 项目初始化(首次运行)

  • 询问或检测项目结构

  • 询问交互模式:Quick(快速)或 Expert(专家)

  • 创建 .memory/ 文件夹

  • 学习模板结构,存入 template-schemas.json

  • 提取领域术语,存入 terminology.json

  • 保存用户偏好到 user-preferences.json

Phase 1: 读取需求

  • 用户指定需求文档或文件夹

  • 调用 scripts/extract_document.py 提取文本

  • 返回结构化内容

Phase 2: 解析需求

  • 读取 .memory/terminology.json 理解领域术语

  • 提取需求ID:识别或生成需求唯一标识

  • 结构识别:功能模块、验收条件、业务规则

  • 等价类划分:识别输入的有效/无效等价类

  • 边界值提取:识别数值、长度、时间边界

  • 场景流识别:识别基本流、备选流、异常流

  • 错误推测补充:根据输入类型和模块类型触发

  • 歧义检测:识别不明确的需求描述

  • 参考 PARSING-RULES.md

Phase 2.5: 【检查点1】解析确认

使用 AskUserQuestion 确认解析结果:

Expert 模式:

显示完整解析结果表格:

  • 识别的模块列表(名称、需求数、缩写)
  • 提取的需求ID列表(ID、名称、验收条件数)
  • 识别的业务规则
  • 识别的边界条件

等待用户确认:确认 / 修改 / 重新解析

Quick 模式:

显示摘要:已识别 X 个模块,Y 条需求,Z 条规则

仅在发现警告时询问用户 无警告则自动继续

Phase 2.6: 歧义处理

对检测到的歧义需求逐一询问:

需求原文:{text} 歧义类型:边界不明确 / 规则冲突 / 条件缺失 我的理解:{interpretation}

请选择:

  1. 接受我的理解
  2. 提供不同解释
  3. 跳过此需求
  4. 标记为待确认
  • Expert 模式:询问所有歧义

  • Quick 模式:仅询问影响 P0/P1 的关键歧义

Phase 2.8: 【检查点2】生成预览

使用 AskUserQuestion 预览生成方案:

Expert 模式:

显示优先级分布:P0/P1/P2/P3 数量和占比 显示设计方法分布:EP/BVA/ST/EG 显示样例用例:每个优先级展示1条

可选操作:

  • 调整优先级分布
  • 增加/减少特定类型用例
  • 预览特定模块

Quick 模式:

显示统计:将生成 X 条用例,P0:X | P1:X | P2:X | P3:X

仅在分布异常时询问(如 P0 > 20%) 正常则回车继续

Phase 2.9: 【检查点3】输出选择

使用 AskUserQuestion 选择输出格式:

Expert 模式:

多选输出格式:

  • Excel 测试用例
  • Markdown 测试用例
  • 测试计划文档
  • 测试报告模板

单选追溯矩阵:

  • 包含在Excel中
  • 单独生成文件
  • 不生成

Quick 模式:

确认默认配置(基于上次选择或默认):

  • ✅ Excel 测试用例(含追溯矩阵)
  • ✅ 覆盖率统计

回车确认,或输入"更多"选择其他格式

Phase 3: 生成文档

  • 读取 .memory/template-schemas.json 获取模板结构

  • 分配优先级:根据用例类型自动判断 P0-P3

  • 设置回归类型:根据优先级映射冒烟/核心/全量

  • 标记设计方法:EP/BVA/ST/EG

  • 关联需求ID:每个用例记录来源需求

  • 调用 scripts/generate_excel.py 生成 Excel(含追溯矩阵)

Phase 4: 更新记忆

  • 记录本次生成到 generation-history.json

  • 如有新术语,更新 terminology.json

  • 保存用户偏好到 user-preferences.json

  • 如用户反馈,调整学习数据

输出格式

测试用例 Excel

默认列:

列名 说明

用例编号 TC_{MODULE}_{SEQ:03d}

模块名称 功能模块

用例标题 测试点简述

优先级 P0/P1/P2/P3(下拉选择,带颜色)

关联需求ID REQ_XXX(支持多个,逗号分隔)

设计方法 EP/BVA/ST/EG

前置条件 执行前提

测试步骤 详细操作步骤

预期结果 期望行为

实际结果 执行时填写

是否通过 通过/未通过/阻塞/未执行

回归类型 冒烟/核心/全量

备注 补充说明

额外 Sheet(启用追溯时):

  • 需求追溯矩阵:需求ID、关联用例、覆盖状态

  • 覆盖率统计:总需求数、覆盖率、优先级分布

测试计划 Markdown

固定8章节结构:

  • 测试目标

  • 测试范围

  • 测试策略

  • 测试环境

  • 测试资源

  • 测试进度

  • 风险与应对

  • 交付物

测试报告 Markdown

固定5章节结构:

  • 执行概述

  • 测试统计

  • 缺陷分析

  • 覆盖率报告

  • 结论与建议

脚本调用

提取文档

python3 "${SKILL_ROOT}/scripts/extract_document.py"
--input "/path/to/PRD.pdf"
--format pdf
--output "/tmp/prd-content.json"

生成 Excel(带追溯矩阵)

python3 "${SKILL_ROOT}/scripts/generate_excel.py"
--output "测试用例.xlsx"
--data '[{"用例编号":"TC_LOGIN_001", "优先级":"P0", "关联需求ID":"REQ_001", ...}]'
--traceability
--requirements '[{"id":"REQ_001", "name":"用户登录"}]'

管理记忆

python3 "${SKILL_ROOT}/scripts/memory_manager.py"
--action init
--project "/path/to/project"

学习能力

自动学习

  • 首次使用时学习模板结构

  • 从需求文档积累领域术语

  • 识别命名规范并保持一致

用户反馈学习

  • 用户修正后,询问是否记住

  • 将反馈存入记忆供后续使用

记忆更新命令

"更新术语表" → 重新扫描并更新 terminology.json "重新学习模板" → 重新解析模板结构 "清除记忆" → 删除 .memory 文件夹

约束

  • 需求追溯:所有用例必须关联需求ID

  • 方法标记:所有用例必须标记设计方法

  • 优先级覆盖:P0 占比 10-15%,P1 占比 30-40%

  • 交互确认:Expert 模式下每个检查点必须等待用户确认

  • 歧义处理:发现不明确需求时必须询问用户(可配置)

  • 模式记忆:用户模式偏好存入 .memory/user-preferences.json

  • 遵循项目已有的命名规范

  • 不凭空编造需求中不存在的场景

  • 默认输出中文,除非项目配置为其他语言

  • .memory 文件夹应加入 .gitignore(可选)

参考文档

  • INTERACTION-PATTERNS.md - 交互模式与问题模板

  • TEST-DESIGN-METHODS.md - 核心4种测试设计方法详解

  • TRACEABILITY.md - 需求追溯矩阵规范

  • TEST-PRIORITY.md - 优先级与回归分类

  • PARSING-RULES.md - 需求解析规则

  • MEMORY-SCHEMA.md - 记忆文件结构

  • LEARNING-RULES.md - 学习规则

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

parallel-tasks

No summary provided by upstream source.

Repository SourceNeeds Review
General

yuqing-bitable-and-label

Incrementally sync data from XiaoAi API to Feishu Bitable and optionally auto-label records with machine-based type and sentiment annotations.

Registry SourceRecently Updated
General

张律师综合套装

张律师法律AI中台 - 中国首个开源法律AI技能库,涵盖刑事辩护、民商事诉讼、合同审查全流程

Registry SourceRecently Updated