返回 Skill 列表
extension
分类: 效率与办公无需 API Key

testcase

requirement-to-testcase

person作者: anykillhubModelScope

需求文档 → 测试报告生成器

根据软件需求规格说明书,自动提取功能点并生成标准格式的测试报告Word文档。

核心原则

严格忠于需求文档:测试报告的内容必须严格基于需求文档原文,不任意发挥、不自行推测需求文档未描述的功能。

格式规范统一:每个测试用例遵循固定的6段式结构,保持全文一致。

输入要求

  • 需求文档(支持 .docx 格式)
  • 用户可能指定章节编号(如"输出第4章")
  • 用户可能提供输出样例作为格式参考

输出格式

输出为 .docx 格式的 Word 文档。

文档全局设置

  • 字体:宋体
  • 字号:五号(10.5pt)
  • 行间距:1.0
  • 标题按用户指定的章节编号编排

测试用例模板

每个测试用例严格按以下格式输出:

X.X.X.X 功能点名称
1、预设条件:xxxxx
2、输入数据
	xxxxx
3、执行步骤
	1) xxxxx
	2) xxxxx
	3) xxxxx
4、预期结果
	xxxxx
5、实际结果
	1) 后台接口请求正常
	2) 页面展示/操作结果符合预期

格式规则

  • 每个部分的序号规则:只有1条内容时不加序号,直接展示内容;多于1条时加序号(1) 2) 3)...)
  • 预期结果通常只有1条,不加序号
  • 实际结果固定2条,保持序号

目录层级

标题必须使用 Word 内置 Heading 样式来获得自动编号,不要在文字中手动写编号。Word 会根据 Heading 层级自动生成编号(如 5.1、5.1.1)。

| 层级 | Word 样式 | 自动编号效果 | 使用场景 | |------|----------|-------------|---------| | 一级 | Heading 1 (style 1) | 5 | 章标题,如"测试内容" | | 二级 | Heading 2 (style 2) | 5.1 | 模块名称,如"高密数据交付" | | 三级 | Heading 3 (style 3) | 5.1.1 | 子模块名称,如"数据源管理" | | 四级 | Heading 4 (style 4) | 5.1.1.1 | 每个测试用例名称 |

关键规则:

  1. 文字中不写编号 — 只写纯名称,如 高密数据交付 而非 5.1 高密数据交付,否则 Word 会显示为 "5.1 5.1 高密数据交付"
  2. 层级不能跳级 — 一级下直接用三级会破坏自动编号链条,必须依次使用
  3. 不需要编号的内容不用标题样式 — 如"对应需求""测试目的""预设条件"等标签行,用普通段落加粗即可,不要用 Heading 样式
  4. "对应需求"字段保留原始编号 — 如"5.1.1.1 数据源列表默认展示",这是引用需求文档的编号,不是文档自身的自动编号

常见错误:

  • 所有标题都用 style 2(Heading 2)→ 导致全部被编号为 5.1、5.2、5.3...(正确做法是按层级分配 style)
  • 在文字中手动写编号 → Word 显示为 "4.1 4.1 高密数据交付"(正确做法是去掉手动编号)
  • 测试用例用 Heading 2 → 导致编号错乱(正确做法是用 Heading 4)

处理流程

Step 1: 解析需求文档结构

使用 python-docx 读取需求文档,按 Heading 层级提取功能点:

  1. 定位用户指定的章节(如"第5章 业务功能需求")
  2. 提取 Heading 2 → 一级模块名
  3. 提取 Heading 3 → 二级模块名
  4. 提取 Heading 4 → 具体功能点名称
  5. 提取每个 Heading 4 下方的"功能描述"和"功能过程"段落

关键注意事项:

  • "功能描述"可能以"功能描述:"或"(1)功能描述:"开头
  • "功能过程"可能以"功能过程:"或"(2)功能过程:"开头
  • 需要处理多段落续接(描述/过程可能跨越多个Normal段落)
  • 在遇到下一个 Heading 时,必须先保存上一个功能点的数据,再开始新的

Step 2: 生成测试用例内容

对每个功能点生成6段内容:

预设条件:基于模块名和功能类型自动生成

  • 查看/展示类 → "账号具备XX模块访问权限,系统中已存在数据记录"
  • 新增/注册/添加类 → "账号具备XX操作权限,系统数据准备完成"
  • 删除类 → "账号具备XX删除权限,系统中已存在可操作的数据记录"
  • 搜索/筛选/查询类 → "账号具备XX权限,系统中已存在多条数据记录"
  • 执行/运行/部署类 → "账号具备XX权限,相关配置已完成"
  • 编辑/修改/配置类 → "账号具备XX权限,系统中已存在可编辑的数据记录"
  • 下线/停止类 → "账号具备XX权限,系统中已存在运行中的任务或服务"

输入数据:从功能描述中提取,去除"系统需""系统应"等前缀

执行步骤:从功能过程中提取,按分号/句号拆分为独立步骤

预期结果:使用功能描述原文(截取前250字符)

实际结果:固定输出"后台接口请求正常"和"页面展示/操作结果符合预期"

Step 3: 生成Word文档

使用 python-docx 生成文档:

  1. 设置全局样式(宋体、10.5pt、行间距1.0)
  2. 设置标题样式(同样宋体、10.5pt、行间距1.0)
  3. 按层级生成标题和测试用例内容
  4. 保存为 .docx 文件

Step 4: 验证

生成后验证:

  • 功能点数量是否与需求文档一致
  • 章节层级对应是否正确
  • 无功能点被错误归入其他章节

常见问题

Q: 功能点归入了错误的章节? A: 确保在 flush_h4() 时正确处理 Heading 2/3/4 的边界。遇到新的 H3 时,必须先保存前一个 H4 的数据。

Q: 编码问题导致中文乱码? A: 使用 sys.stdout.reconfigure(encoding='utf-8') 设置输出编码,文件读写统一指定 encoding='utf-8'

Q: 序号规则混乱? A: 严格遵循"只有1条不加序号"规则,预设条件、预期结果通常1条不加序号;实际结果固定2条加序号。