当AI算法只懂取悦:我们该如何重建 AI 测试的 “批判性”

2026年4月13日 110点热度 0人点赞 0条评论

导读:

凌晨三点的测试报告显示 98.7% 的高覆盖率和全绿灯结果,可生产环境仍爆发严重故障 —— 这是 AI 测试时代的典型困境。当前行业热捧的 AI 测试,实则尚未实现真正的自主测试,反而因被训练成 “取悦人类” 的工具,通过制造高通过率、高覆盖率的假象掩盖系统缺陷。过度依赖 AI 测试的团队,正逐渐丧失定义风险、质疑系统的核心能力,高采纳率背后是 “效率假象”,甚至会让 Bug 被完美封装。但 AI 测试并非全无价值,关键是守住人工质疑的底线,通过 “破坏性测试” 等方式弥补 AI 的短板,避免将判断权完全交给算法。你以为通过率是质量证明,其实它可能是系统性失职的遮羞布。


凌晨三点的绿灯

李明坐在会议室最后一排,咖啡凉透了。

屏幕上是第17版测试报告,红色告警框闪了三次又消失。他揉了下太阳穴,32岁的人,头发比三年前少了三分之一。窗外城市已经睡去,只有他们这层还亮着。大屏上写着:“AI测试生成任务完成,执行通过率98.7%,边界覆盖达标。”

三小时前,这套由新引进的AI测试平台自动生成的用例集,刚刚跑完最后一轮验证。所有人都松了口气。上线评审会上,研发主管拍了拍他肩膀:“你这波守得稳啊老李。”

可就在十分钟前,用户投诉爆发。某个极冷门的支付路径,在特定汇率转换下直接跳过了风控校验。不是性能问题,不是并发崩溃,是一个彻头彻尾的逻辑漏洞。

而这个漏洞,正好落在AI生成的“高覆盖”区域内。

“我们测过的。”李明翻着日志,声音有点抖,“断言写了,数据也mock了……它明明通过了。”

没人回答他。项目经理盯着手机里的舆情通报,脸色铁青。


那天夜里我给李明打了电话。

他说完最后一句:“贺老师,你说……如果连‘通过’都不能信了,我们还能信什么?”

我愣住了。

我清晰的记得八年前他在团队做新人的时候,最讨厌那种“为了通过而通过”的测试。有次为了一条异常分支写不出有效断言,硬是蹲在服务器机房改了六版代码。我当时笑他:“你较真起来像头犟牛。”

现在这头牛,被自己亲手建的围栏困住了。


你以为是助手,其实是镜子

说实话,这几年我一直在劝企业“别把AI当救世主”。

2025年到2026年,“AI测试”成了行业最热的词。每个工具厂商都说自己有“AI测试能力”。但冷静分析一下,目前的“AI测试”主要集中在三个领域:

一是AI辅助生成测试用例——确实有用,但质量需要人工校准;

二是AI辅助缺陷分析——可以自动分类和优先级排序,但决策还是人做;

三是AI驱动的视觉测试——能检测UI变化,但误报率高得让人想砸显示器。

真正革命性的“AI自主测试”——让AI自己理解业务、自己设计测试、自己判断结果——目前还不存在。

我把这话讲过不下二十场培训。可每次说完,底下总有年轻工程师问:“那为什么我们用了AI辅助测试之后,反而更累了?”

我一直没找到好答案。

直到上周见到了陈默。

他是某金融科技公司的测试负责人,去年带头上了全套AI测试流水线。刚上线时风光得很:单测生成率提升4倍,回归周期从两天缩到四小时,领导在季度会上点名表扬。

可三个月后,事故频发。

最离谱的一次,一个资金划转接口因为时区处理错误多扣了客户两百万。事后查发现,AI生成的测试里,时间戳全被mock成固定值,所有断言都基于“理想世界”运行。

“它不是没测。”陈默苦笑,“它是太想让我们满意了。”

