Skill: deathknightorg/req-to-testcase (version 1.0.0)

--- name: 需求生成用例 description: > 从需求文档自动生成全面覆盖的测试用例，并支持导出为 XMind 格式。 当用户上传需求文档（Word、PDF、Markdown、TXT）并要求生成测试用例时，必须触发本技能。 触发关键词：上传需求文档、解析需求、生成测试用例、测试用例转 XMind、 需求拆解、需求分析生成测试、全面测试覆盖、导出 XMind、生成脑图、测试点、测试场景。 只要用户上传了任何文档并提到「测试」「用例」「XMind」「需求拆解」「覆盖」等， 即使描述不完整，也应立即触发本技能，不要等待更多信息。 --- # 需求文档 → 全面测试用例 → XMind 技能 ## 技能概览 本技能完成以下完整工作流： ``` 上传需求文档 ↓ 解析并拆解需求点（识别功能点、业务规则、约束条件） ↓ 多维度生成测试用例（5大测试类型，全面覆盖） ↓ 导出 XMind .xmind 文件（可直接打开） ``` --- ## 快速决策 | 用户输入 | 执行动作 | |---------|---------| | 上传文档 + 要生成测试用例 | 读取文件 → 拆解需求 → 生成用例 → 输出 XMind | | 只上传文档，未说目的 | 主动询问：是否需要生成测试用例？ | | 已有需求列表（文字粘贴）| 直接进行需求拆解，跳过文件读取 | | 只要 XMind，不要表格 | 直接输出 XMind，省略 Markdown 表格 | | 指定某些测试类型 | 优先生成指定类型，其余按需补充 | --- ## 第一步：读取需求文档 使用 `scripts/read_requirement_file.py` 统一读取所有支持格式的需求文档，无需手动判断文件类型。 **执行步骤：** ```bash # 1. 确认上传的文件名 ls /mnt/user-data/uploads/ # 2. 调用读取脚本（自动识别格式并提取文本） python scripts/read_requirement_file.py /mnt/user-data/uploads/<文件名> ``` **脚本支持的格式：** | 格式 | 处理方式 | |------|---------| | `.txt` / `.md` | 直接读取 UTF-8 文本 | | `.docx` | python-docx 提取段落与表格 | | `.pdf` | pypdf 逐页提取文本 | | `.xlsx` / `.xlsm` / `.xls` | pandas 读取所有工作表 | | `.csv` | pandas 读取并格式化为文本表格 | 脚本位于 `scripts/read_requirement_file.py`，将提取的纯文本输出到 stdout，直接作为第二步的需求拆解输入。 > 若脚本报告缺少依赖，按提示执行 `pip install <包名> --break-system-packages` 后重试。 --- ## 第二步：拆解需求点 将原始需求文本结构化，识别以下要素： ``` 需求ID | 模块 | 功能描述 | 业务规则 / 约束 | 优先级 --------|---------|-------------------|----------------------------------|------- REQ-001 | 用户注册 | 用户填写信息完成注册 | 邮箱唯一、密码>=8位、手机号格式验证 | P0 REQ-002 | 商品搜索 | 按关键词搜索商品 | 支持模糊匹配、结果按销量排序 | P1 ``` **拆解规则：** 1. 每个独立功能点单独成一条需求 2. 显式的业务规则（格式、范围、唯一性等）逐一记录 3. 隐式约束（空值处理、并发、超时等）要主动推断补充 4. 识别数据流：输入→处理→输出，每个环节都是测试点 --- ## 第三步：多维度生成测试用例 **必须覆盖的 5 大测试类型**（详细策略见 `references/test-coverage.md`）： ### ① 正向功能测试 验证功能在正常输入下按预期运行。 - 典型场景：主流程走通 - 关键点：按需求描述一一验证，不遗漏任何功能点 ### ② 逆向 / 异常测试 验证系统对错误输入、异常状态的处理。 - 空值、null、缺失必填项 - 错误格式（邮箱不含@、手机号含字母等） - 非法操作（重复提交、越界操作等） ### ③ 边界值测试 在输入范围的边界处验证行为。 - 最小值、最小值-1、最大值、最大值+1 - 字符串：空串、1字符、最大长度、最大长度+1 - 数值：0、负数、小数、整数边界 - 日期：最早日期、最晚日期、跨年/跨月 ### ④ 业务规则测试 验证需求中明确或隐含的业务逻辑。 - 唯一性约束（重复注册、重复提交） - 状态机流转（订单状态只能正向流转） - 计算逻辑（金额、折扣、积分计算） - 关联规则（A 操作触发 B 变化） ### ⑤ 用户体验测试 - 操作反馈：加载中、成功/失败提示是否清晰 - 错误引导：提示语是否明确告知如何修正 - 流程连贯性：完成操作后跳转是否合理 --- ## 用例格式标准 每条用例输出以下字段： | 字段 | 说明 | |------|------| | 用例ID | TP-序号，如 TP-001 | | 所属模块 | 对应需求模块 | | 测试类型 | 正向/逆向/边界/业务规则/兼容/性能/体验 | | 用例标题 | 简洁描述"做什么-预期是什么" | | 前置条件 | 测试前系统需满足的状态 | | 测试步骤 | 编号步骤，操作具体可执行 | | 测试数据 | 具体输入值（边界值、特殊字符等） | | 预期结果 | 明确可验证的结果描述 | | 优先级 | P0/P1/P2/P3 | **优先级标准：** - **P0（冒烟）**：核心主流程，每次发版必跑（约 10-15%） - **P1（高优）**：主要功能路径，重要业务规则（约 30-40%） - **P2（一般）**：边界值、异常处理、次要功能（约 35-45%） - **P3（低优）**：兼容性细节、UI 美观、体验优化（约 5-10%） --- ## 用例数量参考 | 需求规模 | 预期用例数 | |---------|-----------| | 单个表单/弹窗 | 15~30 条 | | 单个功能模块 | 30~80 条 | | 完整业务流程 | 80~200 条 | | 完整系统需求文档 | 200~500 条 | --- ## 第四步：导出 XMind 使用 `scripts/xmind_tools2.py` 将测试用例列表生成兼容 XMind8 与 XMind2020 的 `.xmind` 文件。 **执行步骤：** ```bash # 1. 安装依赖（首次使用） pip install xmind --break-system-packages # 2. 调用生成脚本 python scripts/xmind_tools2.py ``` **脚本接口：** | 参数 | 说明 | |------|------| | `test_cases` | 测试用例列表，字段含 module / type / title / priority / precondition / steps / expected | | `project_name` | 根节点名称，默认 `"测试用例"` | | `output_dir` | 输出目录，默认 `/mnt/user-data/outputs` | 脚本位于 `scripts/xmind_tools2.py`，返回生成文件的绝对路径。 生成完毕后使用 `present_files` 工具分享文件。 > 若脚本报告缺少依赖，按提示执行 `pip install xmind --break-system-packages` 后重试。 --- ## 输出物清单 | 输出物 | 格式 | 说明 | |--------|------|------| | 需求拆解表 | Markdown 表格（内联展示） | 展示在对话中 | | 测试用例集 | Markdown 表格（内联展示）| 展示在对话中 | | XMind 文件 | `.xmind` 文件（可下载）| 用 `present_files` 分享 | --- ## 参考文档 | 文档 | 路径 | 何时读 | |------|------|--------| | 测试覆盖策略详解 | `references/test-coverage.md` | 需要某类测试的详细设计方法时 |


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (HIGH)