

当产品经理甩过来一份50页的需求文档,要求"这周把测试用例写完"时,你会怎么做?手动复制粘贴到Excel?还是让AI直接读图生成用例?
随着AI技术的普及,OCR(光学字符识别)与LLM(大语言模型)的结合,彻底打破了“手写用例”的效率瓶颈。今天给大家分享一套可落地的《自动生成用例:基于OCR+ LLM的设计方案》,从背景、痛点、架构、关键设计到落地建议,帮你快速实现用例自动生成,解放双手。
💡 文章篇符较长,建议先点赞收藏,慢慢看
测试用例编写是软件测试中最"体力活"的环节。据统计,一个中等复杂度的需求,测试工程师平均需要花费:
环节 | 耗时占比 | 痛点 |
|---|---|---|
理解需求文档 | 30% | 文档格式混乱,PRD、原型图、流程图分散 |
提取测试点 | 40% | 需要人工识别边界条件、异常场景 |
编写用例格式 | 20% | 重复劳动,复制粘贴到用例管理工具 |
评审与修正 | 10% | 遗漏场景、描述不清 |
传统AI方案的局限:
早期的"AI生成用例"大多基于纯文本输入,比如把需求文档的Word/PDF文字提取出来喂给ChatGPT、DeepSeek。但现实中,大量关键信息藏在图片里——产品原型图、流程图、手绘草图、甚至Excel截图。
我们曾遇到过一个案例:某金融系统的"转账限额规则"只存在于一张复杂的Excel配置表截图中,文字提取工具完全失效,测试工程师只能肉眼识别37个单元格,手动编写142条用例,耗时2天。
这就是OCR+LLM方案的出发点:让AI不仅能"读文字",还能"看懂图"。

