测试是软件生命周期中很重要的一步,对软件的质量提供保障。测试角色在软件过程中是必不可少的,但是专职的测试人员呢?如果专职的测试人员不必须,那么测试角色将有谁来扮演呢?
基于我自己的理解,我先说一下为什么我认为不需要专职的测试人员?
专职的测试人员往往会使开发人员忘记自己的责任和义务,有些人可能回想“反正最终会有测试人员进行测试,我只要写出来就行了”,这种心理在我以前经历的团队中遇到过很多。
专职的测试和开发之间的沟通成本是很高的。对于需求来说,测试和开发的理解各不相同。对于一个bug来说,测试和开发各持己见。很多测试只是学到足够多的测试方法,却不足够了解业务,而这些都需要成本。
即便是存在专职的测试,当系统出现问题以后,责任通常还是开发人员的。
谁来测试?
开发人员。软件是开发人员开发出来的,对于开发人员,有责任有义务在写程序时考虑周全,有责任有义务保证自己写的程序能正确的运行,有责任有义务对自己的程序进行自测,以保证程序按照既定的逻辑运行。这不仅仅是说开发者只保证开发时候的测试,不仅仅是一个小模块的测试,而是这个小模块在整个系统中能正确运转,以及后期上线后在整个线上系统中正确运行。这个时候,开发者已经承担了测试者的角色。
最后说一下创业团队中的测试,因为最近几年都在创业公司流浪,感触颇深。如果前期组建团队考虑不周,确实会带来很大的成本消耗,甚至会拖垮整个团队。创业团队的特点就是钱少、要快,由于业务并没有成型,在团队初期就考虑找专职的测试是非常浪费的,并且还会带来很大的沟通成本,不能很快的应对业务和需求的变化。开发过程中,测试和运维一般都是由开发人员兼顾的,这时候需要的开发人员是主动型队员,开发团队是主动型团队。
当然,专职测试还是有相当的存活空间,只是我认为那些需要快速变化的团队和小团队中,专职的测试不是必须的。