夜雨聆风学习资料网

ARTICLE · 1291643

软件测试的 AI 原生智能体时代

软件测试的 AI 原生智能体时代
早上打开工作区,首页是三个 agent 的看板,生成、审计、回归各一列,夜里谁干了活、干了多少、卡没卡住,一眼扫完。回归列的绿灯停在 789,差的 11 条标着红。昨晚的全量回归报告就躺在那。
800 条 E2E,挂了 11 条。
搁三年前,这 11 条够我处理一上午。现在屏幕上已经分好组了。8 条是前端改版导致的选择器失效,自愈引擎给出了修复建议,我扫了一眼,点确认。2 条是预发环境的老毛病,数据库主从延迟,跟代码没关系。真正要看的,就剩 1 条。
排序服务那条,结果和基线对不上。
我跟你说,就为这 1 条,我想把今天这一整天摊开写一篇文章。
先做个假设。有这么一名测试工程师,手上是一套每天几亿请求量的在线服务,核心后端,一堆后台管理页面,上线前的最后一道关由他把着。这篇文章里的我,就是他。日常阵地是一个多智能体工作区,拿 Claude Code 搭的,用例生成、代码审计、E2E 回归,各有一个 agent 盯着,Playwright 在底下跑脚本。最近刷到 Shiplight 的一篇博客,讲 AI 原生软件测试,说行业正在从 AI 增强走向 AI 原生。前者是 AI 给人打下手,人写用例它辅助。后者是 AI 当主操作者,用例自己建自己跑,修不动才喊人,人退到验收位。文章列了五大收益,说得挺满,通篇一片光明的未来。
这两年行业调查也一路加码,Katalon 今年的报告收了四千三百多份从业者问卷,World Quality Report 出到第 16 版,AI 都是绕不开的题。
我的第一反应是,这些话,我得拿自己的一天对一遍账。
厂商收益第一条,测试创建和执行更快。
这条我有发言权,因为上午就在干这个。排序服务的团队改了打分逻辑,这周要上线。这套排序,十几个参数实时算,每天几亿次请求,属于典型的大流量功能验证,预发环境得拿三倍日常 QPS 的回放流量压一遍才敢放。以前这种活,我写边界用例能写两天。这次我把接口契约文档和代码 diff 喂给用例生成 agent,四十分钟,出来 120 条。
快是真的快。
但后半截厂商一般不提。120 条里我动手砍了一半,重复的,断言没劲的,还有些场景压根不存在。最后留 60 条进流水线。审的办法很土,对着契约一条条看断言强不强,数据造得像不像线上,边界取值偏没偏。坦率的讲,我审这 120 条花的时间,比我从零手写 30 条还多,这个事儿我一开始不太想承认。
刚上这套的时候,我的采纳率只有两成,废稿居多。磨合了小半年,现在能到六成。工具没换过,换的是我写规约的水平。规约长什么样,其实就是一张表,输入域、边界值、每个等价类的预期结果,一行一档。我写表,它出题。表写得含糊,它就自由发挥,发挥出来的全是废稿。
算总账还是赚的。用例这个东西,从 0 分到 60 分,agent 比我强,参数组合、边界值、异常码,信手拈来。从 60 分到 90 分,还得人来。所以更快这条是真的,只是要对折着看。我的时间总量没见少,花法变了,我从写字的人变成了审字的人。现在打开我的工时记录,写用例那栏缩成一小条,审用例那栏占了半天。
生成质量还有个隐藏依赖,契约文档得干净。我们组的接口文档维护得勤,agent 出活就稳。隔壁组文档常年欠账,他们生成的用例,怎么说呢,看着挺热闹,一半测的是三年前就下线的接口。
厂商收益第二条,自愈测试,降低维护成本。这条的宣传最猛。Shiplight 引了个数,说测试维护历来吃掉 QA 工时的 40% 到 60%。
这个数我信,我们组只会更惨。
E2E 的维护确实是无底洞,Playwright 脚本跟着前端改版跑,组件库一升级挂一片。自愈也不是什么新发明,开源界早就有,Healenium 专门干这个,Selenium 生态里的老牌插件,原理是拿语义相似度把失效的定位器映射到新控件上。早上那 8 条选择器失效,自愈全接住了,接得也对,这一层确实顶用。
选择器这层之所以能自愈,是因为控件挪了位置,它还是那个控件,语义没变,找回来就行。逻辑断言没这个福气。业务规则一变,对错的标准跟着变,机器手里没有新标准,只能硬套旧的,一硬套就出事。
拿一个假设的例子说。接口把某个金额字段的单位从分改成了元,页面展示跟着变了,自愈引擎把断言也顺手适应了,用例照绿。要不是有人多点了一眼 diff,一个资损 bug 就从绿灯底下溜过去了。这类案例复盘下来结论都一样,工具没做错什么,错在验收让渡得太痛快。
连卖自愈的厂商自己都承认边界。Applitools 那篇自愈科普的定位就挺老实,讲清楚自愈是什么,怎么干活,以及什么时候帮倒忙。什么时候帮倒忙,这半句才是重点。
从那以后我们组立了家规。自愈记录每天抽查,逻辑类断言白名单管死,只许人工确认。抽查不复杂,打开修复记录看两样,它动的是定位还是断言。动定位,放行。碰断言,拦下来人核。维护工时降没降,降了。降下来的工时去哪了,一部分变成了盯自愈记录的工时。这话听着有点刺耳,但天下没有白吃的午餐。
中午,审计 agent 的报告进来了,下午的活排上了。
厂商收益第三条,更聪明的覆盖,AI 生成用例加智能优先级,覆盖又全又准。
这条我打 75 分。全,是真的全。推荐打分那种十几个参数的组合边界,人脑是算不过来的,agent 吐出来的分桶边界用例,好几个组合我自己是真想不到。比如新用户冷启动那一段,打分权重和普通流量完全两套,衔接处的边界我漏过两回,它一回都没漏。搁以前,这种边角全靠线上流量兜底,现在预发就能摁住,实打实的收益。
但覆盖这个词得拆开看。工具性的覆盖,AI 碾压。语义性的覆盖,它就是个新人,你不说它就不知道。排序这条业务里,哪些合同条款要特殊豁免,哪些大客户走白名单,全写在一份没几个人看的 wiki 里。这些没进它的上下文,它只认你喂给它的东西。所以覆盖率报表涨了,先别急着报喜,看看涨的是哪一层。
还有个更阴的坑。Thoughtworks 的技术雷达专门提醒过,AI 生成用例普及之后,要靠变异测试去抓永绿用例。就是不管代码逻辑怎么改它都绿的用例,断言是空心的,或者 mock 跟实现早就脱钩了。变异测试的意思很直白,故意往代码里改坏一处逻辑,看有多少用例变红。红得越多,用例越真。全绿,说明你这堆用例是摆设。我们组现在的做法,生成批次每周抽一轮做变异,红得不够狠的整批回炉重生成。生成得越快,空心用例越多,报表越好看。他们另一条提醒我也想抄过来,AI 把代码的首轮通过率抬上去了,吞吐量指标全线飘红,人容易错觉生产力翻倍。度量这东西,最先骗到的往往是自己。
下午,一个常规的后台功能需求提测。管理后台的配置页,新加一个生效时段的开关,带几张报表。
这种需求是 E2E 的主场。我把交互路径给 agent,它过了一遍,生成 18 条流程用例,跑起来。前端这个迭代又升了组件库,往常我得跟着改一波脚本,这次自愈把 6 条挂掉的用例自己修好了 5 条,修复建议点开一看,改得比我自己改的还规范。需求文档里埋的那个坑,生效时段和限额耗尽的交互,agent 没一条用例碰到。我自己补了第 19 条,把时段开关切到一半时限额恰好耗尽的行为单独断言了一遍。这条要是漏了,上线后投诉的是客户,扣的是我们组的分。
后台功能这块,是五大收益里兑现得最足的一块。场景简单,逻辑直,断言清楚,AI 从生成到执行到自愈全接得住。如果你的团队想找地方先试水,从后台功能测试开始,踩坑概率最小。
过了没一会儿,又出了个插曲。审计 agent 在核心服务热点路径的 diff 里报了个并发问题,读写锁的覆盖范围。我照着它报的位置往上追了四十分钟,结论是误报。那个变量是配置热加载,写频极低,有单独的锁保护,它把低频写当成了竞态风险。误报之后我把这个案例写回了它的规则库,同样类型的配置热加载,这周再没报过。它学得快,前提是你肯花时间教。
这就到了厂商收益第四条,准确性与一致性。
执行层面的一致性,我举双手认。800 条回归它跑一百遍不烦,不跳步骤,不会因为周五下午想下班就少看一眼日志。人会疲劳,它不会。这条是真的。
判断层面的一致性,另一回事。它一致地信它学到的模式,也就会一致地错。误报还是好的,误报浪费的是我四十分钟。怕的是规约写歪的那种。举个假设的例子,验收标准里把「支付成功」写成了「支付发起」,一字之差,整批用例整整齐齐全测偏。方向错了,执行越一致,跑得越偏。
所以一致性这条,我给执行打满分,给判断打不及格。断言和规约现在是单点,首条用例必须人过目。这也是家规,拿险情换来的。
厂商收益第五条,持续自适应测试,7×24 不间断,变更即触发,自动适应。
跑,确实在跑。回归池挂在流水线上,提交即触发,夜里全量。这是这五年测试基建最实在的进步,我赶上了全程。上个季度我们给用例池做了次瘦身,砍掉两百多条早没人维护的老模块用例,夜间全量的时长从四个钟头压到两个半。瘦身这种活,agent 提建议,下刀的还是人。
但自适应这三个字水分不小。选例策略是我们调的,失败分组规则是我们写的,用例池每个季度要人工捋一遍,不然半夜跑的全是僵尸。持续测试的另一面,是持续的环境成本和持续的分诊成本。夜里环境抖动没人管,有回是隔壁组半夜压测占了库,早上来一屏假失败,我当了半小时法医才分清哪些是环境的问题,哪些是代码的问题。环境超时和真超时在报表里长得一模一样,得翻 trace 才分得开。
AI 原生,AI 增强,读着像手机型号的 Pro 和 Pro Max???
回到 Shiplight 那个框架本身。它说收益只在 AI 原生模式里成立,AI 增强模式吃不到。我的这一天里,两个模式来回切了不知多少回。审那 60 条用例的时候,agent 是我的助手,我在掌舵。审计 agent 自己扫 diff 的时候,它是主操作者,我在验收。叫什么模式无所谓,关键看谁站在最后一道关口。关口是人,收益就是真的。关口整个交出去,假绿迟早找上门。再补一个实操细节。我们工作区里,回归 agent 只有执行权,改不了任何代码。审计 agent 对代码库只读。生成 agent 的产物进暂存区,我点过头才准入池。这套边界是拿事故换来的,谁的锅谁来背,前提是先把锅分清楚。
有人问我怕不怕被取代。说真的,三年前我怕,现在不怕了。它替代的是任务,责任替代不了。上线出了事,复盘会上坐着的还是我,agent 不来背这个锅。假如有新人问我,测试的核心竞争力是什么,我会把那条真失败翻给她看。出题这种活它抢得走,说这条为什么必须拦住的判断,它抢不走。
它的 FAQ 里还有一句,AI 不会取代 QA 工程师。这句我同意,但要加注。岗位没消失,岗位的内容变了。我们组六个人,没裁也没招,写用例的时间少了六成,写规约、做验收、分诊失败的时间翻了一倍还多。你要是带团队的,先别急着按厂商报价单排预算。工具的账好算,一年的订阅费摆在那。人的账难算,先给团队留三个月的规约和验收学习期,比什么都强。账还容易漏一笔,token 钱。agent 跑得越欢烧得越多,财务头一回看到月账单,多半要来问一句,这是买了什么。持续测试的持续,一半说机器在持续跑,一半说钱在持续烧。还有,考核别盯用例数和覆盖率了,AI 时代这两个数字最好刷。要看就看漏测,看线上逃脱的 bug 数,那才是测试团队的真账。
傍晚,那条真正的失败用例有结果了。我让审计 agent 复核了那版打分 diff,它标出的可疑点研发确认了,权重迁移时漏了一个衰减因子的旧值兼容。修完,回归重跑,全绿。
这周可以上线,我心里是有底的,比三年前任何一次上线都有底。
测试这个工种,三十年里换过好几回手艺。从手工点到自动化,从自动化到平台化,自动化那一阵,只会手工执行的老前辈也慌过,后来补上脚本的手艺照样扛主力。每一回都有人喊测试要消失了,活下来的都是先换手艺的那批。这一回也不例外,只是这次换的是规约和验收的手艺。
最后给同行几条实在的,都是踩过坑之后的保守做法。
一,生成用例可以放量,断言必须人审,规约文档比 prompt 重要,喂进去的东西干净,出来的东西才干净。
二,自愈可以开,逻辑断言白名单管死,自愈记录每天抽十分钟看一遍。
三,覆盖率报表旁边摆一份变异测试报告,防永绿。
四,夜间回归的环境告警单独建通道,假失败不过夜。
五,自学的方向从编码往规约和验收挪,我自己也在挪,三年内应该不亏。现在面试新人,我会多问一句,你验收过 AI 的产出吗,被它坑过吗。两个都答不上来,简历上的自动化经验得打个问号。
这些不一定全对,我也还在摸索。但拦下的那 1 条是真的,误报甄别的四十分钟是真的,这周能顺利上线也是真的。
800 条是 agent 跑的,拦住那 1 条的,还是人。这买卖,划算。

回首页,搜索你想要的文档

在首页搜索框输入关键词,快速定位资料

文库首页搜索指引 立即搜索

相关学习资料