00-cover.tex- 封面00-attachment.tex- 附页00-revision.tex- 修订版本历史00-toc.tex- 目录
01-scope.tex- 第1章 范围(1.1-1.3)02-references.tex- 第2章 引用文档
03-environment.tex(plan版本) - 第3章 软件测试环境(详细版,9个小节)03-environment.tex(case版本) - 第3章 软件测试环境(简化版,4个小节)03-environment.tex(report版本) - 第3章 测试结果概述(3个小节)
04-test-items.tex(plan版本) - 第4章 测试说明 + 4.2 计划执行的测试04-test-items.tex(case版本) - 第4章 测试说明 + 4.1 计划执行的测试+用例04-test-results.tex(report版本) - 第4章 详细测试结果 + 结果统计
07-traceability.tex(plan版本) - 第7章 需求的可追踪性05-traceability.tex(case版本) - 第5章 需求的可追踪性
05-test-schedule.tex- 第5章 测试进度(时间表、里程碑)06-termination.tex- 第6章 测试终止条件
99-appendix.tex- 附录(缩略语、参考资料、修改记录)
plan.tex- 测试大纲主文档(\input 组装)case.tex- 测试细则主文档(\input 组装)report.tex- 测试报告主文档(\input 组装)
| 文档 | 页数 | 文件大小 | 位置 |
|---|---|---|---|
| 测试大纲 (plan.pdf) | 12 | 217 KB | TEST_PLAN/plan.pdf |
| 测试细则 (case.pdf) | 9 | 129 KB | TEST_CASE/case.pdf |
| 测试报告 (report.pdf) | 9 | 127 KB | TEST_REPORT/report.pdf |
TEST_PLAN/
├── plan.tex # 主文档
├── plan.pdf # 编译输出(12页)
└── chapters/
├── 00-cover.tex # 前置:封面
├── 00-attachment.tex # 前置:附页
├── 00-revision.tex # 前置:修订历史
├── 00-toc.tex # 前置:目录
├── 01-scope.tex # 第1章 范围
├── 02-references.tex # 第2章 引用文档
├── 03-environment.tex # 第3章 软件测试环境(详细版)
├── 04-test-items.tex # 第4章 测试说明(⚡数据驱动)
├── 05-test-schedule.tex # 第5章 测试进度
├── 06-termination.tex # 第6章 测试终止条件
├── 07-traceability.tex # 第7章 需求的可追踪性(⚡数据驱动)
└── 99-appendix.tex # 附录
TEST_CASE/
├── case.tex # 主文档
├── case.pdf # 编译输出(9页)
└── chapters/
├── 00-cover.tex # 前置:封面
├── 00-attachment.tex # 前置:附页
├── 00-revision.tex # 前置:修订历史
├── 00-toc.tex # 前置:目录
├── 01-scope.tex # 第1章 范围
├── 02-references.tex # 第2章 引用文档
├── 03-environment.tex # 第3章 软件测试环境(简化版)
├── 04-test-items.tex # 第4章 测试说明(⚡数据驱动)
├── 05-traceability.tex # 第5章 需求的可追踪性(⚡数据驱动)
└── 99-appendix.tex # 附录
TEST_REPORT/
├── report.tex # 主文档
├── report.pdf # 编译输出(9页)
└── chapters/
├── 00-cover.tex # 前置:封面
├── 00-attachment.tex # 前置:附页
├── 00-revision.tex # 前置:修订历史
├── 00-toc.tex # 前置:目录
├── 01-scope.tex # 第1章 范围
├── 02-references.tex # 第2章 引用文档
├── 03-environment.tex # 第3章 测试结果概述
├── 04-test-results.tex # 第4章 详细测试结果(⚡数据驱动)
└── 99-appendix.tex # 附录
- 来源数据:
data/01-test-data/*/plan.yaml - 生成内容:
- 针对每个测试项生成
\subsubsection{[编号] [测试项名称]} - 包含:测试要求、测试策略、假设与约束、优先级、终止条件、需求追踪
- 测试细则版本还需要从
test_case/生成详细的测试步骤表 - 测试报告版本需要显示执行结果和统计数据
- 针对每个测试项生成
- 来源数据:
data/00-test-metrics/- 需求/指标data/01-test-data/*/plan.yaml- 测试项编号
- 生成内容:
- 需求→测试项追踪表
- 测试项→需求追踪表
- 覆盖率统计(总需求数、已覆盖数、覆盖率百分比)
-
模块化设计
- 每个章节独立为一个.tex文件
- 易于维护、修改、扩展
- 支持多人并行开发不同章节
-
最大化代码复用
- 前置部分(封面/附页等):三个文档共用
- 公用章节(范围/引用文档):三个文档共用
- 减少重复代码
-
清晰的版本管理
- 文件命名清晰:
NN-name-type.tex -plan/-case/-report后缀标识版本- 直观易理解
- 文件命名清晰:
-
简单的文档组装
- 使用LaTeX原生的
\input命令 - 无需额外工具或复杂的脚本
- 每个主文档只需罗列要组合的章节
- 使用LaTeX原生的
-
方案A(直接生成)的优点
- Python生成器直接生成完整的
.tex文件 - 每次覆盖,无需额外的diff或merge逻辑
- 实现简单清晰
- Python生成器直接生成完整的
-
编写Python数据驱动生成器
- 读取YAML数据(plan.yaml、test_case/、metrics/)
- 针对每个章节模板生成对应的LaTeX内容
- 写入到相应的章节文件(覆盖)
-
Python生成器的结构
# 伪代码 class TestDocGenerator: def generate_test_items_plan(yaml_data): # 从plan.yaml生成4.2节内容 def generate_test_items_case(yaml_data): # 从test_case/生成4.1节内容 def generate_test_results_report(yaml_data): # 从test_case/的执行结果生成4.1节和统计 def generate_traceability(metrics_data, plan_data): # 生成追踪关系表
-
整合脚本
python scripts/generate_test_plan_main.py cd TEST_PLAN && xelatex -interaction=nonstopmode plan.tex python scripts/generate_test_case_main.py cd TEST_CASE && xelatex -interaction=nonstopmode case.tex python scripts/generate_test_report_main.py cd TEST_REPORT && xelatex -interaction=nonstopmode report.tex
- ✅ 所有LaTeX语法正确,文件成功编译
- ✅ 三个主文档都能正确组装各个章节
- ✅ 目录、页码、交叉引用正常生成
- ✅ 中文排版正常,字体和格式符合要求
- ✅ PDF文件大小合理(约127-217KB)
- 创建日期:2024-12-25
- 完成日期:2024-12-25
- 总耗时:约40分钟
- 方案文档:/home/dreamer/.claude/plans/foamy-prancing-steele.md
- 项目文档:/home/dreamer/Project/test_document/CLAUDE.md
- 全局指南:/home/dreamer/.claude/CLAUDE.md