企业最危险的误判只有两个:只留下开发人员,把测试团队全开了;或者只留下测试人员,把程序员全开了。这两个都错,而且错得很贵。
还有一个特别隐蔽、特别危险的误判,必须单独拎出来说:把“单元测试代码覆盖率”当成软件质量的监源指标。这套东西看着很科学,实际上很容易把人骗了,尤其是在AI能批量生成测试代码的今天。
一、为什么2027年转型主角是程序员?
过去程序员是主力军,因为“把代码写出来”最稀缺。AI来了以后,写代码越来越便宜,瓶颈往前移了:什么算成功?约束是什么?证据在哪里?出了问题谁拍板?
一个程序员如果还是“需求给我,我写完交给测试去验”,他的可替代性会越来越高。AI能替他写代码,但替不了他承担一句话:这个变更在真实条件下,到底算不算好?
所以程序员要分三条路走:
-
产品型工程师:能把模糊需求说清楚,定义What和成功标准,把“大概要这样”变成可验收的行为契约。 -
平台型工程师:少数资深程序员和架构师,去建Harness、建AI原生开发平台、建评测框架、建门禁和工具链。说白了,就是给AI和团队修一条能跑车的高速路,还得装护栏和摄像头。 -
系统/可靠性工程师:处理跨系统契约、性能、安全、数据一致性、发布风险。
剩下大量普通程序员,不是“转岗做测试”,而是被AI吸收掉一部分重复实现工作,同时被逼着完成一个共同转变:从“我实现了功能”变成“我能说清楚这个变更什么条件下算失败、证据在哪、风险谁拍板”。
这不是全员转测试,是可验证交付责任压到每个交付者头上。
二、测试人员去哪了?不是消失,是压缩、前移、精英化
测试团队里最容易被AI吸收的,是“照着用例执行、提交Bug、做回归”的那部分工作。这部分行为稳定、预期明确、可重复,2027年没有理由还靠人海战术。
但有三类事情,AI替代不了,也不该替代:
第一类:规约工程。把模糊需求变成可验收的行为契约、约束条件、不可接受失败模式清单。不是写更厚的文档,而是提前把“什么算失败”说清楚。资深测试人员的价值在这里特别大,因为他们见过太多“开发觉得没问题、用户一用就出事”的坑。
第二类:E2E测试设计。注意,不是“找个人在UI上点点”。真正的E2E,是真实用户旅程、跨系统契约、权限与数据状态、异步和第三方依赖的最终证据链。AI可以生成E2E、可以做自愈、可以扩覆盖,但高风险业务断言、资金路径、权限隔离、监管要求,必须有人设计和评审。纯AI生成E2E不加治理,只会制造更漂亮的覆盖率幻觉和更高的flaky债务。
第三类:独立挑战者。开发自己写自己验,最容易“顺着自己的思路验”。独立视角能发现不同类型的错误。这个角色不一定叫测试,但必须有独立质疑权,不能背着“按时上线”的KPI去挑刺。
所以测试人员不是被淘汰,而是数量大幅压缩,位置大幅前移,能力要求大幅抬高。少数资深测试留下来,做规约工程、做E2E风险设计、做质量体系校准;大量普通测试岗位被AI吸收。
三、两个极端都危险:只留开发,或只留测试
只留开发、把测试全开了,会怎样?短期看省人,长期看是把自己的盲区交给运气。开发当然可以自测,但开发很难自己挑战自己的规格。规格错了、边界漏了、跨系统字段语义错位了,谁来看?门禁只能拦已知规则,拦不住“大家都没想起来”的失败模式。最后线上出事,回头一查:不是没人写代码,是没人独立问一句“我们忽略了什么”。
只留测试、把程序员全开了,会怎样?更不现实。AI原生开发平台、Harness、门禁、契约测试、可观测性,这些都要有人能写代码、懂系统、能建工具。测试人员如果只会手工点点,在AI时代根本跟不上节奏。没有程序员建平台,测试团队连像样的证据链都拿不出来。
所以2027年不是“开发”和“测试”二选一,而是重新分工:
-
少数资深程序员和架构师,去建平台和护栏; -
大量程序员,变成可验证交付的第一责任人; -
少数资深测试,变成规约工程师、E2E设计者、独立挑战者; -
大量普通开发和普通测试岗位,被AI吸收、压缩、转岗。
四、规约和质量门禁很重要,但别把它们当质量保险
企业很容易犯一个错:以为把SDD规约写厚、把门禁做严,质量就有保证了。不是。
规约可能是错的、残的、模糊的。AI可以按规格飞快生成代码,但规格本身没人验证,错误只会被更快地规模化复制。规约工程要产出的不是“更厚的文档”,而是“这次变更不可接受的失败模式清单”。
门禁只能拦“已经被写成规则”的风险。跨系统字段语义错位、权限组合、异步时序、第三方契约漂移、真实数据状态组合,这些往往不在门禁的已知规则里。门禁全绿,只说明“已知检查项过了”,不等于可发布。
门禁本身也要审计。误报率、漏报率、flaky率、被绕过次数、拦截到的真实缺陷比例——这些比“门禁有多少条规则”更有意义。门禁越严但越不准,最后大家都会学会绕。
一句话:规约和门禁是地基,不是质量本身。质量不是被“保证”出来的,是在不确定中持续被证明、被收敛出来的。
五、把质量等同于单元测试覆盖率,非常危险
这一条要单独说,因为它在国内软件企业里最常见、最像“科学管理”、也最容易骗人。
第一,覆盖率测的是“代码被执行过”,不是“行为正确”。一行代码被跑到了,只能说明测试碰到它了,不能说明断言写对了、业务规则覆盖全了。大量“无断言测试”“弱断言测试”“mock到底的测试”,覆盖率可以很漂亮,实际什么都没验。
第二,覆盖率的分母是开发已经写出来的代码。它天然测不到“根本没实现的需求”“规格遗漏的失败模式”“用户真实旅程里的问题”。一个90%覆盖率的模块,完全可能是一个在真实场景里频繁出错的模块。覆盖率再高,也回答不了“我们是不是做错了东西”。
第三,基于产品代码反向生成测试代码,是非常危险的。这是AI时代最容易踩的坑。用实现去生成测试,本质上是用同一套逻辑验证同一套逻辑:开发怎么写的,测试就怎么验,同义反复。实现里的理解偏差、规格里的遗漏、边界条件的错误假设,会被原样复制进测试里,然后覆盖率一片绿,大家心安理得地发布。这不是在验证质量,这是在给错误盖章。测试代码应该从规格、从行为契约、从不可接受失败模式出发,而不是从产品代码倒推。倒推出来的测试,只能证明“代码和它自己一致”,证明不了“代码和需求一致”。
第四,国内单测底子本来就薄,这套指标更容易被刷漂亮。过去很多企业单测做得不够好,现在也不一定做得好。一旦把“覆盖率只许上升、不许下降”当成硬管理动作,团队最理性的反应不是补高质量测试,而是补“容易覆盖的测试”:多写几个不痛不痒的断言、多mock几个依赖、多跑几行代码。指标上去了,风险没降。管理者看着仪表盘很开心,实际上被数据骗了。更糟的是,AI让生成测试代码变得极其便宜,这套指标被刷漂亮的成本比过去更低。AI不是让覆盖率更可信了,是让覆盖率更容易注水了。
第五,合并进dev就跑覆盖率、每个版本都跑覆盖率,这些动作本身没问题,问题在于把它们当成“质量监源”。跑覆盖率可以,作为探照灯、作为找盲区的线索,挺好。但把它当成质量判决书、当成发布依据、当成管理层的唯一质量仪表盘,就危险了。覆盖率是“哪里可能没测到”的提示,不是“质量好不好”的结论。
那怎么办?几个实在的做法:
-
覆盖率只做“探照灯”,不做“判决书”:用它找盲区、找没被碰到的风险代码,不用它给团队排名、定生死。 -
看断言质量,不只看行覆盖:关键业务逻辑有没有强断言?异常路径有没有验?边界条件有没有覆盖?没有断言的覆盖,等于没覆盖。 -
用变异测试校准测试有效性:故意在代码里注入小错误,看测试能不能抓住。抓不住的覆盖率,是假覆盖率。 -
测试从规格出发,不从产品代码倒推:先写“什么算失败”,再写测试;AI可以帮忙生成,但高风险断言和业务规则必须人评审。 -
把“规格阶段发现缺陷比例”“发布后逃逸缺陷”“变更失败率”拉进质量仪表盘:这些比覆盖率更接近“质量到底行不行”。
一句话:覆盖率是个好工具,但当质量监源用,就会被它骗;基于产品代码生成测试来刷覆盖率,更是自己骗自己。
六、AI原生时代,测试更难,不是更简单
AI原生软件让测试更有挑战,原因很实在:
-
LLM输出不确定,同一输入可能不同结果,传统“断言等于某值”的E2E大量失效; -
Agent会多轮规划、调用工具、产生副作用,测试对象从“页面”变成“行为轨迹和状态变化”; -
RAG知识有时效性,权限、租户、数据隔离组合爆炸; -
多Agent协作和工具调用,失败可能藏在“步骤之间的状态”里; -
环境漂移、合成数据不真实、第三方契约变化,让E2E本身变脆弱。
所以E2E不是“要不要”的问题,是“怎么做得起、守得住、能判断”的问题。合理策略是风险驱动:关键用户旅程、跨系统契约、权限与数据隔离、异步与第三方依赖、监管与资金路径,必须有E2E证据。AI可以扩广度、做自愈,但高风险断言和业务规则判断不能全交给AI。
七、2027年企业到底怎么做?
第一,建一个小而硬的平台团队。少数资深程序员和架构师,专职做Harness、AI原生开发平台、评测框架、门禁和工具链。别让最贵的人天天写重复业务代码,那是浪费。
第二,保留一个小规模、高密度的质量判断池。不叫测试部也可以,但必须有独立质疑权。一部分人做规约工程,一部分人做E2E风险设计,还有一部分人做门禁有效性审计。人不用多,但要资深。
第三,让普通程序员完成责任升级。晋升和绩效里加入“能不能定义失败条件、能不能设计证据、能不能治理AI测试资产”,不只看交付功能。不会的人,培训转岗;实在转不了,再谈优化。
第四,门禁要分层,更要审计。静态、单测、契约、集成、安全、性能分层门禁;同时度量误报漏报、flaky、逃逸缺陷。别把覆盖率当管理仪表盘,更别搞“覆盖率只许升不许降”这一套。
第五,测试从规格出发,不从产品代码倒推。AI可以帮忙生成测试,但必须有人守住“测试验的是需求,不是实现”。高风险断言、业务规则、权限资金监管路径,必须人工评审和手写守门。
第六,E2E风险驱动,AI生成+人工守高风险。关键旅程清单化;AI扩广度;高风险断言必须人评审。
第七,建立质量责任矩阵。每个变更都有交付Owner、独立Challenger、发布决策者。Challenger不背“按时上线”的KPI,只对证据和风险说话。没有这个机制,“人人都是测试”就是无人负责。
第八,度量换挡。少看覆盖率,多看变更失败率、发布后逃逸缺陷、门禁拦截有效率、关键旅程E2E通过率、flaky率、MTTR、规格阶段发现缺陷比例。覆盖率可以留,但只能当探照灯,不能当判决书。
字节QA并进RD:不是测试被淘汰,而是分工开始融合
【辩论赛】测试工程师 vs 程序猿,在智能时代究竟谁会淘汰谁?
Ruby on Rails之父DHH访谈录:手写代码时代正在落幕,未来电脑应当由自然语言掌控

