☰
测试人转型AI测试开发:从大模型到Agent实战,3个月拿得出手的项目
2026/9/26 21:35:13 网站建设 项目流程

1. 测试人转型AI测试开发,到底在转什么

这两年跟不少做测试的朋友聊天,话题绕来绕去最后都会落到同一个焦虑上:传统功能测试的岗位需求在肉眼可见地收缩,招聘JD里开始频繁出现"熟悉大模型""有AI测试经验优先""了解Agent"这类字眼。有人觉得这是炒作,有人已经开始动手了。我的判断很直接——这不是一波短期风口,而是测试这个工种的能力模型正在被重写。

先把话说清楚:AI测试开发不是让你去训练大模型,也不是让你转行做算法工程师。它的核心是两件事。第一件,用AI能力去增强你原本的测试工作,比如用大模型帮你读需求、生成用例、生成UI自动化脚本、做缺陷归因。第二件,测试AI系统本身,比如大模型的输出质量怎么评估、Agent的行为怎么验证、多模态应用的边界怎么测。前者是"AI赋能测试",后者是"测试AI",两条路都缺人,但入门门槛和技能栈不一样。

我见过太多测试同学卡在第一步:知道要学,但不知道从哪下手。买了几门课,看了几篇讲Prompt的文章,装了个本地大模型跑了两天,然后就没有然后了。问题出在哪?出在没有一个能落地的项目把零散的知识串起来。你学Prompt工程,学LangChain,学Playwright,单独看都会,但让你做一个"读取测试用例自动生成UI自动化脚本的Agent",就懵了。而这恰恰是现在企业最需要的能力。

这篇内容我想干的事,就是把"测试人转型AI测试开发"这件事拆开揉碎,从能力地图、核心技术点、一个完整的Agent实战项目、到学习路径和避坑经验,全部讲透。不管你是刚入行一两年的功能测试,还是做了五六年想突破瓶颈的测试开发,都能从中找到自己能立刻上手的那一块。关键词里提到的人工智能、AI测试开发、测试开发、大模型、Agent,我会一个一个落到具体的技术细节和操作上,不讲空话。

2. 转型前必须想清楚的能力地图

2.1 传统测试开发和AI测试开发的技能差异

很多人以为转型就是"多学一个AI",其实不是加法,是能力重心的迁移。我整理了一张对照表,你可以对着看看自己现在站在哪个位置。

能力维度传统测试开发AI测试开发
核心产出自动化脚本、测试框架、CI集成AI增强的测试工具链、AI系统评测方案
主要工具Selenium、Appium、Pytest、JenkinsLangChain、Playwright、大模型API、向量库
编程重心面向对象、设计模式、框架封装Prompt编排、Agent流程设计、数据处理
测试对象确定性系统(输入A必得B)概率性系统(同样输入输出可能不同)
验证方式断言相等/包含语义相似度、评分模型、人工抽检
典型难点元素定位、环境稳定性输出不确定性、幻觉、评测标准设计

看这张表你会发现,传统测试开发的底子不但不浪费,反而是优势。你懂测试用例设计、懂边界值、懂等价类,这些在给AI系统设计评测集的时候直接就能用。你懂Pytest、懂断言、懂CI,这些在搭建AI测试流水线的时候也是现成的。真正要补的,是概率性系统的思维方式,以及大模型和Agent这套工具链。

2.2 三类转型路径,选错方向白费半年

我观察下来,测试人转AI测试开发大概有三条路,难度和天花板都不一样。

第一条,AI增强测试工具方向。就是用大模型和Agent去提升测试效率。典型场景:根据需求文档自动生成测试用例、根据用例自动生成UI自动化脚本、失败用例自动归因、测试报告自动总结。这条路对算法要求最低,对工程能力要求中等,最适合大多数测试开发同学切入。你不需要懂反向传播,但你要懂怎么调API、怎么设计Prompt、怎么把Agent串进现有流程。

