# AI-generate-testcase **Repository Path**: evening-li/ai-generate-testcase ## Basic Information - **Project Name**: AI-generate-testcase - **Description**: No description available - **Primary Language**: Unknown - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 8 - **Forks**: 4 - **Created**: 2026-04-03 - **Last Updated**: 2026-09-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AI Generate Testcase 测试用例自动化生成项目,通过 AI 辅助将需求文档(XMind / HTML 原型 / Word / Markdown 等)转化为系统化、可执行的测试用例(Excel)。同时沉淀项目业务知识库,使 AI 在设计用例时能够结合历史业务规则进行交叉分析。 ## 功能特性 - **需求深度分析**:解析 XMind 思维导图 + HTML 原型源码 + Word/Markdown 文档,识别业务规则和边界条件 - **业务知识库沉淀**:从每期需求中提炼核心流程、页面功能、角色权限、业务规则,写入 `.claude/knowledge/` - **知识库参考设计**:设计用例时自动读取历史知识库,与本期需求交叉结合,发现冲突和遗漏 - **功能点分解**:以页面/二级页为单位,两层拆分(模块类型 → 具体功能点) - **测试点生成**:覆盖正向/反向/边界/异常场景,输出 Markdown 测试点 - **测试用例生成**:基于测试点逐条转化,输出标准 Excel 测试用例 - **反馈闭环**:支持用户提供自编用例、指出执行偏差、澄清需求细节,持续优化用例质量 ## 项目结构 ``` testcase_v0.1/ ├── CLAUDE.md # 项目协作指南 ├── README.md # 项目说明(本文件) ├── cc.bat # 快捷命令脚本 ├── .claude/ # Claude 配置目录 │ ├── settings.json # Claude 配置 │ ├── knowledge/ # 项目业务知识库 │ │ ├── README.md # 知识库索引 │ │ ├── business-flow/ # 核心业务流程 │ │ ├── modules/ # 页面和功能说明 │ │ ├── roles/ # 角色权限 │ │ └── rules/ # 业务规则 │ └── skills/ # 技能目录 │ ├── xmind-reader/ # XMind 分支提取技能(Python 脚本) │ ├── excel-reader/ # Excel 读取技能(COM 方式) │ ├── test-case-design/ # 测试用例设计技能(核心编排) │ ├── test-markdown-generator/ # 测试点生成指南(无脚本) │ ├── test-excel-generator/ # 测试用例生成指南(无脚本) │ ├── test-plan-generator/ # 测试计划生成技能 │ ├── test-case-export/ # 测试用例导出脚本 │ └── knowledge-base/ # 业务知识库提炼技能 ├── test_input/ # 原始需求输入目录 │ └── {版本}/{需求}/prd/ # 存放 XMind 等格式的需求文件 └── test_output/ # 输出结果目录 └── {版本需求名称}/ ├── testpoint/ # 测试点输出(Markdown) │ └── user/ # 用户反馈目录(可选) └── testcase/ # 测试用例输出(Excel) └── user/ # 用户反馈目录(可选) ``` ## 快速开始 ### 1. 准备需求文档 将需求文件放入: ``` test_input/{版本号}/{需求名称}/prd/ ``` 支持的文件类型: - `.xmind` — XMind 思维导图(核心输入) - HTML 原型源码目录(Next.js 格式) - 其他:JSON 配置、API 文档、Word/Markdown 文档等 ### 2. 沉淀业务知识到知识库 对 AI 说 **"提炼知识"** 并提供需求文档路径,AI 将从原始材料中提炼四类知识: | 类别 | 说明 | 输出目录 | |------|------|----------| | 核心业务流程 | 用户从哪里进入、经过哪些步骤、完成什么操作 | `.claude/knowledge/business-flow/` | | 页面和功能说明 | 每个模块的入口、按钮、字段、状态 | `.claude/knowledge/modules/` | | 角色权限 | 不同角色能看到什么、能操作什么 | `.claude/knowledge/roles/` | | 业务规则 | 展示/隐藏条件、不可操作状态、状态流转 | `.claude/knowledge/rules/` | ### 3. 执行测试用例设计 对 AI 说 **"设计用例"** 并提供需求文档路径,AI 将按以下七步流程执行: | 步骤 | 说明 | 输出 | |------|------|------| | 第一步 | 需求深度分析与澄清(同步读取知识库) | 需求分析结果 + 3~5 个澄清问题 | | 第二步 | 功能点分解(两层拆分) | 功能点清单(模块 → 页面 → 功能点) | | 第三步 | 测试点分析 | 测试点 Markdown | | 第四步 | 测试用例模板确认 | 策略已固化,直接应用 | | 第五步 | 测试用例转化策略 | 策略已固化,直接应用 | | 第六步 | 测试用例输出 | 功能测试用例(Excel)+ 自检清单 | | 第七步 | 反馈闭环与调整 | 差异分析 + 调整策略(可选) | > **流程强制性**:每一步的输出是下一步的输入,不允许跳过或并行执行。 > 第一步完成后需等待用户回答澄清问题,再进入第二步。 > > **知识库参考原则**:本期需求为最高优先级,知识库仅作为参考补充;冲突时以本期需求为准。 ### 4. 查看输出结果 - 测试点:`test_output/{版本需求名称}/testpoint/{版本} 测试点.md` - 测试用例:`test_output/{版本需求名称}/testcase/{版本} 功能测试用例.xlsx` ## 核心技能 ### test-case-design(核心编排技能) 当用户提到"设计用例"、"写测试用例"、"帮我出用例"、"测试点分析"时自动触发。 **触发方式**: - 直接说"设计用例"并提供需求文档路径 - 使用 `/test-case-design` 命令 **核心职责**: - 编排七步执行流程,控制步骤间关卡(Gate) - 读取 `.claude/knowledge/` 历史知识库作为参考补充 - 调用 xmind-branch-extract.py 按模块关键词提取 XMind 完整分支 - 调用 test-markdown-generator 生成测试点 - 调用 test-excel-generator 生成测试用例 - 调用 excel-reader 读取用户反馈用例 - 调用 test-case-export 输出 Excel 文件 ### knowledge-base(业务知识库提炼技能) 当用户提到"提炼知识"、"更新知识库"、"整理项目知识"、"沉淀需求到知识库"时自动触发。 **触发方式**: - 直接说"提炼知识"并提供需求文档路径 - 使用 `/knowledge-base` 命令 **核心职责**: - 从原始材料中提炼核心业务流程、页面功能、角色权限、业务规则 - 将提炼结果写入 `.claude/knowledge/` 对应目录 - 更新 `.claude/knowledge/README.md` 索引 - 输出提炼摘要,标注"待补充"项 **职责边界**: - 只提炼和沉淀知识 - 不做需求分析、不写测试点、不写测试用例 ### xmind-reader 从 XMind 文件中按关键词提取完整分支内容。 ```bash python .claude/skills/xmind-reader/xmind-branch-extract.py <模块关键词> [-o 输出文件路径] ``` **使用示例**: ```bash python .claude/skills/xmind-reader/xmind-branch-extract.py \ "test_input/V2.0.6课程与教务一期/V2.0.6需求整理.xmind" \ "学生管理" \ -o temp_xs.txt ``` **说明**: - XMind 文件本质是 ZIP,核心内容在 `content.json` - 脚本直接读取 ZIP 原始字节,按模块关键词定位并切出完整分支 - 输出文件为格式化 JSON,使用 `Read` 工具读取即可获取完整中文叶子节点 - 避免 Windows 控制台编码损坏导致的需求遗漏 ### excel-reader 读取 Excel 文件(支持加密/特殊格式/网页导出格式)。 ```bash python .claude/skills/excel-reader/excel-reader.py <文件路径> [-n 行数] [-s 工作表] [-p 密码] [--json] ``` **特点**: - 使用 Windows Excel COM 对象,让 Excel 自己处理格式 - 支持非标准 xlsx、WPS 特殊格式、加密文件 - 需要 Windows 系统 + Microsoft Excel 已安装 ### test-markdown-generator 指南型技能,指导 AI 生成 Markdown 格式测试点(无执行脚本)。 - 基于功能点清单逐点分析 - 结合 `.claude/knowledge/rules/` 和 `.claude/knowledge/roles/` 验证规则与权限 - 覆盖正向/反向/边界/异常场景 ### test-excel-generator 指南型技能,指导 AI 将测试点转化为 Excel 测试用例(无执行脚本)。 - 基于测试点逐条转化 - 应用固化的模板和转化策略 - 结合知识库验证业务规则一致性 - 输出标准 Excel 格式(.xlsx) ### test-plan-generator 根据需求或测试用例生成测试计划文档。 ### test-case-export 执行脚本,将 AI 设计的测试用例输出为 Excel 文件(仅执行输出,不参与设计)。 ## 测试设计方法论 ### 功能点定义标准(两层拆分) **第一层:识别模块类型** | 类型 | 说明 | 示例 | |------|------|------| | 数据展示类 | 列表页、详情页、数据看板 | 岗位列表、统计看板 | | 数据操作类 | 表单页、批量操作、导入导出 | 新增岗位、批量删除 | | 流程类 | 向导/多步骤流程、审批/工作流 | 审批流程 | | 系统功能类 | 用户账户、权限/角色管理 | 角色管理 | | 特殊功能类 | 文件管理、消息/通知 | 文件上传 | **第二层:识别具体功能点** - 列表页:数据展示、分页、查询/筛选、排序、行操作、批量操作、导入导出 - 表单页:输入框校验、下拉选择、日期时间选择、文件上传、提交保存 - 数据看板:指标卡片、图表展示、筛选联动、数据下钻 ### 测试点覆盖维度 | 维度 | 说明 | |------|------| | 正向流程 | 基础操作、核心链路 | | 输入域验证 | 边界值、等价类、格式校验、空值处理 | | 业务规则 | 状态流转、权限控制、数据计算 | | 异常场景 | 网络超时、数据缺失、操作失败 | | 角色权限视角 | 多角色可见/可操作范围 | | 流程回归视角 | 历史核心流程是否被破坏 | ### 强制覆盖检查项 - [ ] 空状态覆盖(列表、看板、筛选结果、弹窗搜索) - [ ] 数据联动刷新(增删改后相关区域同步更新) - [ ] 边界操作(批量操作多选、混合状态) - [ ] 文件上传数量限制(单张/多张、达到上限后继续上传) - [ ] 安全测试(XSS/SQL 注入、空格处理,优先级 3 级) - [ ] 多角色/权限场景按角色拆分或前置条件明确角色身份 - [ ] 历史知识库规则与本期需求的一致性/冲突点 ## 用例规范 ### 用例名称 - ≤20 字,"操作 + 对象"或"验证 + 约束"格式 - 禁止:数字前缀、【】符号、预期结果 - ✅ `正确密码登录`、`错误密码登录提示`、`空用户名登录校验` - ❌ `1、【登录】输入正确密码,登录成功` ### 前置条件/步骤/预期 - 使用实际换行,编号 1. 2. 3. - 步骤与预期严格一一对应 - 每用例步骤 ≤5 条 - 登录/进入模块操作放在前置条件,不写入步骤 ### 优先级 | 等级 | 说明 | |------|------| | 1 | 核心正向/冒烟测试 | | 2 | 重要功能/异常流程 | | 3 | 边界/安全/辅助功能 | | 4 | 增强探索 | ### 用例转化策略 | 策略 | 规则 | |------|------| | 合并与拆分 | 正向连续操作合并;反向校验、边界值独立拆分 | | 表单等价类精简 | 按风险分级(🔴高/🟡中/🟢低),高字段独立,低字段组合覆盖 | | 多状态合并 | 同一操作的不同可操作状态合并为一个用例 | | 用例独立性 | 用例之间无显式依赖,通过前置条件独立准备数据 | ## Excel 输出格式 | 列名 | 说明 | |------|------| | 用例 ID | TC-0001 开始编号 | | 所属模块 | /平台/模块 路径 | | 用例名称 | 精简,≤20 字,无预期,无前缀 | | 前置条件 | 1.2.3. 编号,换行分隔 | | 步骤 | 1.2.3. 编号,换行分隔 | | 预期 | 与步骤一一对应,换行分隔 | | 优先级 | 1/2/3/4 | | 用例类型 | 功能测试/异常测试 | | 适用阶段 | 功能测试阶段 | ## 反馈闭环(第七步) 当用户提供反馈时,AI 执行第七步:补全 → 对比 → 调整。 ### 反馈方式 | 方式 | 说明 | |------|------| | 文件反馈 | 将自编测试点/用例放入对应 `user/` 目录 | | 对话反馈 | 在对话中直接指出遗漏、错误或执行偏差 | | 需求澄清 | 澄清需求细节(如业务规则确认、实现范围等) | ### 反馈类型 | 类型 | 场景 | 处理方式 | |------|------|----------| | A | 用户提供自编用例 | 风格对比 → 调整输出策略 | | B | 用户指出执行偏差 | 过程纠偏 → 回溯修正 → 重新生成 | | C | 用户澄清需求细节 | 影响评估 → 修正测试点/用例 → 重新导出 | ### 用户反馈目录结构 ``` test_output/{版本需求名称}/ ├── testpoint/user/ │ └── {版本} 测试点 - 用户版.md └── testcase/user/ └── {版本} 功能测试用例 - 用户版.xlsx ``` ## 关键防错规则 1. **禁止读取 `test_output/` 代替需求分析**:`test_output/` 是输出目标,不是输入。第一步只能读 `test_input/` 下的原始需求文件。 2. **第一步必须输出澄清问题**:XMind + 源码 + 知识库全部读取后,必须提出至少 3-5 个澄清问题,等待用户回答后再进入第二步。 3. **测试用例必须基于测试点逐条转化**:覆盖全部测试点。 4. **第二步必须输出功能点清单**:以页面/二级页为单位,在对话中列出分层结构。 5. **知识库仅作为参考补充**:本期需求为最高优先级,不得用历史规则替代或削弱本期新需求覆盖。 ## 步骤间关卡(Gate) | 关卡 | 从 → 到 | 检查项 | |------|---------|--------| | Gate 1 | 第一步 → 第二步 | 需求 + 知识库全部读取完成;至少 3-5 个澄清问题已提出;等待用户回答 | | Gate 2 | 第二步 → 第三步 | 已输出功能点清单;参考了 references/ 分类清单和 knowledge/ 已有模块说明 | | Gate 3 | 第三步 → 第六步 | 测试点已写入文件;与功能点清单对应;已结合 knowledge/rules/ 和 knowledge/roles/ 验证 | | Gate 4 | 第六步 → 第七步 | 用例数量 ≥ 测试点数量;步骤/预期编号匹配;自检清单通过;用例与知识库规则无冲突 | | Gate 5 | 第七步 → 结束 | 用户反馈已处理;相关文件已重新生成并验证;如规则变更已提示更新知识库 | ## 业务知识库 项目业务知识库存放于 `.claude/knowledge/`,包含: | 目录 | 内容 | |------|------| | `business-flow/` | 核心业务流程 | | `modules/` | 页面和功能说明 | | `roles/` | 角色权限 | | `rules/` | 业务规则 | 已沉淀的历史需求: - V2.0.1 岗位平台 - V2.0.2 组织架构 - V2.0.3 场景管理 - V2.0.4 测评认证 - V2.0.5 产业联盟 ## 依赖环境 - **Python**: 3.6+ - **操作系统**: Windows 10/11 - **Microsoft Excel**: 已安装(excel-reader 依赖) - **Python 依赖**: ```bash pip install pywin32 ``` ## 参考资料 - `.claude/skills/test-case-design/references/` 目录 - `功能测试功能点、测试点、测试用例.md` — 功能点分类与测试点覆盖清单(列表页 12 类、表单页 19 类、批量操作 15 类、导入导出 7 类等) - `测试分析设计方法.md` — 测试设计方法详解(等价类、边界值、场景法等) - `.claude/knowledge/` 目录 - `business-flow/` — 核心业务流程 - `modules/` — 页面和功能说明 - `roles/` — 角色权限 - `rules/` — 业务规则 ## 许可证 本项目采用 [MIT License](LICENSE)