2013年8月31日
【知乎专栏】测试,这个专业还有价值吗?
一直想写一写我对于测试的看法,较为远的一个原因,是因为左耳朵耗子(陈皓)的一篇文章:《我们需要专职的QA吗?》,以及段念的一篇回应《对《我们需要专职QA吗?》的回应》
一个比较有趣的现实是:因为陈皓的个人经历,他遇到了一些非常糟糕的QA,结果发现这些活还不如开发自己来干,进而推出“专职的QA是不需要的”。甚至,他将这个结论,推广到了整个行业。
而与陈皓正相反,在我的职业生涯中,遇到了一些非常优秀的测试/QA,这使得我坚信:优秀的测试人员/QA,是开发团队必不可少的一部分。
首先谈谈我对QA进阶(层次)的看法:
- 最弱的(否则无法入行):能够发现看起来不对的地方。
- 重现bug:能够确定,某某问题在某种特定的条件下,可以重现。
- 分析与诊断:能够向程序员提供建议,这个问题,可能是由于什么原因造成的。
- 举一反三:能够基于对系统的了解,发现某个bug,进而推论可能存在或需要检查的其他方面。
- 预防与预警:帮助整个团队,提升质量意识,降低bug产生的可能性。
- 为整个团队,注入追求质量的气质
这里所谈的层次,都是围绕质量而言的,各种测试的手段,工具,方法,架构,都是他们必须在日常研究的内容,而这些研究,是为了帮助他们自身、以及整个团队,在保证质量时,做得更快、更好。
在我们的团队开发实践中,我发现依照个人的性格、偏好以及相应的分工:
- 有些人喜欢深入研究“效率提升、性能提升”方面的课题;
- 有些人喜欢深入研究“架构优化,代码重构”方面的课题;
- 有些人喜欢深入研究“各种极限情况下的系统漏洞”;
- 有些人喜欢深入研究“用户体验相关的各种优化”。
在不同的领域,都需要深入的积累、探索与创新,并不是仅仅空喊一句:“人人都应该负责XXX”,就可以解决的。
本质上而言,我之所以反对陈皓的观点,是因为未来的趋势,并非越来越综合全面,恰恰是越来越分工协作;以前的程序员,从设计、架构、前端、后端、测试、发布、运维,都可以一人完成。但是,从程序员这个角色,已经分化出:产品经理、UI、UE、前端工程师、后端工程师、DBA、运维、测试等诸多角色。
不能因为跟某个工种合作不顺利,就收回来自己干,如果是这样,岂不是都要收回来?
所以,我的观点是:我们需要更加优秀、更加专业、更加有价值的测试,而非取消这个专业!
题图:不管什么颜色的猫,只要抓到老鼠,就是好猫。但是没有好猫,难道就让狗去抓老鼠?