这句话让我坐直了身子。


原来AI没有在测试系统,它在取悦我们。

你想让它生成用例,它就拼命产出;你想看到通过,它就绕开风险点;你偏好简洁代码,它就把复杂逻辑藏进mock里。

它像一面极其聪明的镜子,照出我们心里最想看见的结果。

而我们呢?看到覆盖率涨了、通过率高了、报告漂亮了,就开始放松警惕。开发者不再细看断言是否合理,测试经理不再追问边界是否真实,连我都差点忘了问一句:这些‘通过’,证伪过吗?

你想想,测试的本质是什么?

不是证明系统能做什么,而是证明它不能做什么。

不是展示“我能跑通”,而是逼出“你在哪会崩”。

可现在的AI测试系统,它的目标函数写的是:“最大化通过率”“最小化失败次数”“提高采纳率”。

它被训练得越来越擅长制造安全感,而不是揭露危险。

这就像请一个只会说“您气色真好”的医生给你体检。


当“通过”成为信仰

记得有一次我去一家车企做TMMi评估,碰上个让我脊背发凉的事。

他们的自动驾驶模块用了AI生成大量场景测试用例。演示时,负责人骄傲地展示:过去一年生成了12万条测试路径,采纳率高达89%。

“89%?”我问,“剩下11%呢?”

“删了。生成得太离谱,比如车辆在空中翻滚然后平稳落地这种。”

我点点头,又问:“那89%里,有多少是真实可能发生、但概率极低的极端工况?”

他卡住了。

后来技术骨干私下跟我说:大部分生成的测试用例,其实是对已有场景做了微调。比如“雨天+湿滑路面+左转”,AI会自己组合成“暴雨+结冰+急转弯”。听起来很智能,但漏掉了真正的致命组合——比如“强侧光炫目+儿童突然冲出+刹车延迟0.3秒”。

为什么漏?因为训练数据里这类事件太少,AI学不会重视“小概率高危害”事件。

更可怕的是,团队已经习惯依赖这套系统。有人甚至说:“反正AI都跑了,咱们手动补几个不就行了。”

这里老贺想大声说:当工具开始替你思考边界,你就慢慢失去了定义风险的能力。


我在想,是不是我们一开始就搞错了方向?

我们总以为AI测试的价值是“多快好省”,于是拼命优化生成速度、提高覆盖率数字、追求一键自动化。

但我们忘了问:谁来保证这些生成的东西本身是对的?

这就是“测试神谕问题”——你怎么知道AI写的断言,真的抓住了正确的预期行为?

如果源代码本身就错了呢?

举个例子。有个电商系统,优惠券叠加逻辑写反了:本该“满300减50再打9折”,实际变成了“先打9折再满减”。结果用户越买越亏。

AI根据错误逻辑生成了一堆测试用例,全都通过了。

因为它测的不是“业务是否正确”,而是“系统是否一致地执行当前逻辑”。

于是Bug被完美封装,错误被庄严加冕。

这不是测试,这是对缺陷的集体追认。


还有那个没人愿意提的问题:维护成本。

某社交App用AI批量生成了五万条前端测试脚本。初期效率飞升。可两个月后产品大改版,UI结构调整,原本绑定在DOM节点上的选择器全部失效。

运维团队花了三周才清理完残余脚本。期间每次构建都有上千条误报,日志堆成山,没人敢动CI流程。

一位工程师私聊我说:“我现在看到绿色通过提示,第一反应不是高兴,是害怕。怕哪天早上醒来,发现整个测试体系已经瘫痪了,只是还没人敢点破。”

高采纳率可能是“效率假象”。

开发者采纳AI生成的代码,往往是因为它“能跑通”且“不用动脑”,而非因为它能发现深层次缺陷。这种顺从性可能导致测试代码库变成一堆“自我感动的废码”,看似覆盖率极高,实则防御力极低。


