如果推崇把质量作为企业的核心价值,我认为专职的测试是必须的,无论团队规模大小。这是质量和专业分工的关系决定的。做事情的人不能和监督的人是同一个人,打个不恰当的比方就是运动员不能是裁判员。
可能有人会说,某某项目没有测试也做得不错,我相信,有这种情况。通常是开发员特别强,同时项目也不太大。但这就把质量押宝在特定的开发员身上了,而不是依靠一个体系来保证质量。
还有人会说,有的时候设立了专职测试人员后质量反而下降了,因为开发员工都不好好做单元测试了,等着测试员报Bug。我同意,这往往是一个公司设立专职测试后面临的第一个陷阱。采用一种新的管理体系是要付出代价的。在新模式中开发和测试的工作内容是要经过设计和训练的。不是把开发和测试分开质量就自动上升。
第二个问题,开发和测试比例的问题。我个人认为取决于产品类型和发布方式。我熟悉的SaaS领域里,如果产品以Web网页的形式发布,开发和测试的比例大概是1:1。测试人员主要消耗在几种事情中:第一,主要开发版本的测试。产品总是要求有新功能来满足客户不停提出的要求,因此,我们一年发布一次大版本。这时,测试人员的人数大约是开发人员的75%,在第一天就和开发员一起,知道项目完成。前半段是新特性测试,后半段是回归测试。第二,补丁版本。因为主要版本通常耗时很长,而有的客户会要求你尽快提供某些缺陷的修复,或特定新特性,这样,你需要有一部分人专注在这样的小版本上。我们的周期大约是一个月一次。需要的测试人员通常是主要版本测试人员的10%。第三,特定版本。特定版本通常是指某些中型规模的特性,SP做不下,主版本又等不及,这就经常组织一只专门团队来做,其中开发和测试的比例是和大版本中差不多的。但我们通常会在质量达标后合并到某个SP中。当然,这个比例不是绝对的,受到产品开发类型,发布模式,预算,甚至老板的观念问题的影响。我们比例就在1.5:1左右。
第三个问题,测试员素质问题。实际上对测试员的要求和对开发员的要求是有所不同的。测试员需要一种特性,这种特性近乎对产品完美要吹毛求疵,敢于或有信心和开发员发表不同意见,同时具备广博的知识和非常聪明的工作方式,用高效的方法来完成测试的最大覆盖度。总的来说,我们对开发人员和测试人员的素质要求是在同一水平线上的,但关注有一些不同的方面。