很多公司讨论取消功能 QA时,容易只看到成本:一个团队几十号人,砍掉就是实打实的预算节省。这笔账在季度报表上很好看,也很容易在管理层会议上获得掌声。但真正的问题从来不是能不能砍掉一个岗位,而是砍掉之后,原来由这个岗位承担的风险有没有被重新接住。一个岗位之所以存在,往往是因为它在默默处理某些没人愿意接的脏活;岗位没了,活并不会自动消失,只会换个地方冒出来。

如果公司只是减少 QA 人数,却没有同步补齐开发自测、自动化覆盖、质量门禁、生产监控和缺陷复盘这一整套能力,那么结果通常不是质量提升,而是问题直接流向线上。换个说法,没有质量体系的去 QA 化,本质上只是质量债务转移——账面上省了测试的钱,实际上把成本转移成了线上事故、用户流失和返工。这个转移过程往往是隐蔽的:第一个季度看起来一切正常,因为系统的惯性还在;真正的代价会延迟兑现,表现为越来越频繁的紧急修复、越来越长的发布回滚、越来越多被生产问题打断的迭代节奏。等到管理层意识到不对劲,省下的那点人力成本,可能早就被几次重大事故的赔付和口碑损失吃光了。

所以前提很清楚:公司要取消功能 QA,必须先建立起一套新的质量体系来接棒,从开发自测、自动化覆盖、测试数据平台、稳定测试环境、CI/CD 质量门禁、代码评审标准,到灰度和回滚机制、生产监控、缺陷复盘,再到质量指标和风险评估。这些能力没有建立起来之前,取消功能 QA 只是把风险从测试阶段转移到生产环境——原来在测试环境里被拦下的问题,现在会直接出现在用户面前。取消功能 QA 不是目的,建立内建质量能力才是目的;组织治理要回答的,也不是少了谁,而是谁有权拦截风险、谁对结果负责、谁把经验沉淀成下一次的机制。

组织接住质量风险

那么,这套质量体系在组织里靠谁来扛?大公司不会完全依赖各业务线自觉,因为自觉这件事在规模面前很难稳定:每条业务线都有自己的交付压力,当进度和质量冲突时,没有外部约束的团队很容易先牺牲质量。于是会出现专门的质量治理团队,也就是常说的 Quality Chapter。

这类团队不一定亲自执行每一个功能测试,它的价值也不在于把旧 QA 的活重新集中起来,而是负责跨团队的质量标准和风险控制:制定质量标准和质量指标,把守发布准入,组织缺陷复盘和重大事故复盘,统筹跨团队的质量策略,盯住核心链路覆盖,并治理沉淀下来的测试资产。换句话说,治理团队管的是底线、规则和闭环,不是替业务团队背锅。

这里说的发布准入,是一份可以落地的清单,而不是一句口号。一个典型的发布准入清单大致是这样:

[ ] 核心链路自动化用例全部通过
[ ] 单元测试覆盖率达到团队约定阈值
[ ] 静态扫描无高危问题
[ ] 变更涉及的接口已通过契约测试
[ ] 已配置灰度开关,可控制上线范围
[ ] 已具备回滚方案,并验证可执行
[ ] 关键业务指标已配置监控和告警
[ ] 已完成变更风险评估(影响范围、回滚成本、最坏情况)
[ ] 高风险变更已通过质量 / 风控 / 合规评审

每一条都对应一个明确的卡点,达不到就不放行,这才让准入有了真正的约束力。这些卡点不是凭空设计的,每一条背后都对应着一类曾经真实发生过的事故。比如回滚方案已验证可执行这一条,看起来像废话,但很多团队都吃过亏:上线时信誓旦旦说能回滚,真出事时才发现数据库结构已经变了、回滚脚本从没跑通过,于是只能眼睁睁看着故障持续扩大。又比如契约测试这一条,针对的是微服务架构下最常见的塌方场景——一个服务悄悄改了接口字段,自己测试全过,却让上游几个调用方在生产环境集体报错。把这些教训写成清单,本质上是让组织不必靠每个人的记性,而是靠流程来记住代价。

