这对于那些目睹行业从一个极端摆向另一个极端的人来说,是历经艰难才换来的教训。所以,泡杯咖啡(或者来点更提神的东西),我们一起来回顾塑造现代测试的六大变革,以及为何尽管有诸多炒作,最好的 QA(质量保证人员)从来都不仅仅是 “错误猎手”。
第一阶段:黑暗时代,测试人员点击按钮且孤立工作
想象一下:那是 20 世纪 90 年代末,一名测试人员坐在昏暗的隔间里,双手紧握一份 300 页的打印需求文档,把它当作圣旨。他们的工作就是把文档上的每一行都当作真理,即使那些内容毫无道理。应用对他们来说就是个黑盒子,无法访问代码,也不知道它实际是如何运行的,只是 “点这里,看看会不会崩溃”。
像因误解需求而导致生产缺陷,进而给利益相关者造成经济损失这类事件,在当时十分常见。测试人员不得不费力地构建测试用例,并执行它们来验证眼前的产品是否如需求文档所描述的那样运行。
而真正的悲剧是,测试人员注定要失败。他们不是协作者,而是被临时叫来收拾他们并未制造的烂摊子的 “把关人”。当他们发现问题时,得到的答复总是 “太晚了,来不及改了”。
第二阶段:自动化叛变,测试人员停止点击,开始编写代码
到了 20 世纪初,测试人员受够了。一次又一次地做着重复的检查工作,不仅枯燥乏味,而且效果不佳。QuickTest Pro(QTP)成了当时的新宠。它承诺可以录制手动测试并完美地回放它们。当然,事情从未如预期那样顺利——测试在哪怕是最轻微的 UI 更改下都会出错,而且维护它们的成本远高于手动测试。2004 年,Selenium 问世了,这个开源的 “叛逆者” 给了测试人员真正的编程能力。
但事情从这里开始变得复杂起来。一些测试人员积极接受编程,而另一些人则因秉持 “我不是开发人员” 的心态而抗拒。公司们也常做出冲动的决策,比如那家电子商务巨头,解雇了整个手动测试团队,全面转向 “自动化”,结果两年后因客户对其糟糕的用户体验而强烈不满,又不得不重新雇佣这些测试人员。
教训是:自动化是一种力量倍增器,而不是人类洞察力的替代品。
而且,当时有一些自动化测试工程师只是学会了如何自动化测试,却不了解测试的本质。他们什么都不管,只要是测试就会去自动化,而不去考虑自动化测试所涉及的工作量和回报。他们的 KPI 是每天要展示他们自动化了多少测试用例。
第三阶段:敏捷觉醒,测试不再是一个阶段,而是一种思维
接着敏捷来了,一切都变了。突然之间,测试人员不再被流放到项目的最后阶段,而是被嵌入团队中,从一开始就与开发人员并肩作战。这是 “左移测试” 的时代,质量变成了每个人的责任。测试人员转型成了质量保证工程师,他们不仅寻找错误,还预防错误。我们开始与开发人员一起编写单元测试和集成测试、自动化 API 检查,而且确实在将应用部署到测试环境之前就发现了问题,从而防止它们在应用中显现出来。
第四阶段:身份认同危机 —— 当 “QA” 成为一个没有实际意义的流行语
但是行业在这里开始分裂。一些团队真正将 QA 作为一个战略性的职能来拥抱 —— 协作架构设计、影响需求,并拥有质量指标。另一些团队则只是在职位名称上加上 “QA” 二字,却仍然运行着伪装成冲刺阶段的瀑布式测试阶段。他们会将发布周期的最后一个迭代留出来做回归测试。
我曾目睹这样一个所谓的 “敏捷” 团队,他们把代码 “扔过墙”,然后测试人员在最后一刻手忙脚乱地去验证它。把它叫作敏捷并不意味着它就是敏捷,它只是让混乱变得更加频繁而已。这种分裂一直持续到今天。一些组织把 QA 当作合作伙伴,而另一些组织仍然把他们看作是被美化的错误捕捉者。这就引出了…… 第五阶段:质量倡导者的崛起 —— 为在决策桌上争取一席之地而奋斗
如今最好的 QA 不仅仅是测试人员,他们还是质量推动者,将对话从错误数量转向风险缓解。他们有目的性地进行自动化测试,而不是拘泥于教条,知道何时编写脚本,何时进行探索。最重要的是,他们以工具无法复制的方式倡导用户体验 —— 捕捉那些微妙的、以人为本的缺陷,这些是指标单独无法发现的。
然而这里也存在着令人沮丧的现实,太多领导仍然通过错误数量来衡量 QA 的价值,坚持过时的将测试视为成本中心而不是战略性力量倍增器的观念。
这种思维方式不仅错误,而且代价高昂。当领导层把 QA 降低到一个打勾作秀的练习时,团队就失去了预防灾难的关键洞察力。真正的挑战在于,说服组织优秀的 QA 不是关于发现更多错误,而是从一开始就构建更好的软件。
第六阶段:人工智能十字路口 —— 机器会取代我们还是赋能我们?
现在人工智能来了,这是最新的 “灵丹妙药”。像 Testim 和 Applitools 这样的工具承诺提供自我修复测试。GitHub Copilot 起草测试用例。大型语言模型分析日志以发现异常。
但我可以告诉你,这些人工智能系统只能在特定输入下工作并生成输出。QA 仍然需要验证 AI 是否在做正确的工作。未来不是关于 AI 取代 QA,而是 QA 利用 AI 来专注于最重要的事情:战略性质量。
不可撼动的人类判断价值
经过这么多思考,我得出一个结论:
工具在变化。方法在演变。但核心真理依然不变:优秀的软件需要人类的判断。无论是质疑一个有缺陷的需求、发现一个用户体验的边缘案例,还是决定要自动化什么(以及不要自动化什么),这种不可替代的人类因素正是 QA 始终重要的原因。
所以,致我的 QA 同行们:别再让你们被贬低为错误计数器。你们不仅仅是测试人员,更是介于半成品代码和真实用户之间的最后一道防线。担当起这个角色吧。
还有致领导们:如果你们还在用错误数量来衡量 QA,那你们就误解了 QA 的意义。最好的 QA 不仅发现错误,还能预防错误。这难道不值得投资吗?
现在,轮到你们了:
你们觉得在人工智能时代 QA 将走向何方? 你们如何对抗 “但我们一直都是这样做的” 这种心态? 你们在测试前线有什么战争故事吗? 如果这篇文章让你有所领悟,请在下面分享你的想法。