第二条,AI系统质量保障方向。就是专门测大模型应用、测Agent、测多模态系统。你要设计评测集、定义评测指标(准确率、召回、幻觉率、拒答率)、搭建自动化评测流水线。这条路需要对大模型的特性有比较深的理解,知道它为什么会幻觉、什么情况下会不稳定。天花板高,但目前岗位相对少,多集中在有大模型业务的公司。

第三条,算法方向。微调模型、训练评测模型。这条路对数学和算法要求最高,坦白说,从测试转过去的人比例很低,投入产出比要慎重评估。除非你本身有比较强的算法背景,否则我不建议把主要精力放这。

我的建议是:主攻第一条,了解第二条,第三条看兴趣。第一条路能让你在半年内就有可展示的项目,面试的时候拿得出手,而且和现有工作能结合,边做边学。

2.3 别被"大模型"三个字吓住,你需要的只是会用

这里必须破除一个误解。很多测试同学一听"大模型"就觉得是算法工程师的领域,自己碰不了。实际上,应用层开发和模型层开发是两回事。你不需要知道Transformer的注意力机制怎么算,你只需要知道:怎么调用API、怎么控制输出格式、怎么处理它不听话的情况。

打个比方,你用数据库的时候,需要懂B+树的实现吗?不需要。你只需要会写SQL、会看执行计划、会优化索引。大模型也一样,应用层的人只需要会"用",把模型当成一个能力很强但不太稳定的组件来对待。这个心态转变过来,你会发现门槛一下子低了很多。

具体到技能,应用层你需要掌握的是:Prompt的基本写法(角色、任务、约束、示例)、结构化输出(让它返回JSON)、函数调用(Function Calling)、以及用LangChain这类框架把多个步骤串起来。这些内容,一个有编程基础的测试开发,认真投入两三个月就能上手做项目。

3. 大模型与Agent:测试人真正要掌握的技术点

3.1 大模型在测试场景里的四种用法

大模型不是万能的,它在测试场景里有明确的适用边界。我把它归纳成四种用法,从简单到复杂。

第一种,文本生成。最典型的就是根据需求生成测试用例。你把需求描述丢给它,让它按给定格式输出用例。这个用法门槛最低,但要注意:生成的用例质量参差不齐,必须有人工审核环节,不能直接入库。

第二种,文本理解与转换。比如把自然语言的测试步骤,转换成结构化的操作指令;或者把一段报错日志,翻译成人能看懂的缺陷描述。这个用法的价值在于"翻译",把非结构化变成结构化。

第三种,代码生成。这是测试人最关心的——根据测试用例生成UI自动化脚本。比如给它一条"登录页面输入用户名密码点击登录,验证跳转到首页"的用例,让它输出Playwright的Python代码。这个用法对Prompt的要求比较高,需要给它足够的上下文(页面元素定位方式、框架版本、代码规范)。

第四种,作为Agent的决策核心。这是最复杂的,大模型不再只是生成内容,而是决定"下一步做什么"。比如一个测试Agent,它要自己判断:当前页面加载完了吗?该点哪个元素?断言失败了要不要重试?这些决策都由大模型来做。

四种用法,难度递增,价值也递增。转型初期建议从第一种和第三种切入,因为它们最容易出成果,也最容易和现有工作结合。

3.2 Agent到底是什么,和普通脚本的本质区别

关键词里反复出现"Agent",很多人对这个词的理解是模糊的。我用一句话说清楚:普通脚本是"你告诉它每一步怎么做",Agent是"你告诉它目标,它自己决定怎么做"。

举个具体例子。传统UI自动化,你得写清楚:打开浏览器、访问URL、等待元素、点击、输入、再点击、断言。每一步都是你写死的。而一个测试Agent,你给它的是"验证登录功能是否正常"这个目标,它自己去规划:先打开页面,看看有没有登录入口,有就点进去,输入测试数据,提交,检查结果。中间遇到弹窗,它会自己判断要不要关掉。