但清单只是第一步,真正难的是让清单有主人。谁负责检查核心链路自动化,谁有权判断风险评估不完整,谁能在发布前按下暂停键,谁在事故后推动准入规则更新,这些都必须写进组织分工里。否则发布准入就会变成上线前的一次形式确认:每个人都点了头,但出事时谁也说不清当时到底谁应该拦住它。

质量指标的设计同样关键,而且要避免只看测了多少,要看质量好不好。交付前,可以看缺陷逃逸率(多少缺陷漏到了线上)、自动化覆盖率、流水线稳定性;交付后,则看线上缺陷密度、平均故障发现时间、平均故障恢复时间和重复事故率。指标的作用不是考核个人,而是让组织看清楚质量到底在变好还是变差。这里有个常见的陷阱:一旦把指标变成考核个人的 KPI,指标就会立刻被博弈——开发会想办法不把问题登记成缺陷,复盘会变成甩锅大会。所以成熟组织通常把这些指标定位成体温计而非成绩单,它们要回答的是趋势性问题:这个季度的缺陷逃逸率是在收敛还是在恶化,重复事故率有没有下降,发布失败是不是集中在某几类变更上,而不是给某个人贴标签。

一句话总结小团队和大组织的差异:小团队可以靠强人自驱,大组织必须靠机制治理。团队小的时候,一两个有经验的人盯着就能保住质量,因为信息密度高、沟通成本低,谁改了什么、哪里有风险,大家心里都有数。团队一大,人会换、标准会漂移,新来的人不知道历史上踩过哪些坑,老人的经验也无法靠口口相传扩散到几十上百号人身上,只有把标准、准入、指标、复盘都做成机制,质量才不会随某个人的离开而崩塌。机制的价值正在于此:它把个体的经验固化成了组织的资产,哪怕最资深的工程师离职,那道闸门依然立在那里。

治理团队管的主要是发布前那道闸门,但质量并不止于上线。过去很多质量问题都在测试环境里处理,上线被默认为测试通过 = 没问题。随着灰度、监控、回滚、告警成为常态,质量的战场已经延伸到了上线之后,这部分要靠 SRE 和生产质量体系来承接:做生产监控和容量评估,搞故障演练,配熔断降级,推灰度发布,备好回滚机制,并在出事时负责事故响应和根因分析。

这并不是放任问题上线,而是承认一个现实:复杂系统不可能只靠上线前测试完全消除风险。线上的真实流量、真实数据、真实并发,以及第三方依赖的真实状态,是任何测试环境都无法完全复现的。再充分的测试环境,也造不出真实用户那种千奇百怪的操作组合,更模拟不出某个第三方支付通道在高峰期突然抖动的瞬间。所以成熟组织的做法是两条腿走路——上线前降低风险,上线后快速发现、快速止损、快速复盘,而不是把所有筹码都押在上线前那一道闸门上。承认测试有边界,恰恰是为了把资源投到更值得投的地方:与其追求一个永远测不完的零风险上线,不如把发现和恢复的速度做到极致。

高风险行业验证组织能力

金融科技公司最能体现这种变化,因为金融系统的质量问题,往往不只是页面错误或体验下降,而可能直接影响资金、合规和监管。资金这一端,可能是重复扣款、账务不平、清结算错误或退款异常;合规这一端,可能是风控漏放、KYC / AML 违规、权限越权、隐私泄露,乃至监管报送错误和审计证据缺失。这些问题有一个共同特点:它们大多不是功能不可用那种一眼能看见的故障,而是藏在数据正确性和流程合规性里的隐形错误。页面照常显示,按钮照常能点,但账面上的数字已经悄悄错了,或者某条本该被拦截的交易已经放了过去——等到对账日或者监管检查时才暴露,损失早已无法挽回。

