需求文档 → 测试报告生成器
根据软件需求规格说明书,自动提取功能点并生成标准格式的测试报告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 | 每个测试用例名称 |
关键规则:
- 文字中不写编号 — 只写纯名称,如
高密数据交付而非5.1 高密数据交付,否则 Word 会显示为 "5.1 5.1 高密数据交付" - 层级不能跳级 — 一级下直接用三级会破坏自动编号链条,必须依次使用
- 不需要编号的内容不用标题样式 — 如"对应需求""测试目的""预设条件"等标签行,用普通段落加粗即可,不要用 Heading 样式
- "对应需求"字段保留原始编号 — 如"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 层级提取功能点:
- 定位用户指定的章节(如"第5章 业务功能需求")
- 提取 Heading 2 → 一级模块名
- 提取 Heading 3 → 二级模块名
- 提取 Heading 4 → 具体功能点名称
- 提取每个 Heading 4 下方的"功能描述"和"功能过程"段落
关键注意事项:
- "功能描述"可能以"功能描述:"或"(1)功能描述:"开头
- "功能过程"可能以"功能过程:"或"(2)功能过程:"开头
- 需要处理多段落续接(描述/过程可能跨越多个Normal段落)
- 在遇到下一个 Heading 时,必须先保存上一个功能点的数据,再开始新的
Step 2: 生成测试用例内容
对每个功能点生成6段内容:
预设条件:基于模块名和功能类型自动生成
- 查看/展示类 → "账号具备XX模块访问权限,系统中已存在数据记录"
- 新增/注册/添加类 → "账号具备XX操作权限,系统数据准备完成"
- 删除类 → "账号具备XX删除权限,系统中已存在可操作的数据记录"
- 搜索/筛选/查询类 → "账号具备XX权限,系统中已存在多条数据记录"
- 执行/运行/部署类 → "账号具备XX权限,相关配置已完成"
- 编辑/修改/配置类 → "账号具备XX权限,系统中已存在可编辑的数据记录"
- 下线/停止类 → "账号具备XX权限,系统中已存在运行中的任务或服务"
输入数据:从功能描述中提取,去除"系统需""系统应"等前缀
执行步骤:从功能过程中提取,按分号/句号拆分为独立步骤
预期结果:使用功能描述原文(截取前250字符)
实际结果:固定输出"后台接口请求正常"和"页面展示/操作结果符合预期"
Step 3: 生成Word文档
使用 python-docx 生成文档:
- 设置全局样式(宋体、10.5pt、行间距1.0)
- 设置标题样式(同样宋体、10.5pt、行间距1.0)
- 按层级生成标题和测试用例内容
- 保存为 .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条加序号。
扫码联系在线客服