利用OCR与LLM的结合:
除此之外,随着产品迭代速度加快,每次需求变更都需要重新修改、补充用例,传统手写方式无法适配敏捷开发的节奏,而自动生成方案可快速响应需求变更,大幅提升测试效率,让测试工程师将精力聚焦在核心场景优化、缺陷排查上,而非重复的用例编写工作。
这个方案设计初衷主要为了解决三类场景:
产品经理给的是Axure/墨刀导出的PNG,包含页面元素、交互说明、业务规则。传统方式需要测试工程师对着图一条条写,现在让AI直接看图生成。
复杂的业务状态流转(如订单从"待支付"到"已完成"的7个状态),流程图里画得很清楚,但文字提取会丢失箭头逻辑。OCR需要识别节点和连接关系。
权限矩阵、费率表、风控规则等,往往以Excel截图或表格图片形式存在。需要识别行列关系,并应用组合测试/正交试验法生成用例。
核心目标:
整体架构分为感知层→认知层→生成层,模拟人类测试工程师"看→懂→写"的过程:
┌─────────────────────────────────────────────────────────┐
│ 输入层 │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │ PDF │ │ 图片 │ │ Word │ │ 原型链接 │ │
│ │ 文档 │ │ (PNG/JPG)│ │ 文档 │ │ (可选) │ │
│ └────┬────┘ └────┬────┘ └────┬────┘ └────┬────┘ │
└───────┼────────────┼────────────┼────────────┼────────┘
│ │ │ │
└────────────┴────────────┘ │
│ │
▼ │
┌──────────────────────────────────────────────┴─────────┐
│ 感知层 (OCR Engine) │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────────┐ │
│ │ 通用OCR │ │ 表格OCR │ │ 版面分析 │ │
│ │ (PaddleOCR/ │ │ (TableMaster│ │ (LayoutParser │ │
│ │ Azure AI) │ │ /Structurize)│ │ /DocLayout-YOLO)│ │
│ └─────────────┘ └─────────────┘ └─────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ 结构化文本 + 坐标信息 │ │
│ │ {text: "用户名", bbox: [x1,y1,x2,y2], type: "input"}│ │
│ └─────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────┐
│ 认知层 (LLM Engine) │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────────┐ │
│ │ 多模态 │ │ 提示工程 │ │ 知识注入 │ │
│ │ 理解 (GPT-4V│ │ (Few-shot │ │ (RAG检索业务 │ │
│ │ /Claude/Qwen│ │ CoT) │ │ 术语库) │ │
│ │ -VL) │ │ │ │ │ │
│ └─────────────┘ └─────────────┘ └─────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ 测试实体识别:页面元素、业务规则、状态流转、边界值 │ │
│ │ 关系抽取:点击关系、依赖关系、前置条件、后置结果 │ │
│ └─────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────┐
│ 生成层 (Case Builder) │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────────┐ │
│ │ 用例模板 │ │ 组合策略 │ │ 格式导出 │ │
│ │ 引擎 │ │ (Pairwise/ │ │ (Excel/XMind/ │ │
│ │ │ │ 正交/全排列) │ │ TestRail API) │ │
│ └─────────────┘ └─────────────┘ └─────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ 标准测试用例:ID、标题、前置条件、步骤、预期结果、 │ │
│ │ 优先级、类型(功能/异常/边界)、关联需求 │ │
│ └─────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────┘但从交互角度来说,可细分为五层: 输入层 → 预处理层 → OCR识别层 → LLM推理层 → 输出层
支持多种输入格式,覆盖日常工作中常见的设计文件类型,无需转换格式,降低使用门槛:
原始设计文件可能存在模糊、倾斜、水印、多页面等问题,影响OCR识别准确率,预处理层主要做3件事:
这一层是“读懂设计稿”的核心,采用成熟的OCR模型(如PaddleOCR、Tesseract,可根据需求选择),重点提取3类信息,为LLM生成用例提供基础:
补充:OCR识别后,会生成一份“元素清单”,包含所有提取的信息,便于后续LLM调用,同时支持人工手动修正识别错误,提升准确率。
这一层是“生成用例”的核心,也是方案的灵魂。我们选用适配中文场景、推理速度快的LLM模型(如Claude、通义千问、讯飞星火,可根据团队成本、隐私需求选择),核心工作流程如下:
支持多种输出格式,适配不同团队的使用习惯,同时支持人工优化:
OCR识别准确率直接影响LLM生成用例的质量,若识别错误(如把“验证码输入框”识别成“密码输入框”),会导致用例生成偏差。
建议采用组合策略:
内容类型 | 推荐方案 | 理由 |
|---|---|---|
纯文字段落 | PaddleOCR / EasyOCR | 开源、可私有化部署、中文效果好 |
复杂表格 | TableMaster / Structurize | 能识别单元格合并、行列关系 |
流程图/架构图 | Azure Document Intelligence | 对线条、箭头、框图识别准确 |
手写草图 | 暂不处理,提示用户转电子稿 | 识别率低,人工兜底 |
另外,还可以通过3个优化手段,将识别准确率提升至95%以上:
这是架构设计的核心抉择。我们对比了两种路线:
路线A:端到端多模态(GPT-4V/Claude 3/Qwen-VL)
路线B:OCR提取结构化文本 + 文本LLM(GPT-4/Claude 3.5/Qwen-Max)
建议的混合策略:
if 内容以文字/表格为主:
使用路线B(OCR+文本LLM),成本低且准确
elif 内容包含复杂交互/视觉状态(如原型图):
使用路线A(多模态),保留视觉上下文
else:
双路并行,投票机制决定最终输出LLM生成用例的质量,完全依赖Prompt的设计。我们设计的Prompt包含3个核心部分,确保用例覆盖全面、格式标准:
这是生成高质量用例的关键,也是让LLM像测试工程师一样思考的关键,我们通过三层提示工程实现:
第一层:角色与思维链(CoT)
你是一位有10年经验的资深测试工程师,擅长从需求文档中提取测试点。
请按以下步骤思考:
1. 识别需求中的功能点(页面元素、业务操作、数据处理)
2. 对每个功能点,识别:正常场景、异常场景、边界条件、性能考量、安全考量
3. 输出结构化的测试点列表,格式为JSON第二层:Few-shot示例
在提示词中嵌入2-3个高质量用例示例,教会LLM团队的书写规范:
示例1:
输入:登录页面(用户名输入框、密码输入框、登录按钮)
输出:
[
{"test_point": "用户名输入-正常输入", "category": "功能", "priority": "P0"},
{"test_point": "用户名输入-特殊字符", "category": "异常", "priority": "P1"},
{"test_point": "密码输入-掩码显示", "category": "安全", "priority": "P0"}
]第三层:RAG知识注入
通过检索增强生成(RAG),注入业务领域知识。比如金融系统需要知道"大额交易需二次确认"是监管要求,电商系统需要知道"库存扣减"的并发处理逻辑。
# 伪代码:RAG检索
business_context = vector_db.search(query="转账限额", top_k=3)
prompt = f"基于以下业务规则:{business_context},生成测试用例..."为了避免LLM遗漏关键场景,我们预设了“场景模板库”,包含10+类高频测试场景,LLM生成用例时,会自动匹配模板,补齐场景:
同时,支持团队自定义场景模板,比如针对特定产品的专属场景(如支付场景的金额校验),可添加到模板库,提升用例的针对性。
当配置表有10个维度,每个维度3个取值时,全排列是3^10=59049条用例,不可接受。
建议采用的组合策略:
策略 | 适用场景 | 工具 |
|---|---|---|
Pairwise(两两组合) | 配置项之间无强依赖 | Microsoft PICT / 自研算法 |
正交试验法 | 需要均匀覆盖,有统计基础 | 正交表查询 |
全排列(局部) | 关键路径、高风险模块 | 人工指定维度 |
基于规则的过滤 | 业务规则排除无效组合 | 规则引擎 |
示例:一个"用户等级+支付方式+优惠券"的组合场景,Pairwise可将用例从120条压缩到12条,覆盖所有两两组合。
LLM生成用例后,需经过自动校验+人工抽检,确保用例可评审、可落地,避免出现“步骤缺失、预期结果不明确”的问题:
这套方案无需复杂的底层开发,可基于现有工具快速落地,适合个人、小团队、中大型团队,以下是具体落地建议,帮你降低落地成本,快速见成效。
无需搭建复杂的服务器,优先选用开源工具+成熟LLM API,降低开发、维护成本:
技术栈参考
层级 | 推荐方案 | 备选方案 |
|---|---|---|
OCR | PaddleOCR(中文)/ Azure DI(表格) | EasyOCR / Tesseract |
版面分析 | DocLayout-YOLO | LayoutParser |
LLM(多模态) | GPT-4V / Claude 4.5 Sonnet | Qwen-VL / Yi-VL |
LLM(文本) | GPT-5.3 / Claude 4.5 / Qwen-Max | DeepSeek-V3 / GLM-5 |
组合测试 | 自研Pairwise算法 | Microsoft PICT |
用例管理 | TestRail API / 禅道API | 自研XMind导出 |
落地后,可根据实际使用情况,逐步优化方案,提升用例质量和效率:
基于OCR+LLM的自动生成用例方案,核心是“用技术替代重复劳动”,解决手写用例效率低、易遗漏、标准化难的痛点,让测试工程师从繁琐的用例编写中解放出来,聚焦核心的质量保障工作。
这套方案的优势的是“低成本、可落地、易扩展”,无需复杂的底层开发,个人和小团队可快速上手,中大型团队可基于此方案扩展,适配更多测试场景。
在AI辅助测试的大趋势下,自动生成用例不是“替代测试工程师”,而是“成为测试工程师的得力助手”。落地这套方案后,你会发现:以前1小时才能完成的用例,现在10分钟就能搞定,评审时再也不用怕漏场景,有更多时间去优化测试策略、提升产品质量。
最后一点建议: 不要追求100%自动化。根据我的经验,AI生成+人工审核的模式最可持续——AI负责广覆盖和快速草稿,人负责精准判断和复杂场景。这种人机协作,才是AI时代测试工程师的最佳站位。
延伸阅读:
💡 更多、更详细、全面的AI测试、AI编程、AI技能进阶系统化实战教程,欢迎加入:「狂师. AI进化社」一起探讨学习!