这个区别的本质在于决策权的转移。传统脚本的决策权在你手里,Agent的决策权在模型手里。这就带来一个新问题:模型会决策错。所以Agent开发的核心工作,其实是设计好它的能力边界和纠错机制,让它在该自主的时候自主,该受约束的时候受约束。

一个Agent通常由四部分组成:规划(Planning)、记忆(Memory)、工具(Tools)、执行(Action)。规划是拆解任务,记忆是保存上下文,工具是它能调用的外部能力(比如打开浏览器、读文件、查数据库),执行是真正动手。LangChain这类框架帮你把这四部分搭起来,但怎么设计得好用,还是靠人。

3.3 LangChain在测试Agent里的角色定位

LangChain经常被吐槽"抽象太重""版本变化快",但它在快速搭建原型阶段确实省事。对于测试人来说,它的价值主要在三个地方。

第一,统一了模型调用接口。你写一套代码,换个模型只改配置,不用重写逻辑。这在测试不同模型效果的时候特别有用。

第二,提供了工具调用的标准封装。你想让Agent能读文件、能执行代码、能调API,LangChain有现成的Tool抽象,你只要按格式包一下就行。

第三,提供了链式编排能力。一个复杂任务拆成多个步骤,每个步骤一个Chain,串起来跑。比如"读用例→生成脚本→校验语法→保存文件"就是一条链。

但我也要提醒:LangChain不是必须的。如果你的Agent逻辑很简单,直接用模型的原生API加几十行代码可能更清爽。我见过不少人为了用框架而用框架,结果调试的时候被框架的黑盒行为坑得很惨。选型的原则是:先用最朴素的方案跑通,遇到重复劳动再考虑上框架。

3.4 Playwright为什么成了UI自动化的新宠

关键词里出现了"使用playw",指的应该是Playwright。这几年它在UI自动化领域的势头确实很猛,我自己的项目也基本从Selenium迁过来了。原因有几个。

自动等待机制。Selenium最让人头疼的就是元素还没加载出来就去点,报一堆NoSuchElement。Playwright内置了智能等待,大部分情况下你不用手写sleep和显式等待,它会自动等到元素可交互。这一条就省了大量调试时间。

多浏览器统一API。Chromium、Firefox、WebKit一套代码通吃,而且启动快。

强大的选择器。它支持文本选择器、角色选择器,比如get_by_role("button", name="登录"),这种写法比XPath可读性好太多,也更稳定。

对AI生成友好。这一点很关键。大模型生成Playwright代码的准确率,普遍比生成Selenium代码高,因为Playwright的API更语义化、更一致。你让模型生成page.get_by_label("用户名").fill("test"),它不容易出错;让它生成Selenium那一堆find_element(By.XPATH, ...),定位策略就容易写歪。

所以做"用例生成UI脚本"这个Agent,Playwright是比Selenium更合适的输出目标。这不是跟风,是实测下来的准确率差异。

4. 一个能写进简历的实战项目:用例自动生成UI脚本Agent

4.1 项目目标与技术选型

这个项目的目标很明确:输入一条自然语言写的测试用例,输出一段可运行的Playwright Python脚本。听起来简单,但要做好,中间有不少坑。

技术选型我建议这样:

  • 模型层:用支持函数调用的大模型API。国内国外的都行,选一个你稳定能调通的。如果预算有限,用免费额度或者本地部署的小模型也能跑通流程,只是生成质量会打折扣。
  • 编排层:初期直接用原生API加Python,跑通后再考虑LangChain。
  • 输出层:Playwright + Pytest,生成的是标准的测试函数。
  • 辅助层:一个页面元素信息的采集工具,把目标页面的可交互元素抓下来,作为上下文喂给模型。

