刺猬星球 — AI 视觉人才孵化 + 学习接单平台

AI自动化测试教程:2026年用AI写测试用例和自动化脚本的完整方法

AI自动化测试教程:2026年用AI写测试用例和自动化脚本的完整方法
 AI自动化测试教程:用AI写测试用例和自动化脚本的完整方法

简单说:AI写测试用例的速度确实是人工的10倍以上——但首轮能直接跑通的比例大约只有60%。关键不是你让AI写了多少行测试代码,而是你有没有给它足够的业务上下文。另外AI在接口测试和E2E测试上表现很好,在安全测试上基本帮不上忙。

AI自动化测试教程:2026年用AI写测试用例和自动化脚本的完整方法

上个月我在一个电商后台项目里做了一次完整的"AI辅助测试"实验——用了8个工作日,让AI帮我为一个约3万行的Node.js后端代码库补写了单元测试、接口测试和端到端测试。最终跑出了约420条测试用例,首轮通过率约68%。

说实话,8天写出420条测试用例这个速度(折合每天约52条),换纯人工不可能做到——即使是资深QA工程师,高质量测试用例的一天产出约15到25条。但那些"没通过"的32%才是这篇文章真正想讲的东西。

AI写单元测试的正确姿势——别直接把函数丢给AI然后就期望跑通,你需要把一个"测试需求"翻译成AI能理解的"测试规范"

我做过一个对比实验:拿同一个订单价格计算函数(约80行代码,涉及折扣叠加、满减、运费计算等6个业务规则),分别用两种方式让Claude写单元测试。

方式A:直接把函数代码贴进去,说"帮我写这个函数的单元测试,用Jest"。结果:AI生成了17条测试用例,跑了之后只有9条通过(约53%)。失败的8条里面,有3条是因为AI在测试里硬编码了预期价格——但实际价格是动态计算的(它没考虑浮点数精度问题),有2条是测试逻辑本身写错了(边界条件理解有误),还有3条是Mock没设对。

方式B:先给AI一份"测试规范"——包含了6条业务规则的文字描述、3组手工计算的输入输出示例、以及项目里已有的测试文件(作为风格参考)。然后说"请根据这些规范生成测试用例,要求覆盖所有业务规则和3个边界场景"。结果:AI生成了22条,首轮通过了19条(约86%)。失败的3条还是浮点数精度问题——但这个锅其实不该AI背,是我们的价格计算函数本身对精度处理不够严谨。

我觉得这个对比说明了一个核心问题:AI写测试的质量不取决于AI模型本身的能力,而取决于你"前置信息"的完整度。把AI当成了一个只认输入的机器而不是会"猜你想要什么"的同事,效果反而更好。

具体操作步骤上,我现在的标准流程是:先让AI生成"测试计划"(不写代码,只列测试场景和覆盖点)→ 我审核调整 → 再让AI生成具体测试代码。多这一步"审核环节",后续测试代码的首轮通过率能从约60%提升到约85%。如果你需要打AI编程基础可以先看AI编程入门指南

AI写接口测试——这是AI在测试领域表现最好的场景,因为API测试天然是"给定输入检查输出",和AI的强项完美匹配

我用过SuperTest + Jest结合AI生成接口测试,也用Postman的AI测试生成功能做过对比。说实话,Postman的AI测试生成(需要Postman Enterprise版,约49美元/月)对简单接口效果不错——给它一个OpenAPI/Swagger文档链接,它能自动生成覆盖所有endpoint的测试集合。

但对有复杂认证流程和状态依赖的接口(比如先下单→支付→退款这个链路),Postman的AI很容易"只测单点不通链路"。这时候我更倾向于用Claude/GPT结合手写的测试框架来做。

一个真实案例:我为一个包含27个API端点的微服务用AI生成接口测试。AI一次性生成了约180条测试(按端点分成了8个测试文件),首轮通过约145条。失败的35条里面有19条是认证Token过期/刷新逻辑没处理好——AI默认假设Token永远有效,但现实里显然不是。修复这个问题后,最终通过率到了约93%。

看更多工具对比可以翻AI编程工具横评

AI写端到端测试——Cypress和Playwright的AI辅助各有优劣,但E2E测试用AI有个致命问题:维护成本是人工写的约2倍

我用Cypress + AI辅助写了约40条E2E测试来覆盖一个电商前端的完整购物流程(浏览→加购→结算→支付→订单确认)。AI写E2E的速度确实快——40条测试AI大概用了不到两小时(纯人工写差不多要一天半)。

