测试小李:“这个新功能有个Bug,表单提交后偶尔会报错,我测了好几遍,某些特定情况下就会出错。”
开发阿明:“这个问题是有某些特殊数据造成的,我们已经知道。这个接口跟其他模块共用的,我这边改了,可能会影响别的地方。现在快上线了,再改来不及了。”
小李:“那上线后用户用了出错怎么办?”
产品丽娜:“这个问题用户遇到的概率不高吧?能不能先上线,我们后面再想办法优化?”
小李:“可是,要我是用户,遇到这个问题会很崩溃的……我们不能带着这样的Bug上线吧?!”
那么,到底是先修复还是先上线?谁能决定?测试心中保障的“质量”,到底是不是全局的“质量”?
测试就像走迷宫,我们追求完美,但这只是在自己所见通道内的优化。事实上,可能在测试角度上“完美”了,但从业务、开发的角度来看,可能增加了维护成本,或者根本解决不了问题。更糟糕的是,这种局部优化甚至可能影响整体质量,导致团队在不同方向上拉扯,既低效,又事倍功半。但是放弃追求完美,对某些问题睁只眼闭只眼,显然也不是测试人员该有的作风。
心有余而力不足…其实,如果只是站在测试的角度,我们能做的很有限。那么,质量到底是什么?怎样才能真正提升质量?
测试视角的局限
如果只是从测试的角度看质量,就像在迷宫里寻找最优路径,你的决策基于局部信息,可能只能做局部优化,而无法真正提升整体质量。比如:
- 需求如果模糊,即使测试再努力,最终产品仍然无法满足用户需求。
- 代码如果质量低,测试即使发现缺陷,修复成本依然很高,甚至可能带来更多问题。
- 测试发现的问题大多是已经发生的,就像火灾一旦发生,再进行救火,损失也在所难免。软件缺陷发现得越晚,修复成本也就越高。
单纯依靠测试,无法从根本上解决质量问题。
那么,质量到底是什么?
如果质量不仅仅是“没有bug”,那它到底是什么?
- 外部质量:软件要少bug、好用,用户满意度高,最终能为业务创造价值。
- 内部质量:代码要整洁、易维护、易扩展,否则每次迭代都像在修补破旧大厦。
- 过程质量:在每个环节做好质量保障,而不是等到最后靠测试兜底。
真正的高质量软件,必须要有好的外部质量和内部质量,这两个质量的保障则依赖于过程中每个环节的质量保障,而不仅仅是靠测试发现问题。
如何才能真正保障质量?
答案是:跳出测试视角,推动全程质量内建。
测试人员的角色不能只是执行测试,而要影响整个团队:
- 在需求阶段,推动清晰、可测的需求,减少歧义。
- 在开发阶段,推动单元测试、代码评审、持续集成,让问题在更早的阶段暴露。
- 在交付阶段,关注质量度量和持续改进,而不是仅仅验证功能。
从测试工程师到质量赋能者
要做好质量保障,测试人员需要从单纯的测试验证(质量保障),转变为质量分析师和质量倡导者:
- 质量分析师:不仅关注缺陷,还要从需求出发做好测试的分析和设计,同时要分析缺陷模式、研发过程中的质量风险,帮助团队优化质量策略。
- 质量倡导者:推动团队建立质量文化,让每个人都关注质量,而不是把它当成测试部门的“专属任务”。
总结
测试的尽头,不是更复杂的测试策略,而是让质量成为团队的共同责任。只有跳出测试的局限,才能真正实现高质量交付。