ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

实测AI生成测试用例:Claude与GPT对比及提效工作流

实测AI生成测试用例:Claude与GPT对比及提效工作流 如果只让我推荐一个最适合普通测试工程师落地的AI场景我会毫不犹豫投给AI生成测试用例。过去三个月我带着团队把一条“用Claude和GPT生成测试用例”的流程跑通了同一批需求从人工编写用例切换到AI辅助再算上人工评审的时间整体耗时也降了至少50%。这篇不是理论分享是我实际对比Claude和GPT之后的结果也包含一套可以直接抄走的工作流和提示词模板。如果你正好在纠结用Claude还是GPT或者试过AI写用例但觉得“生成的东西没法用”那这篇应该能帮到你。先说结论免得你看到最后才明白Claude和GPT都能把测试用例生成这件事做得很好但二者的产出风格差异明显。我现在的做法是双模型配合用——Claude负责正式的功能用例和接口用例初稿GPT负责探索性场景的发散和补漏。但如果你只打算接一个模型也完全不影响提效前提是工作流得对。1. 为什么我在测试组推行AI时先拿测试用例开刀1.1 写用例时真正耗时间的不是手速是“想清楚”这个环节很多人以为测试用例工作量大是因为打字多。我做测试这些年观察下来完全不是这样。一份功能模块的用例哪怕写了五六十条真正逐字敲键盘的时间也不超过二十分钟。剩下的一两个小时都耗在别的地方反复翻PRD找需求里没写明白的边界、在脑子里模拟用户的操作路径、纠结某个异常分支到底该不该写成一条用例、检查有没有场景和别的模块重叠。这部分“脑内排练”非常费神而且容易被打断。一旦被打断重新进入状态又得花好几分钟。AI生成测试用例落地之后最大的变化是“从零到一”的草稿阶段被模型接管了我可以直接把一份半成品丢给AI让它先把第一版用例铺出来人只做评审和决策。用例工作从“凭空造场景”变成了“审视场景合不合理”这两种工作的难度完全不在一个量级。1.2 “提效至少50%”是怎么算出来的我习惯先给结论再给依据。下面这张表是我拿“订单提交”模块做的实际计时对比包含下单、优惠券计算、库存扣减、支付结果回调、异常回滚这几个子流程。工作环节纯手工耗时AI辅助耗时熟悉PRD、梳理需求点30分钟15分钟设计测试场景45分钟10分钟编写用例正文与预期结果35分钟5分钟自查、去重、补业务规则25分钟20分钟总计135分钟50分钟从这个数据看提效已经超过60%。但我对外从来只说“至少50%”因为这个数字是包含人审成本的保守值。如果只看模型生成那一步效率提升可能是五倍以上可测试用例最值钱的是业务正确性AI生成的用例绝对不能直接上去重、纠偏、补项目特有规则这一道人工工序省不掉。1.3 哪些项目适合先上AI生成用例不是所有项目都适合一上来就全面铺开。根据我这几个月的试点经验以下条件里命中得越多提效越明显有相对完整的PRD或接口文档业务规则能说清楚。功能测试、接口测试、回归测试这类结构化的用例。新需求或改动范围可控的迭代而不是历史遗留的“黑盒老模块”。团队里至少有一个人愿意花一小时把提示词模板调好而不是让每个人各自和AI“自由对话”。探索性测试、强依赖业务经验的场景AI只能当辅助别指望它替代人的判断。我的建议是先从手头最小的一个迭代开始跑一遍跑通之后再逐步扩大范围。这个节奏看起来慢实际上比一次性全面铺开稳得多。2. 同一个订单需求Claude和GPT给我的结果差在哪2.1 对比方法同一份PRD、同一套提示词为了让对比尽量公平我没有搞花哨的多轮对话调优而是拿同一个电商订单模块的PRD、同一份提示词模板分别丢给Claude和GPT只比较第一轮初稿的结果。原因很实际在工程化流水线里第一轮结果的稳定性和可用性比“多聊几次能调好”更重要。如果每次都需要临场追问才能得到靠谱答案那这个流程没法固化到团队协作里。我用的提示词就一句话要求按正常流程、边界值、异常场景、业务规则冲突四类分组输出格式为用例表格包含用例编号、用例标题、前置条件、测试步骤、测试数据、预期结果、优先级并且明确要求一个用例只验证一个场景。这种带明确约束的提示词比“你是一名资深测试工程师请帮我写测试用例”好用得多。2.2 Claude的实测表现结构化强、边界感明显Claude给我的第一印象是结构感很强。它生成的功能测试用例会自动分层例如把“正常流程”里的主路径用例和备选路径用例分开把“边界值”自动推到金额0、最大金额、库存临界值、时间边界这些点上去。不会只停留在“输入正确数据点击提交验证成功”这种一层用例。另一个明显的优势是它会主动去覆盖需求里没有明说、但按测试方法应该覆盖的点。比如订单金额为0时提交按钮是否置灰、优惠券抵扣后金额变成负数怎么处理、并发下单时库存扣到负数会不会出现超卖。这些场景如果让我自己对着PRD想也能想出来但需要额外花精力去推导Claude相当于帮我把这一步预习做完了。Claude的缺点也很明显容易在脑内构造过于复杂的组合场景。举个例子它会组合出“用户A用优惠券在秒杀活动中购买赠品并同时申请退款”这种极端情况业务上可能根本不会出现。这类用例需要人工筛掉不然维护成本会变大。2.3 GPT的实测表现发散性好、需要更紧的缰绳GPT的第一轮产物更像“一个有经验同事听完需求后随手写出来的草稿”语言自然场景发散组合思路很跳跃。它的用例不会拘泥于某个固定框架经常能给出一些我没想到的角度比如同时打开两个页签提交同一份订单、快速重复点击提交按钮、弱网环境下支付回调延迟等。这些对探索性测试很有价值。但它的弱点也在这里。GPT生成的用例有时偏“通用”尤其当PRD的细节没有完全灌进提示词时它会默认补一套理想化的业务规则。比如“系统应校验用户登录状态”“金额字段应为正整数”这类放在任何系统里都成立的断言看起来没错实际价值不大。另外它偶尔会生成多条断言的用例比如在一条用例里同时检查页面跳转、数据库字段、接口返回码这在手工用例阶段还能接受一旦转成自动化脚本就是排查灾难。2.4 我的结论这不是二选一是两个协作位把两个模型的实际产出放在一起看差异其实很清晰对比维度ClaudeGPT用例结构分组清晰适合直接入库偏自然语言需要二次整理边界条件覆盖强能自动推导中依赖提示词引导发散组合场景中偶发过度设计强适合探索性冒烟多轮修正稳定性高中工程化接入体验有Claude Code/API适合脚本化有API/网页端接入门槛低所以我的最终结论是正式的功能用例和接口用例初稿用Claude需要头脑风暴、找灵感、探索遗漏场景的时候用GPT。如果你只打算用一个模型也完全够用但前提是提示词里必须把业务规则写清楚。后面这部分我会给出具体的模板。3. 从PRD到测试用例一条可以直接复制的AI工作流3.1 第一步把PRD转成AI友好的需求要素表一开始我也犯过直接把几十页PRD丢给AI的错结果就是生成结果严重跑偏。原因很好理解PRD里的信息密度太低夹杂了背景说明、竞品分析、非功能性需求AI不知道哪些是真正影响用例设计的规则。后来我调整了流程先让AI做需求要素抽取再基于抽取结果生成用例。具体做法是让AI把需求文档转成一张Markdown表格列包括模块、用户操作、业务规则、输入约束、异常场景、需要特别关注的历史问题。做过一次抽取之后AI再生成用例时就扎实很多。这一步并不费时间反而帮我把需求里写得模糊的地方提前暴露出来。如果一个需求连要素表都抽不出来说明PRD质量本身不达标这时候盲目生成用例就是在错误的地基上盖楼。3.2 三套可直接复用的提示词模板模板我直接放在下面复制就能用。这套东西其实就是热词里说的“测试用例skill”本质上是把零散的提示词沉淀成一套可复用的技能包。功能测试用例模板你是一名测试工程师请基于以下需求要点生成功能测试用例。 要求 1. 按“正常流程、边界值、异常场景、业务规则冲突”四类分组 2. 每条用例包含用例编号、用例标题、前置条件、测试步骤、测试数据、预期结果、优先级 3. 一个用例只验证一个场景不要在预期结果里写多条断言 4. 不要补充需求以外的新规则 5. 对边界值给出具体数据例如金额上限、时间边界、数量最大可输入位数。 需求要点 {需求要素表}提醒一下“一个用例最多要检查几项”这个问题我查过不少资料也踩过自动化脚本维护的坑。标准答案其实很简单一个用例只检查一个核心结果。多个断言混在一起一旦失败你根本分不清是哪一步出了问题排错成本直接翻倍。接口测试用例模板请根据以下接口文档生成接口测试用例。 要求 1. 覆盖正常参数、必填项缺失、类型错误、边界值、业务规则校验、未授权/无权限、超时等场景 2. 每条用例包含接口路径、请求方法、请求参数、预期HTTP状态码、预期返回body、优先级 3. 对每个字段的边界值给出具体数据 4. 每个用例只验证一个场景。 接口信息 {接口字段与规则描述}测试数据生成模板请为以下测试用例生成测试数据。 要求 1. 覆盖正常值、最小值、最大值、超限值、空值、非法格式、重复值 2. 数据需要贴近真实业务避免用123、abc这类无意义数据 3. 输出格式为表格字段名、数据值、用途说明、预期结果。 用例场景 {场景描述}3.3 用Claude Code或GPT API做批量流水线模板在网页对话框里用只适合个人零散需求。真正让AI在团队里提效必须走工程化路线也就是把AI能力嵌到工作流里而不是让每个测试人员去聊天框里问。我团队目前的方案是两条线并行。一条是Claude Code直接装在VSCode里我写一个简单的脚本读取需求目录下的文档调用模型批量生成用例再输出成Markdown或Excel。这样做的好处是上下文可以复用之前聊过的需求约束不用每次重新描述。Windows上偶尔会遇到Workspace启动不了的问题提示说需要虚拟化相关支持按照系统提示把虚拟机平台功能开启基本就能解决这块属于环境配置不算复杂。另一条是用API跑批量任务。比如团队如果统一用某个模型API我可以写一段Python脚本把需求清单循环喂给模型返回的结果统一解析后生成用例表格。下面是一个极简示例核心逻辑就是“读取需求、组装提示词、调用模型、解析结果”。# 批量生成测试用例的简化示例 # client 为模型服务商提供的 SDK 客户端不同厂商只是初始化方式不同 def build_prompt(requirement: dict) - str: return f 请基于以下需求要点生成功能测试用例。 要求按正常流程、边界值、异常场景、业务规则冲突分组。 需求要点 {requirement} def generate_cases(client, requirement: dict): prompt build_prompt(requirement) resp client.chat.completions.create( modelgpt-4.1, messages[ {role: system, content: 你是测试用例设计专家擅长把需求转成可落地的测试用例。}, {role: user, content: prompt} ] ) return resp.choices[0].message.content实际工程里我还会加一层结果校验比如检查生成结果是否包含必填字段如果没有就自动重新发起一次请求。这层兜底能显著减少人工核对的工作量。4. 接口测试用例和自动化脚本AI延伸出的新能力4.1 从接口文档生成接口用例的实际操作接口测试用例和功能测试用例完全是两种思路。功能用例侧重用户视角的流程和界面交互接口用例则要把关注点放在参数、状态码、返回结构、业务规则校验上。对接口测试而言AI特别擅长干的一件事是根据接口文档生成参数覆盖矩阵。举个例子商城下单接口把接口入参表、必填项、字段类型、取值范围、业务校验规则整理成一页文档AI就能自动生成正常下单、缺少必填参数、token失效、字段类型传错、数量超过库存上限、金额超长、枚举值非法、订单状态不匹配导致无法支付、重复提交幂等校验等场景。每条用例都会标注预期HTTP状态码和预期返回码。这个覆盖密度如果纯靠人手写至少得小半天。需要注意的是接口文档本身的字段描述只要有一个不准确AI生成的用例就会跟着出错。所以我在团队里定了一条规矩AI生成接口用例之前接口文档必须先经过研发确认一遍。这个前置步骤省不掉它决定了后面所有用例的准确性。4.2 让AI写pytest脚本时的关键约束条件AI能生成用例同样能生成自动化脚本。我见过不少人让AI“写一份登录接口的自动化测试”结果跑出来的代码要么没有断言要么断言写在响应打印之后形同虚设。这里最关键的约束是让AI写脚本前先明确框架和设计约束。我给AI写自动化脚本时通常指定以下规则测试框架统一用pytest网络请求库用requests。测试数据放在fixture或pytest参数化装饰器里不散落在测试函数内部。断言必须至少包含HTTP状态码断言加关键业务字段断言例如订单号不为空、返回码为0等。用例之间互相独立不依赖执行顺序。环境地址统一从配置文件读取不允许硬编码。下面这个例子是AI生成的简化版下单接口自动化用例import pytest import requests pytest.fixture def base_url(): return https://api.example.com def test_create_order_success(base_url): payload {user_id: 1, sku_id: 100, quantity: 1} resp requests.post(f{base_url}/orders, jsonpayload) assert resp.status_code 201 assert resp.json()[order_id] 0实际工程里当然要复杂得多比如需要从数据工厂构造用户、需要处理token、需要把用例执行结果回传到测试平台。但就从这段代码来看只要约束描述清楚AI生成的脚本已经具备基本的可用性至少不会出现“只发请求不校验结果”的问题。4.3 自动化用例维护与“AI review”的后续问题很多团队在AI生成自动化脚本之后就松口气了结果维护起来才发现麻烦。接口字段一变脚本里对应的payload和断言全部要改。我现在的处理办法是让AI参与差异分析当接口文档更新时把旧文档和新文档同时丢给AI让它输出字段差异清单再根据差异清单标识出受影响用例。代码Review这件事也可以交给AI做一部分但要给它划定边界。AI适合检查风格问题、遗漏断言、重复逻辑、Magic Number不适合判断业务规则对不对。业务规则如果本身没有写进提示词AI根本不知道“这个字段应该这么校验”它只能凭常识猜测。所谓“AI是harness工程化的功能”我理解就是在开发和测试流程中把AI放到固定的夹具位置让它在一个可控的流程节点里发挥能力而不是零散地到处问。5. 落地三个月后我重新理解了“提效50%”5.1 踩过的坑那些看起来好用但实际拖慢流程的做法第一个坑是直接粘贴整个PRD。为了省事把完整文档丢给AI结果生成结果“看着挺全、细看全是废话”人工评审的时间甚至超过了自己动手写。后来改成需求要素表这个问题基本消失。第二个坑是提示词不加约束。最典型的场景是让AI自由发挥结果它每条用例里都塞三四个断言好像一条用例就能覆盖所有检查点实际用起来排查问题能让人崩溃。加上“一个用例只验证一个场景”之后产出的质量立刻提升了一截。第三个坑是过度追求“AI生成的痕迹少”。团队里有同事觉得AI生成的用例风格跟自己写得不一样非要大规模改写结果重写的时间比手工写还长。这就完全背离了提效的初衷。AI生成的用例只要业务覆盖对、格式规范直接入库就行了没必要追求文风统一。第四个坑是把AI当聊天工具没有沉淀模板。前面一个月我和同事各自用自己的方式问AI效果参差不齐。后来把提示词模板固化到团队Wiki里新来的实习生照着跑也能产出70分的用例再经过评审补到90分这才是团队级的提效。5.2 选型建议什么场景该用Claude或GPT如果你现在的核心诉求是把PRD变成结构化的用例初稿Claude更省心。它对长上下文的理解和组织能力比较强生成结果稳定边界值覆盖也好适合直接对接用例管理系统。如果你在一个新需求还没有明确细节的阶段想快速了解“这个功能可能存在哪些测试死角”GPT的发散能力更有优势。把它当成一个头脑风暴搭子而不是正式用例生成器效果会好很多。团队已经用Claude Code做研发辅助的话建议测试这边也选Claude上下文和工程入口可以复用。团队已经有一套GPT API调用链路的话直接接GPT成本最低。技术选型这件事别花太多时间纠结先把流程跑起来比什么都重要。我的个人看法是模型能力目前已经足够提效的天花板不在模型而在流程设计。5.3 下一阶段从需求到测试报告的AI闭环目前我已经把流程推进到“需求解析→测试用例生成→自动化脚本生成→失败分析→测试报告摘要”这条链路。AI生成测试用例只是第一环后面AI还可以继续参与生成造数脚本、根据失败日志做缺陷分类、把测试执行结果汇总成发布小结。这些都是AI Agent可以承担的工作本质上和生成用例是同样的思路把重复性高的流程节点交给模型人在关键决策点把关。需求变更频繁的项目里AI生成的用例需要跟着PRD版本走。我现在的计划是把需求版本和用例版本做绑定PRD更新后让AI自动对比差异、生成增量用例而不是整份重新生成。这一步跑通之后提效50%就不再是一个短期红利而是能长期维持的稳定状态。最后分享一个我现在每天在用的习惯接到新需求的第一件事不是打开用例平台而是先让AI做需求要点抽取人花十分钟看一遍抽出来的表确认没有理解偏差再让AI基于这张表生成用例。这几分钟的前置投入省下来的是一整天里反复返工的精力。如果你还没试过用AI生成测试用例建议从手头最小的一个迭代开始跑一遍跑完你就明白了这一版AI真的能用不是玩具。
返回列表