为什么要把页面元素信息喂给模型?因为模型不知道你的页面长什么样。你不给它元素信息,它只能瞎猜定位方式,生成的脚本大概率跑不起来。这是这个项目最容易被忽略、也最关键的一步。

4.2 第一步:把测试用例结构化

自然语言的用例,模型直接读也能读,但结构化之后效果稳定得多。我一般把用例整理成这样的JSON:

{ "case_id": "LOGIN_001", "title": "正常登录", "precondition": "已打开登录页面", "steps": [ {"action": "输入", "target": "用户名输入框", "value": "testuser"}, {"action": "输入", "target": "密码输入框", "value": "Passw0rd"}, {"action": "点击", "target": "登录按钮"} ], "expected": "页面跳转到首页,显示欢迎信息" }

为什么要这么拆?因为步骤里的action、target、value是模型生成代码的直接依据。你给它结构化的输入,它输出的代码结构也更规整。这一步可以用另一个模型调用来完成——把原始用例文本丢给模型,让它输出这个JSON格式。这就是一个典型的"链":先结构化,再生成代码。

4.3 第二步:采集页面元素作为上下文

这一步是整个项目的技术核心。你需要写一个小工具,用Playwright打开目标页面,把所有可交互元素的信息抓出来。抓什么?我一般抓这几项:

  • 元素的角色(role):button、textbox、link等
  • 可访问名称(accessible name):通常是按钮上的文字、输入框的label
  • 元素类型(tag)
  • 可能的定位属性:id、name、placeholder、data-testid

抓完之后整理成一个列表,作为上下文塞进Prompt。这样模型在生成get_by_role("button", name="登录")的时候,是有依据的,不是猜的。

from playwright.sync_api import sync_playwright def collect_elements(url): elements = [] with sync_playwright() as p: browser = p.chromium.launch() page = browser.new_page() page.goto(url) page.wait_for_load_state("networkidle") # 抓取所有可交互元素 handles = page.query_selector_all( "button, input, a, select, textarea, [role]" ) for h in handles: info = { "tag": h.evaluate("el => el.tagName.toLowerCase()"), "role": h.get_attribute("role"), "text": (h.inner_text() or "").strip()[:30], "id": h.get_attribute("id"), "name": h.get_attribute("name"), "placeholder": h.get_attribute("placeholder"), "testid": h.get_attribute("data-testid"), } elements.append(info) browser.close() return elements

这段代码不复杂,但它是整个Agent"看得见页面"的眼睛。没有它,模型就是闭着眼睛写代码。

4.4 第三步:设计生成脚本的Prompt

Prompt设计是这个项目的灵魂。我踩过的坑是:一开始写得太随意,模型生成的代码风格五花八门,有的用XPath,有的用CSS,有的还自己造API。后来我把Prompt固定成几个部分,效果稳定多了。

角色设定:你是一个资深的Playwright自动化测试工程师。

任务描述:根据给定的测试用例和页面元素信息,生成一个Pytest测试函数。

硬性约束(这部分最重要):

  • 只使用Playwright的同步API
  • 优先使用get_by_role、get_by_label、get_by_placeholder等语义化定位
  • 禁止使用time.sleep,用Playwright的自动等待
  • 断言使用expect,不要用裸assert
  • 函数名格式为test_加用例ID小写

输出格式:只输出Python代码,不要任何解释文字,不要Markdown代码块标记。

示例:给一个输入输出的完整例子。

把这几块拼起来,模型生成的代码质量会有一个明显的跃升。示例(Few-shot)这一块千万别省,它比你说十句约束都管用。

4.5 第四步:生成结果的校验与自动修复

模型生成的代码,第一次跑不通是常态。所以这个Agent必须有一个校验和修复环节,否则它只是个玩具。

校验分两层。第一层是语法校验,用ast.parse或者直接python -m py_compile检查语法,语法都不对的直接打回重生成。第二层是运行校验,真正跑一遍,看能不能通过。

