网上有篇文章谈到“我们需要专职的QA吗” 文章链接:http://www.ltesting.net/ceshi/ceshijishu/csgl/2012/0418/204685.html
在这里谈论一下对这个观点的看法。
产品是需要测试的,这个测试当然可以让开发做,也可以让测试人员来做,所以是个专业分工的问题;
我们对测试的期望值是希望测试可以尽量多的发现bug,还是希望可以提高质量,这个要搞清楚;
产品的质量不好,开发和测试都是有责任的;
测试是个服务,只有开发人员觉得这个测试是个好测试,才能称之为好的测试人员;
开发兼作测试的好处是,他们知道的信息多,可以有针对性的测试(特别是自己负责的模块的回归测试),坏处是每个人的思维都有局限性,很少能准确、全部的分析自己代码可能出现的问题;
测试人员独立做测试的好处是,可以综合了解所有的功能,可以做一些系统级别的测试(包括性能测试,压力测试等等),坏处是,需要和开发交流以拿到代码级别的信息(所以这也是要求高级的测试人员需要读懂代码)
QA(Quality Assurance)和QC(Quality Control)是有区别的,前者在Build没有出来之前就可以帮助提高产品质量,后者是Build出来之后通过测试去恒量产品是否达到标准,单纯的QC就像考试时候出考卷一样,可以告诉你是否达标,但是对于提高你的学习成绩帮助很小;
高级测试人员需要理解开发,最好技术能力强,看得懂code和dev design,知道怎么去debug,能够criticize,代表用户,对于不好的功能可以跳出来批评;这就要求他们具备比较好的产品设计的理念;
如果一个研发人员(无论是测试还是开发)有能力做到上面说的事情,那就让他来做,但是很多的时候由于资源的问题,由于每个人的能力模型不一样,不可能让一个人独自做所有的事情,就这点而言,我们也可以说“我们需要专职的PM”吗,是否可以让开发来做,因为他既懂开发,又懂项目管理,让他一个人来做就可以了;
小的公司,开发,测试,项目管理一个人来做就可以了, 小的功能,我觉得也可以,只要这个人的能力胜任;
最后总结一下,研发过程中的需要做的事情就摆在那里,有需求分析(你到底要设计什么功能),dev design,测试,发布,我们需要做的是把这些事情完美的做好,这样才可以ship出好的产品;你要搞清楚你对测试,还有测试人员的期望值,那么你就不会有“我们需要专职的QA吗”这样的疑问;
另外说一下,我们需要专职的QA吗来自http://coolshell.cn/articles/6994.html,里面很多观点很合理,我挺赞成的;
突然想起,大学的时候在BBS上写了一篇文章“大学里面需要教师”吗?因为那个时候发现最能够让你学习到东西的途径是你身边的同学,所以发出了这样的疑问;其实大学里面不一定需要教师,但是需要的是学习。还有一点就是你对教师的期望值,有些教师的能力很强,有些就一般。所以没有绝对的定论。