这些风险,不是传统功能 QA 能单独兜住的。一个手工测试同学点点页面,很难发现账务在极端并发下会不平,也无法判断这个数据流转是否满足监管报送要求。前者需要在并发压力下追踪每一笔资金的借贷平衡,后者需要熟悉具体的监管条款和报送口径,这两件事都远远超出了点页面的范畴。它需要支付工程团队、账务团队、风控团队、合规团队、SRE 团队、测试平台团队和质量治理团队共同承担。风险越高、链路越长,越说明质量是一个组织能力问题,而不是一个岗位问题。

这也是高风险行业不可能只靠口号做质量治理的原因。资金链路要有人负责一致性校验,风控链路要有人负责规则命中和误放评估,合规链路要有人负责审计证据和数据留痕,生产链路要有人负责告警、回滚和应急演练。每一类风险都要对应责任人、检查手段和升级路径,而不是在上线前统一丢给某个测试同学做最后确认。

把这件事讲具体一点。假设一次灰度发布后,支付成功率出现轻微下降,比如从 99.6% 掉到 99.1%。这个幅度小到不会有大量用户立刻投诉,但放到大盘流量上,就是成千上万笔失败的支付。如果组织没有生产监控,这个问题可能要等用户大量投诉、客服工单堆积才会被注意到,那时影响已经扩散了好几个小时。如果组织没有灰度和回滚,问题发现后也很难快速止损——要么硬着头皮等修复,要么全量回退,代价都很大;而有了灰度,影响范围本来就被限制在一小部分流量内,有了回滚,几分钟就能把版本退回去。如果组织没有缺陷复盘,这次问题就算解决了,根因没被记录、没被沉淀成检查项,下一次类似改动还会再踩一遍同样的坑。

这恰好说明,质量治理不是写几条流程,而是要形成从发布前到发布后的闭环:发布前有准入,发布中有灰度,出问题有监控发现、有回滚止损,事后有复盘沉淀。少了任何一环,闭环都会漏。值得强调的是,闭环里最容易被忽视、却最有长期价值的一环是复盘沉淀。前面几环解决的是这次别出事、出事别扩大,而复盘解决的是下次别在同一个地方再栽一遍。一个真正运转起来的复盘机制,会把每次事故的根因转化成一条新的发布准入项、一个新的监控告警,或一条新的自动化用例,让组织的质量闸门在每次事故后都比之前更密一点。否则同样的问题反复发生,所谓治理就只是一次次救火,永远长不出能力。

取消功能 QA 前的十问

回到管理者面前。如果公司想取消功能 QA,不妨先把下面这些问题逐条回答清楚:

这些问题每一条,原来可能都默认是 QA 在管,哪怕管得并不到位。这正是 QA 这个岗位最容易被低估的地方:它承担了大量没有明确归属、却又必须有人做的质量工作,平时不显眼,撤掉之后才发现处处是窟窿。如果取消之后它们没有明确的新主人,那不过是把风险从测试环境转移到了线上。

要点不在于这些事必须由谁来做,而在于每一条都必须有清晰的责任人——可以是开发,可以是 SRE,可以是治理团队,但绝不能是大家一起负责,因为大家一起负责往往意味着没人负责。更进一步,责任人不只是名字,还要有权限、工具和节奏:能不能拒绝高风险发布,能不能推动业务补自动化,能不能拿到线上质量数据,能不能把事故复盘结果变成下一个版本的准入项。没有这些支撑,责任分配很容易停留在组织架构图上。

所以真正成熟的公司,不是去 QA 化,而是去低价值功能测试岗位化,同时强化工程质量体系。功能 QA 可以被压缩,但质量责任不能悬空。一个组织是否成熟,不看它有没有取消 QA,而看取消之后有没有长出更强的工程质量、生产质量和风险治理能力。

讲完了组织怎么接住质量风险,最后一篇回到每个具体的人:身处其中的 QA 和测开,接下来该往哪里走?

FunTester 名片|万粉千文,百无一用


↙↙↙阅读原文可查看相关链接,并与作者交流