跑不通怎么办?把报错信息收集起来,连同原始代码一起再丢给模型,让它修复。这就是一个典型的自我修复循环:

def generate_with_retry(case, elements, max_retry=3): code = generate_code(case, elements) for i in range(max_retry): ok, error = run_and_check(code) if ok: return code code = fix_code(code, error) return code # 返回最后一次结果,标记为需人工介入

这里有个经验:重试次数不要太多,2到3次足够。超过3次还修不好,说明要么用例本身有问题,要么页面元素信息不全,继续重试只是浪费token。这时候应该把这条用例标记出来,转人工处理。

4.6 实测效果与准确率数据

我在一个中等复杂度的后台管理系统上跑过这个Agent,测试集是50条登录、查询、增删改类的用例。第一版生成的结果,语法通过率大概85%,一次运行通过率大概55%。加上自动修复循环(最多3次)之后,最终通过率能到78%左右。剩下22%需要人工介入,主要是复杂交互(拖拽、文件上传、iframe嵌套)和动态元素。

这个数据说明什么?说明它不能完全替代人,但能干掉大部分重复劳动。原来写50条脚本可能要一整天,现在生成加修复加人工处理,半天能搞定,而且生成的代码风格统一,维护起来也省心。对于企业来说,这个效率提升是实打实的。

我还要强调一点:准确率高度依赖页面元素信息的质量。如果页面用了大量动态生成的class、没有语义化的role和label,那模型也巧妇难为无米之炊。这时候要么推动前端加testid,要么在采集环节做更多处理。测试左移,从推动可测性开始,这句话在AI测试时代依然成立。

5. 学习路径:从观望到能上手,需要多久

5.1 分阶段的学习节奏

我给一个相对务实的节奏,假设你每天能投入1到2小时。

第1到2周:打基础。把Python的异步、装饰器、类型注解过一遍(如果还不熟)。同时把Playwright官方文档的入门部分跑一遍,能写出基本的页面操作脚本。这个阶段不要碰大模型,先把自动化底子夯实。

第3到4周:大模型应用入门。学会调用大模型API,理解Prompt的基本结构,能写出稳定的结构化输出。这个阶段的产出是:一个能根据需求文本生成测试用例的小工具。

第5到8周:Agent项目实战。就是上面那个用例生成UI脚本的项目。从最简单的单步生成开始,逐步加上元素采集、校验、修复。这个阶段会遇到大量调试,是成长最快的时候。

第9到12周:工程化与扩展。把项目接入CI,加上报告,处理并发,考虑怎么和现有的测试平台集成。同时开始了解AI系统评测的知识,为第二条路径做准备。

三个月,能做出一个拿得出手的项目,面试的时候能讲清楚技术选型和踩坑过程。这个投入产出比,我觉得是划算的。

5.2 每个阶段该产出什么

学习最怕的就是"学了很多但说不出做了什么"。所以每个阶段都要有可展示的产出。

阶段产出物能证明什么
基础期一个完整的Playwright测试脚本集自动化基本功
入门期需求转用例的小工具大模型应用能力
实战期用例转UI脚本的Agent综合工程能力
工程期接入CI的完整流水线落地能力

面试的时候,你把实战期那个Agent拿出来,讲清楚为什么这么设计、遇到什么问题、怎么解决的,比你说一百句"我学过LangChain"都有用。项目是最好的简历。

5.3 免费资源和付费课程怎么选

资源这块我给点实在的建议。官方文档永远是最好的老师,Playwright和LangChain的文档质量都很高,遇到问题先查文档。大模型的能力边界和Prompt技巧,看各家模型的官方指南比看二手文章靠谱。

付费课程的价值在于帮你省时间、给你一个结构。如果你自律性强、能自己啃文档,完全可以自学。如果你容易半途而废、需要有人带着走,那选一个有完整项目实战、有老师答疑的课程是值得的。但选课的时候要擦亮眼睛:看它有没有真实项目,看它讲不讲踩坑,看它是不是只讲概念不讲代码。只讲"大模型原理""Agent概念"这种课的,对转型帮助有限。

