
一条龙演示:如何用两个 OpenCode【也可以用其他的Agent,如WorkBuddy、OC、CC】 技能,把一份软件需求规格(SRS)自动展开为结构化测试规格/测试点(TestSpec)与可执行测试用例集(TestCase),并最终导出 Excel 评审表。
1. 项目背景、目的与收获
传统测试设计高度依赖个人经验:需求逐条拆解易遗漏、等价类/边界值等技术靠手感、用例文档散乱难追溯。
本项目以「图书管理系统」为演练靶场-有源码,用 AI 技能(Skill)固化测试方法论,让需求 → 测试点 → 用例的链路可复用、可追溯、可审计。
目的
- 沉淀一套通用型测试设计技能,不绑定具体项目,任何软件系统都可套用;
- 用「逐需求 × 14 类测试技术」强制审视,杜绝测试点丢失;
- 产出带可追溯矩阵与统计表的用例文档,直接用于评审与执行。
参与者能学会
- 如何写一份支撑测试设计的详细需求规格(SRS);
- 如何用测试需求分析技能把 SRS 拆成测试点(TestSpec);
- 如何用测试设计技能把测试点展开为完整用例(TestCase);
- 如何用 14 类测试技术(等价类、边界值、决策表、状态迁移、场景法、异常、非功能等)覆盖需求;
- 如何生成同名 Excel 用例表,落地评审与跟踪。
2. 所需环境与项目结构
演练测试对象——图书管理系统:基于 Flask + SQLite 的可运行 Web 系统(library_management/),含书目、读者、借阅、罚款、预约、统计、系统管理七大模块,一键 start.bat 启动,自带种子数据,是测试设计的真实输入。
依赖的 OpenCode:OpenCode 是技能化 AI 编码助手,按 .opencode/skills/<skill>/SKILL.md 自动发现技能。本项目两个核心技能即存放于此,开箱即用、可跨项目复用。
完整目录结构(含各文件作用)
AIforTestDesignWorkshop/
├─ 图书管理系统_需求规格说明书.md # SRS ,可以是word,但要先转换成md文档,注意word中的图表转换;
├─ 图书管理系统_TestSpec.md # 测试规格输出:41需求×14类技术覆盖表 + 292测试点
├─ 图书管理系统_TestCase.md # 测试用例输出:292条用例(12列明细) + 统计表
├─ 图书管理系统_TestCase.xlsx # 测试用例输出:同名 Excel:用例清单 + 需求用例统计 两工作表
├─ 图书管理系统/ # 本实战演练的 目标测试系统,具备SRS中描述的基本功能;
│ └─ library_management/ # SUT 源码
│ ├─ app.py / services.py / db.py # 路由 / 业务 / 数据访问
│ ├─ start.bat / requirements.txt # 一键启动 / 依赖
│ ├─ templates/ (7个页面) # 前端页面
│ └─ data/library.db # 种子数据库
└─ .opencode/skills/
├─ test-requirement-analysis/ # 技能1:需求→测试规格 的业务skill
│ ├─ SKILL.md
├─ test-case-design/ # 技能2:测试点→用例
│ ├─ SKILL.md
│ ├─ references/ # 参考:测试技术/故障模式/易错点,可结合业务补充,有效性的关键参考输入
│ │ ├─ test_design_techniques.md
│ │ ├─ software_fault_mode.md
│ │ └─ fault_examples.md
│ └─ tools/ # Markdown 用例→Excel 导出脚本
│ │ └─ testcase_to_xls.py
└─ word-to-md/ # 辅助技能:Word 转 Markdown
├─ SKILL.md实战项目演练包 AIforTestDesignWorkshop.zip 获取:
3. 演练流程图与技能介绍
操作流程图

核心技能
- word-to-md(辅助,可选):将 Word 需求文档转为 Markdown,便于技能读取。
- test-requirement-analysis(测试需求分析):通读 SRS,提取功能/业务规则/非功能需求,对每条需求逐一审视 14 类测试技术(适用 → 测试点,不适用 → 写明理由),输出含「逐需求 × 逐技术覆盖表」与「测试点清单(10 列)」的 TestSpec,并做技术闭环自检。
- test-case-design(测试设计):承接 TestSpec,1:1 把测试点展开为完整用例;先产出关键字段等价类 + 边界值表、状态迁移覆盖表,再落地单一 12 列用例明细表,附覆盖矩阵与按需求统计的 16 列统计表;配套
testcase_to_xls.py一键导出 Excel。
4. 开始实战演练
步骤 1| 准备环境:
- 克隆/打开
AIforTestDesignWorkshop作为 OpenCode 工作目录,把本实战中的几个skill归档到相应目录(参见前面目录结构),并确认.opencode/skills下技能已自动加载; - Python 环境需装
openpyxl(用于导出 xlsx)。
步骤 2| 审阅 SRS:
- 准备好、并阅读
图书管理系统_需求规格说明书.md,熟悉七大模块与 §9 边界场景,作为后续输入。 - 若是其他业务场景,把相应的 *_需求规格说明书.md、word文档也放入同样目录;
步骤 3| 运行技能 1 生成 TestSpec:
- 在OpenCode对话中输入“基于 图书管理系统_需求规格说明书.md 开展测试需求分析,生成测试 Spec”;
- OpenCode,会自动执行test-requirement-analysis 技能,将产出
图书管理系统_TestSpec.md。
步骤 4| 运行技能 2 生成 TestCase:
- 在OpenCode对话中输入“基于 图书管理系统_TestSpec.md 开展测试设计,生成测试用例”;
- 技能产出
图书管理系统_TestCase.md和图书管理系统_TestCase.xls(若python环境OK)
步骤 5| 导出 Excel:
- 运行
tools/testcase_to_xls.py(自动定位*_TestCase.md),生成同名.xlsx,用于筛选、排序、评审。
⚠️ 注意:导出前先在技能说明里确认 openpyxl 安装路径;脚本与技能均不绑定本项目,可复用。
步骤 6| 评审与回归:
人工审检用例;如需调整,可优化 SRS、几个skill, 后重跑步骤3~5。
5. 实战演练成果展示
本次演练以 296 行需求规格为输入,完整跑通技能链路,最终交付:
- TestSpec(测试规格):覆盖 41 个需求条目(功能 23 + 业务规则 11 + 非功能 7),逐需求 × 14 类测试技术共 574 行覆盖判定,其中不适用项均附理由;产出 292 个测试点(TP-001\~TP-292 连续无缺口),业务规则数值(借阅 ≤5、借期 30 天、续借 1 次/15 天、预约 ≤3/3 天、罚款 0.5 元·天封顶 50、ISBN 978/979、密码 8–20 位)全部落入测试点预期与边界种子。


TestCase(测试用例):292 个测试点 1:1 展开为 292 条可执行用例(TC-BOOK / READER / LOAN / RPT / SYS / BR / NFR 七大模块),每条含 12 字段(预置条件/步骤/数据/预期/通过标准等),无信息丢失。

需求用例统计表:41 个需求 × 16 列,按技术列示用例数(不适用填 NA),总计与分项一致。

Excel 交付物:
图书管理系统_TestCase.xlsx含「用例清单(Summary)」(292 行 ×12 列)与「需求与用例设计统计」(41 行 ×16 列)两工作表,可直接评审跟踪。
一句话总结:从一份 SRS 到 292 条带追溯、带统计、带 Excel 的用例,全程由两个可复用 AI 技能驱动——这就是 AI 辅助测试设计实战演练的完整价值。
觉得内容不错?我要