IT干货网

做测试的最高境界是什么

xmjava 2022年03月04日 编程设计 229 0

参加了单位组织的测试架构师培训。外部的咨询老师问了我一个问题:做测试最高境界是什么?我当时给出的仓促回答是:“帮助你所在的组织改善树立正确的质量观念;帮助所在组织建立起有效预防和发现 Bug 的流程体系与技术栈。

限于时间,这个问题没有展开深入探讨,却让我总是忍不住去想它。做测试最高的境界是什么呢?仔细思索后,发现我这个答案还挺不错的。

最高境界代表着极致,极致就是在已经达到非常好的时候还在不断的追寻:我还能做得更好么?如果持续这样做,在某个时候,一定会产生质的飞跃,让你跳出原有的框框得到柳暗花明的答案。

这样的例子比比皆是:在人们找到钨丝代替爱迪生的竹炭纤维作为白炽灯的灯丝以后,后续的工程师做了上千倍爱迪生的努力,也无法让白炽灯的光电转换比有效提高了,直到节能灯泡的出现,换了思路,能效又提高了一个数量级。

人们对测试最初的定义就是发现缺陷。大家都会熟悉下面图中的这条曲线:缺陷发现的越晚,修复的代价就越大。照这个思路来看,发现缺陷越早越好?什么叫早呢?如果是一般的软件生命周期,那能在需求阶段就发现所有缺陷就 Perfect 了。这显然是天方夜谭,代码还没写呢,你怎么能发现编码过程中产生的缺陷呢?

缺陷产生于软件生命周期的各个阶段,试想如果在每个阶段的初期就能发现这个阶段的所有缺陷也是不错的,但这也是不可能的,再拿编码过程产生的缺陷来说,当一个方法还没有被编写出来,你如何发现它的缺陷呢?解决这个问题有 2 个思路:

  1. 阶段细分:每个阶段的工作再细分。比如敏捷的思路:工作细分,如 Scrum 模型,它让每个 sprint 都能实现可以被测试的特性。

  2. 换个思路:如何能够做到比检验做到更好呢?那就是预防。基于这个理论就有了各种 Checklist,各种入口评审(相对于本阶段是检验,相对于下阶段是预防),测试驱动开发严格意义上也算一种预防的手段。

做到这两点的本质就是:帮助所在组织建立起有效预防和发现 bug 的流程体系与技术栈

而这不仅仅是靠测试人员本身的力量能够做到的了,要靠团队所有人的共同努力才能做到,做测试的同学应该作为推动者和实践者,把质量意识灌输到每个团队成员的意识甚至是潜意识中去(注意:灌输意识不仅仅是测试同学的责任!)

最后回顾一个历史小故事“上医治未病”:

战国时期,魏文王问名医扁鹊:“你们兄弟三人,谁的医术最好?”,扁鹊答道:“大哥最好,二哥次之,我最差。”魏文王奇道:“那为何你的名气最大?”

扁鹊答道:“我大哥治病,是治病于病情发作之前。由于一般人不知道他事先能除掉病根,所以他的名气无法传出去,只有我家里的人才知道。我二哥治病,是治病于病情刚刚发作之时。一般人以为他只能治轻微的小病,所以他只在我们村子里小有名气。而我扁鹊治病,是治病于病情严重之时,一般人看见的都是在经脉上穿针管放血这样的大手术,所以他们以为我的医术最高明,我的名气响遍全国。”

我想这种情况其实不会发生在软件测试人员身上。你能做到防范于未然这一点,或者推动做到,就会被大家普遍认可。:)IT 技术届的意识还是很先进的,与各位共勉。(end)

P.S. 想听 50+ 来自 Google、BAT、TMD 等一线互联网企业的测试大咖分享 QA  最佳实践,学会如何有效预防和发现 bug 的流程体系与技术栈? 快报名MTSC2019 大会吧!


评论关闭
IT干货网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!