我个人的经验是:课程负责给你地图,走路还得靠自己。再好的课,你不敲代码、不做项目,也变不成自己的能力。

6. 转型路上最容易踩的几个坑

6.1 只学概念不动手,学完还是不会

这是最普遍的问题。看了很多讲Agent架构、讲Prompt技巧的文章,笔记记了一堆,但从来没完整跑通过一个项目。结果就是面试的时候能说出名词,一问细节就露馅。

破解方法很简单:从最小的项目开始动手。不要一上来就搞复杂的多Agent协作,先做一个"调用API生成一段文本"的脚本,跑通。再加一个功能,再跑通。每一步都要有能运行的东西,哪怕很简陋。跑通十个简单脚本,比看懂十篇架构文章有用得多。

6.2 盲目追新框架,基础反而荒废

AI领域新框架层出不穷,今天LangChain,明天又出个什么。有人就跟着追,每个都学一点,每个都不精。更糟的是,追框架的过程中,把Python基础、测试设计这些根本的东西荒废了。

我的态度是:框架是工具,基础是内功。LangChain会过时,但你对测试用例设计的理解、对自动化稳定性的把控、对代码质量的要求,这些不会过时。选一个主流框架深入用透,比浅尝辄止地追新强。而且很多框架的核心思想是相通的,你把一个用明白了,换另一个上手很快。

6.3 忽视测试思维,把AI测试做成"调API"

有些同学转型之后,满脑子都是怎么调模型、怎么优化Prompt,反而把测试人最核心的东西丢了——测试思维。什么是测试思维?就是知道一个系统可能在哪里出问题,知道怎么设计用例去覆盖这些风险点。

测AI系统尤其需要这个。大模型的输出是不确定的,你怎么设计评测集才能覆盖它的能力边界?怎么区分是模型能力问题还是Prompt问题?怎么定义"通过"?这些问题,靠调API是解决不了的,得靠测试思维。AI测试开发,测试是根,AI是叶。根扎得深,叶才茂盛。

6.4 期望速成,两周没成果就放弃

最后一个坑,也是最要命的:期望速成。有人觉得AI这么火,学两周就能拿高薪。现实是,转型是一个以月为单位的过程,中间会有大量调试失败、看不懂报错、怀疑自己的时刻。

我的建议是把目标拆小,给自己正反馈。不要盯着"成为AI测试专家"这个大目标,而是盯着"这周跑通一个生成用例的脚本""下周让Agent能生成一段能跑的代码"。每完成一个小目标,就离终点近一步。这个过程里,坚持比聪明重要。

7. 关于"要不要现在入场"这件事

回到标题里那句话——"这一次别再观望"。我理解观望的心态,毕竟前几年各种"风口"让不少人交了学费。但AI测试开发这个方向,和那些纯概念的风口不太一样,它有实实在在的落地场景和岗位需求。

判断一个方向值不值得投入,我一般看三点:有没有真实的企业需求、有没有可复用的技能沉淀、有没有持续演进的生态。AI测试开发这三点都占。企业确实在招这样的人,你学的Prompt工程、Agent开发、Playwright这些技能,换个项目照样能用,而且整个生态还在快速迭代,不会学完就废。

当然,我不是说所有人都必须转。如果你现在的工作很稳定、你也享受当下的状态,那没必要焦虑。但如果你已经感受到了岗位需求的变化,或者想给自己多一条路,那现在动手,比再观望半年要强。技术这件事,永远是先动手的人吃到红利。

我自己的体会是,转型过程中最难的不是技术本身,而是迈出第一步和坚持下去。技术可以学,项目可以做,但如果你一直停在"了解"的层面,那再多的信息也变不成能力。找一个能跑通的小项目,今天就动手,比什么都强。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询