以前存有一种普遍的看法——测试与开发天然对立,就应该是一对冤家。
以一些“行内人”的说法:测试与开发关系太好,不温不火,软件质量是提高不上去的!
从而,人为引发了一系列恩怨纠葛。绩效考核上,开发必须少写bug,测试必须多找bug,从而把测试、开发对立起来!测试为了后面多提bug,根本不太关心 测试左移(bug预防工作),左移了,bug都没了,岂不是自掘坟墓?开发更是人人自危,防测试如防“贼”,常常为测试咬文嚼字的bug大为光火。
这样真的能提高软件质量?如果真能,也没有后面的“测试左移”了!
测试与开发,与其说是冤家,不如说是天然伙伴、盟友,如“狼”与“狈”的关系。(貌似有点不当,不要关注这小细节^_^)
恰恰相反,根据我自身和其他朋友的一些经历来看,测试与开发关系不错的团队,软件质量并不差,甚至更好!
这是为什么呢?
因为测试的工作不只是找bug,还应该花更多功夫在预防、规避bug上面。这就出现了“测试左移”,如通过需求评审活动找出潜在的缺陷,如根据经验预测bug点并与开发复述确认,又如在开发中做好接口测试,从而让转测的软件尽量少出bug,最终回归到了软件测试的初衷——尽早规避缺陷降低研发成本!
因为前面测试左移活动已经尽可能帮助开发规避了做无用功,后面测试提出的bug往往真是开发思维不严谨,或者粗心导致的bug,只要不是咬文嚼字,开发也都会虚心接受。我先后问过几个开发,你们对我提的bug反感吗?“并不会啊,我也希望自己撸的码质量高些,有bug改就是了。”
最后,希望那些把测试、开发通过绩效考核对立起来的boss们认真想一想:测试与开发,是对立起来搞得剑弩拔张让缺陷补不胜补好,还是紧密协作快乐高效的完成软件的研发好?
-- End --
文末寄语: 马克思所说对立统一,是指矛盾的两个方面的相互区别和相互依存相互影响。