但过了一个月,前端UI改了之后——按钮位置变了、选择器变了——这40条测试里约15条需要更新。问题是:AI生成的测试代码往往偏好使用通用选择器(比如cy.get('button').contains('提交')),而不是稳定的data-testid。通用选择器在UI变动时非常脆弱。

我的教训是:如果要用AI写E2E测试,必须在Prompt里明确要求"使用data-testid或其他稳定选择器"。另外,E2E测试代码的注释维护也很重要——AI写的代码如果不加注释(因为AI默认不写),后续人工维护时理解成本很高。建议在Prompt里加一句:"每条测试的上方请用中文写一句注释说明这条测试在验证什么业务场景"。

实测4款AI测试工具:CodiumAI、TestPilot、Mabl和Diffblue Cover,附各自优缺点和适用场景

CodiumAI(现在的Qodo,官网 qodo.ai):我用了它的VS Code插件(免费版)。在写单元测试这件事上,它是目前体验最好的——选中一个函数,右键"生成测试",约15秒出结果。生成的测试代码质量确实高,首轮通过率约80%。缺点是只支持Python和TypeScript,对Java项目支持有限。

TestPilot(GitHub Copilot家的):2025年底刚推出的专门针对测试的AI工具,和Copilot的代码补全融为一体。我的感受是:它对"补全已有测试"效果不错(比如你已经写了3条测试,它能很聪明地猜出第4条应该测什么边界条件),但"从零生成"的能力不如CodiumAI。另一个优点是它天然有项目上下文——因为它知道你项目的其他测试文件怎么写。

Mabl(官网 mabl.com):主打无代码/低代码AI测试,面向非开发人员。定价约100美元/月起。说实话,对于有开发能力的团队来说性价比不高——它的很多功能用Cypress + Claude就能复现。但对于没有专职QA的小团队,Mabl的无代码操作确实降低了测试门槛。

Diffblue Cover:专攻Java单元测试生成。免费的社区版能处理约70%的常见Java场景。企业版(约2000美元/年/开发者)可以处理Spring Boot、Mockito等框架的复杂依赖。如果你是一个Java团队准备用AI补测试覆盖,Diffblue是最专业的——不过我觉得价格对中小企业偏贵。更具体的AI工具评测可以参考开源大模型本地部署和上面提到的编程工具横评。

一个翻车故事和最重要的3条AI测试原则

我有一次翻车经历很值得说:给一个支付模块用AI生成了约50条测试,全部绿灯通过——我当时还挺得意。结果上线后第3天,一个"金额为0.01元的退款"场景导致了系统扣款失败(而AI生成的测试完全没有覆盖这个金额下限场景)。

这次翻车让我总结了3条AI测试的底线原则:

原则1:AI测试是"补刀"不是"主攻"。让AI做回归测试和边界扫描,但核心业务路径的测试必须人工设计。

原则2:永远检查AI是否理解了"不该发生的事"。AI很擅长写"应该返回200"的测试,但对"不应该返回5XX"或"不应该修改数据库状态"这类否定用例理解很差。你需要主动要求它写"验证某个操作不会产生副作用"的测试。

原则3:用AI的测试来发现你的代码问题,而不是证明你的代码没问题。这是心态上的关键转变。AI跑出的测试如果大面积失败,很多时候是你的代码设计本身耦合太紧或者缺乏可测试性,而不是AI写的有问题。

常见问题

AI写的测试用例真的能直接跑吗?

能跑的概率大概是60%到80%,取决于你给的上下文有多详细。如果你只丢一个函数给AI让它"写测试",首轮生成的测试代码能直接通过的概率大约只有50%。但如果你同时提供函数签名、业务规则说明、以及2-3个手工写的测试示例,首轮通过率能提升到约85%。核心逻辑是:AI写不出你没告诉它的边界条件。

用AI写测试脚本,会不会"为了覆盖而覆盖"浪费精力?

会,而且这是新手最常见的坑。AI默认倾向于生成大量"输入为空时返回空"、"传入undefined不报错"这类低价值测试用例。你需要明确指示AI关注"业务关键路径"和"历史Bug模式"。一个实用的技巧是在Prompt里附带过去6个月的Bug工单关键词列表,AI会据此生成更有针对性的回归测试用例。

AI写自动化测试适合什么类型的项目?

最适合的是:已有较完整API文档的项目、重复性高的回归测试、以及遗留系统的新增测试(因为人工补写测试的人力成本太高)。不太适合的是:涉及复杂硬件交互的嵌入式系统测试、以及安全性测试(AI在安全领域的创造性"攻击思维"目前还远不如人类安全研究员)。

觉得有用的话分享给朋友吧。