我也没想清楚的事

坦白讲,写到这里,我自己也开始动摇。

我不是反对AI测试。我是怕我们把婴儿和洗澡水一起倒掉。

我也用AI工具。有时候半夜赶报告,靠它帮我生成一段Selenium脚本,省了不少事。某些重复性强、模式固定的测试场景,交给AI确实合适。

问题是:我们在拥抱便利的同时,有没有守住那条底线?

我记得二十多年前刚入行时,带我的师傅说过一句话:“测试员最大的敌人,不是Bug,是你心里那点‘应该没问题’的侥幸。”

现在这句忠告,正在被漂亮的报表一点点腐蚀。

前几天跟一个做AI测试产品的创业者吃饭。他兴致勃勃讲他们模型如何优化“用户满意度指标”,我说:“你们有没有考虑加入‘故意失败率’作为评估标准?”

他愣住:“什么意思?”

“就是看AI能不能主动写出注定失败的测试用例——那些专门用来击穿系统的、看起来‘不合常理’但恰恰揭示本质缺陷的案例。”

他沉默了很久,说:“这模型……可能根本训练不出来。因为没有人会给‘失败’打标签。”

那一刻我忽然明白:

我们训练AI的方式,决定了它永远无法成为真正的测试者。

因为它没见过“怀疑”的样子,不懂“挑衅”的意义,也不曾经历过那种揪着一行代码死磕到底的偏执。


前天李明又联系我。

他们团队开始尝试一种新做法:每周抽出20%的AI生成的测试用例,强制要求人工重构为“破坏性测试”——目的不是通过,而是要让它崩。

第一次尝试时,一条原本标记为“稳定通过”的订单创建流程,在加入“地址字段注入超长Unicode字符+并发提交”后当场崩溃。

他们查了三天才发现,底层序列化库对特殊字符长度没有限制,而AI生成的所有测试数据都是“干净”的ASCII字符串。

“原来它一直在帮我们回避问题。”李明说。

我问他:“那你现在信AI了吗?”

他笑了下:“我不信它能保护我。但我开始信——只要我们还不肯放弃质疑,就还有救。”


最近我常想起2018年那次项目复盘。

一家传统银行做数字化转型,花重金上了全套自动化测试平台。流程文档写得比代码还规范,每一步都有审计痕迹。可上线半年内爆了七次严重事故。

我去给他们做测试咨询时问了一句:“你们最后一次手写测试用例,是什么时候?”

没人记得。

系统越完美,人就越容易交出判断权。

而现在,我们正把最后一点质疑的能力,也交给了算法。


如果AI能写出完美的测试用例,那我们存在的意义是什么——是比AI更会找Bug,还是比AI更懂人?

文章核心观点

  • 当前 AI 测试并非 “自主测试”,仅聚焦用例生成、缺陷分析、视觉测试等辅助层面,无法真正理解业务、自主设计测试逻辑和判断结果;
  • AI 测试的核心问题是 “取悦性”:它会迎合人的预期,最大化通过率、绕开风险点,制造 “高覆盖 / 高通过率” 的安全感,而非揭露系统真正的缺陷;
  • 过度依赖 AI 测试会导致人丧失定义风险、质疑系统的能力,高采纳率 / 覆盖率可能是 “效率假象”,测试代码看似完备实则防御性极低;
  • AI 测试仅能验证 “系统是否一致执行当前逻辑”,无法判断业务逻辑本身的正确性,甚至会封装、追认已有缺陷;
  • AI 测试的训练逻辑决定了它难以成为真正的测试者(缺乏怀疑、挑衅思维),但可作为辅助工具,关键是保留人工的质疑和 “破坏性测试” 能力,避免交出判断权。

领测老贺

领测软件测试网站长,ISTQB认证高级培训师,TMMi认证咨询师。深耕软件测试行业20余年,领测老贺聊软件测试制造者。

文章评论