BRD 转 UAT 测试用例文档生成器
将大型业务需求文档(BRD)解析并转化为标准化、高覆盖率、可直接投入执行的UAT测试用例文档。
输入规范
- 文件格式:Word (.docx)
- 文件大小:100-200页
- 内容结构:包含业务流程、功能描述、字段说明、业务规则、计算逻辑、权限控制等
第一阶段:全局架构扫描
1.1 文档结构解析
读取BRD文档,提取以下结构信息:
- 章节目录层级(通常3-4级)
- 业务模块划分
- 角色权限矩阵
- 系统接口定义
import docx
doc = docx.Document(file_path)
# 提取段落和表格
paragraphs = [p.text.strip() for p in doc.paragraphs if p.text.strip()]
tables = [table for table in doc.tables]
1.2 业务模块识别
按以下维度识别业务模块:
- 功能模块(如:客户管理、订单管理、报表查询)
- 业务流程(如:审批流、支付流、退货流)
- 数据实体(如:客户、订单、产品)
- 接口集成(如:与CRM对接、与支付系统对接)
1.3 角色权限提取
提取文档中定义的所有用户角色及其权限:
- 角色名称(如:销售代表、财务人员、系统管理员)
- 功能权限(可访问哪些模块)
- 数据权限(可查看哪些数据)
- 操作权限(增删改查权限)
1.4 非功能性验收准则提取
识别并提取以下非功能性需求:
- 性能要求(响应时间、并发数)
- 安全要求(权限控制、数据加密)
- 兼容性要求(浏览器、分辨率)
- 可用性要求(操作流程、提示信息)
第二阶段:端到端业务流提取
2.1 主流程识别
对每个业务模块,识别以下主流程:
- 正向主流程(Happy Path)
- 业务状态流转(如:草稿→待审批→已审批→已完成)
- 数据生命周期(创建→修改→查询→删除)
2.2 分支流程识别
识别主流程中的分支:
- 条件分支(如:金额>10000需要总经理审批)
- 角色分支(如:不同角色看到不同界面)
- 状态分支(如:不同状态下可执行不同操作)
2.3 异常流程识别
识别以下异常场景:
- 必填项为空
- 格式错误(手机号、邮箱、身份证号等)
- 超出范围(金额上限、日期范围等)
- 权限不足
- 并发冲突
- 网络异常
- 系统异常
2.4 边界条件识别
识别以下边界条件:
- 数值边界(最小值、最大值、零值、负值)
- 日期边界(今天、过去、未来、跨年)
- 长度边界(最短、最长、空值)
- 集合边界(空列表、单条、多条、上限)
第三阶段:UAT测试用例设计
3.1 用例设计原则
遵循以下原则设计测试用例:
- 基于场景设计:每个用例对应一个完整的业务场景,而非单一按钮点击
- 角色驱动:明确每个用例的执行角色
- 数据具象化:测试数据必须给出符合业务逻辑的具体示例值
- 可验证性:预期结果必须具体到可验证的系统响应
3.2 禁止的表述
严禁使用以下模糊表述:
- "输入有效数据" → 必须给出具体值,如"输入11位手机号:13800138000"
- "系统运行正常" → 必须给出具体响应,如"页面显示'保存成功'提示,列表新增一条记录"
- "以此类推" → 必须逐条列出
- "后续省略" → 必须全量转换
- "输入相关数据" → 必须明确每个字段的值
3.3 Excel物理列定义
输出的Excel文件必须包含以下14列,列顺序固定:
| 列号 | 列名 | 数据类型 | 说明 | 验证规则 |
|---|
| ------ | ------ | ---------- | ------ | ---------- |
| A | 用例编号 | 文本 | 格式:UAT-XXX | 自动编号 |
| B | 功能模块 | 文本 | 所属功能模块名称 | - |
| C | 测试场景 | 文本 | 验证的具体业务场景 | - |
| D | 优先级 | 文本 | P0/P1/P2 | 下拉列表验证 |
| E | 前置条件 | 文本 | 执行前系统状态/权限 | - |
| F | 操作步骤 | 文本 | 多步骤用换行分隔 | - |
| G | 测试数据 | 文本 | 具体输入测试值 | - |
| H | 预期结果 | 文本 | 具体可验证的系统响应 | - |
| I | 实际结果 | 文本 | 测试执行后填写 | - |
| J | 测试结论 | 文本 | Pass/Fail/Blocked/Skip | 下拉列表验证 |
| K | 测试执行人 | 文本 | 执行测试的人员 | - |
| L | 测试日期 | 日期 | 格式:YYYY-MM-DD | 日期格式验证 |
| M | 关联缺陷ID | 文本 | 缺陷编号,多个用逗号分隔 | - |
| N | 备注 | 文本 | 其他说明 | - |
3.4 优先级定义
| 优先级 | 定义 | 用例类型 |
|---|
| -------- | ------ | ---------- |
| P0 | 核心业务流程,阻塞性缺陷 | 正向主流程、关键业务节点 |
| P1 | 重要功能,严重缺陷 | 逆向校验、分支流程、权限控制 |
| P2 | 一般功能,一般缺陷 | 边界条件、异常场景、兼容性测试 |
3.5 用例覆盖率要求
对每个功能模块,必须覆盖以下维度:
| 维度 | 最少用例数 | 说明 |
|---|
| ------ | ------------ | ------ |
| 正向主流程 | 1条 P0 | 正常业务流程 |
| 必填项校验 | 每个必填字段1条 P1 | 必填项为空的场景 |
| 格式校验 | 每种格式1条 P1 | 手机号、邮箱、身份证等 |
| 业务规则校验 | 每条规则1条 P1 | 业务逻辑验证 |
| 权限校验 | 每个角色1条 P1 | 不同角色的权限验证 |
| 边界条件 | 每个边界1条 P2 | 数值、日期、长度边界 |
| 异常场景 | 每类异常1条 P2 | 网络异常、系统异常等 |
第四阶段:Excel文件生成
4.1 运行转换脚本
python ~/.workbuddy/skills/uniproud-brd-uat/scripts/convert_to_excel.py <md_file> <excel_file>
4.2 Excel格式规范
工作表规范
- Sheet命名格式:
序号_模块名称(如 01_客户管理模块) - Sheet数量:每个功能模块一个Sheet
- 首行冻结:冻结表头行,滚动时始终可见
- 打印设置:横向打印,适合页面宽度
表头样式
- 字体:微软雅黑,加粗,11号,白色
- 背景色:#4472C4(蓝色)
- 对齐:水平居中,垂直居中,自动换行
- 行高:35像素
数据行样式
- 字体:微软雅黑,10号
- 对齐:左对齐,垂直居中,自动换行
- 行高:60像素
- 交替行颜色:奇数行白色,偶数行#D9E2F3(浅蓝色)
列宽设置
| 列 | 列宽 | 说明 |
|---|
| ---- | ------ | ------ |
| A | 12 | 用例编号 |
| B | 15 | 功能模块 |
| C | 30 | 测试场景 |
| D | 8 | 优先级 |
| E | 25 | 前置条件 |
| F | 30 | 操作步骤 |
| G | 25 | 测试数据 |
| H | 30 | 预期结果 |
| I | 20 | 实际结果 |
| J | 12 | 测试结论 |
| K | 12 | 测试执行人 |
| L | 12 | 测试日期 |
| M | 12 | 关联缺陷ID |
| N | 15 | 备注 |
数据验证规则
优先级列(D列):
- 类型:列表
- 选项:P0, P1, P2
- 错误提示:请选择有效的优先级:P0, P1, P2
测试结论列(J列):
- 类型:列表
- 选项:Pass, Fail, Blocked, Skip
- 错误提示:请选择有效的测试结论:Pass, Fail, Blocked, Skip
测试日期列(L列):
条件格式规则
优先级列(D列):
- P0:背景色 #FFC7CE(浅红色),字体色 #9C0006(深红色)
- P1:背景色 #FFEB9C(浅黄色),字体色 #9C6500(深黄色)
- P2:背景色 #C6EFCE(浅绿色),字体色 #006100(深绿色)
测试结论列(J列):
- Pass:背景色 #C6EFCE(浅绿色),字体色 #006100(深绿色)
- Fail:背景色 #FFC7CE(浅红色),字体色 #9C0006(深红色)
- Blocked:背景色 #FFEB9C(浅黄色),字体色 #9C6500(深黄色)
- Skip:背景色 #D9D9D9(浅灰色),字体色 #595959(深灰色)
4.3 自适应折行
- 所有数据单元格启用自动换行
- 操作步骤列:每个步骤一行,格式为"1. xxx\n2. xxx"
- 预期结果列:每个验证点一行,格式为"1. xxx\n2. xxx"
- 测试数据列:每个字段一行,格式为"字段名:值"
输出文件
运行完成后生成以下文件:
brd_function_points.md - BRD功能点清单(中间产物)uat_test_cases.md - Markdown格式测试用例(中间产物)*_UAT测试用例.xlsx - Excel格式测试用例(最终交付物)
质量检查清单
生成完成后,必须检查以下项目:
- [ ] 所有功能模块均已覆盖
- [ ] 每个功能模块至少有1条P0用例
- [ ] 所有必填字段均有对应的校验用例
- [ ] 所有业务规则均有对应的验证用例
- [ ] 测试数据均为具体值,无模糊表述
- [ ] 预期结果均为可验证的系统响应
- [ ] Excel文件包含14列,列顺序正确
- [ ] 数据验证规则已配置(优先级、测试结论下拉)
- [ ] 条件格式已配置(优先级、测试结论高亮)
- [ ] 首行已冻结
- [ ] 交替行颜色已设置