中国的软件测试虽然起点较高,但是软件测试的发展似乎没有想象中那么顺利。
其实每个行业除了有自身领域外,还有属于自己的“生态系统”。属于软件测试的生态系统主要包括后备软件测试人员、软件开发人员和软件管理决策者。后备软件测试人员是软件测试的生力军,为软件测试提供新鲜血液;软件开发人员是软件测试人员最紧密的合作者;软件测试并不是一个独立的行业,决定软件测试人员发展的并不仅仅是软件测试的管理者,软件管理决策者也参与其中。这构成了一条属于软件测试的生物链,如图1-1所示。
在中国,这条软件测试生物链似乎存在一些困境。
1、后备软件测试人员对软件测试不了解
随着软件测试行业的发展,通过校园招聘,从计算机科学等相关学科的大学毕业生中招聘软件测试工程师成了招聘软件测试工程师的主要途径。但是国内能够提供专业的软件测试课程的高校并不多,大部分毕业生甚至从来没有听说过“软件测试”这个职位。在缺乏引导的情况下,学生们对软件测试的理解比较片面,他们甚至直接认为软件测试是不重要的。
根据我的了解,很多毕业生在校园招聘的时候,并不会主动选择软件测试岗位;一些同学在得知会被分配到测试部后,十分沮丧,有的还会为此毁约。
虽然也有一些毕业生会主动选择软件测试,但是也并非完全是出于对软件测试的了解,有的是因为性别(比如女性会被告知做软件测试比较合适,因为女性常常被认为不适合从事逻辑性强的编程工作,而且女性给人的感觉比较细心,细心确实是软件测试需要的品质);有的是因为编程能力不强,自觉无法胜任软件开发的职位,于是将软件测试作为“备胎”,先凑合着干。
抱有上述心态的“后备军”进入软件测试行业后,如果缺乏正确的引导,他们就很容易偏离软件测试本身的角色。他们中的一些软件测试工程师可能有很强的编码情节,认为只有写代码才是最有技术含量和最有前途的事情,但目前的测试工作可能不仅不需要编码,甚至连看代码的权限都没有。相比开发,他们会逐渐觉得自己从事的测试工作没有什么技术含量,没有前途。另一些软件测试工程师可能又会走向另外一个极端,将产品质量问题和编码的软件开发人员直接对应起来,总是觉得软件开发人员的水平很差,对软件开发人员抱着一种“哀其不幸、怒其不争”的态度,不能很好地和软件开发人员沟通合作,最后无法真正做好软件测试工作。
2、软件管理决策者对软件测试缺乏正确理解
同时管理着软件开发和软件测试的软件管理决策者,常常会在资源、晋升通道上偏向软件开发,而忽略软件测试。
这是因为,在市场驱动下,软件管理决策者往往会认为软件测试是一种“开销”,而并不是“价值创造者”,有时候软件测试甚至被认为是对产品按时发布有负面影响的障碍,不愿意给测试足够的资源。例如,在产品测试中,开发发布版本延迟,但是测试结束时间并没有顺延,而是压缩测试时间,来保证研发项目进度。
除此之外,很多管理决策者对“软件测试”的理解其实都不够深入,认为测试的价值就是在不断测试中找bug,认为bug发现得越多产品质量就会越好,不理解测试策略、测试设计、测试总结等测试活动对产品的作用和意义。软件测试人员并没有在正确的阶段做正确的事,软件测试人员更多的“价值”(如缺陷预防)无法体现,而是陷入过早测试或者盲目追求软件测试自动化率中,虽然整个项目组看起来很忙,但是效率低下,投入产出比很低。
3、“喜忧参半”:软件测试外包
托马斯·弗里德曼有一本著名的书叫《世界是平的》,书中将“外包”作为21世纪“铲平”世界的十大动力之一。外包的好处是显而易见的:站在运营的角度,外包可以让你更加关注核心业务,可以帮助你建立弹性的人力资源构成。
软件测试外包让软件测试“火”了起来。在很多网页上都可以看到软件测试外包公司或者培训机构打出“年薪10万”“进500强企业”等广告,诱惑力十足。
但是“外包”同样也暗示着,对很多公司来说,在公司发展策略上并没有将“软件测试”作为核心、重要的业务去发展。所以我认为软件测试外包对软件测试行业来说是“喜忧参半”。
“喜”的是软件测试外包扩大了软件测试队伍;“忧”的是公司在执行软件测试外包或软件测试执行外包策略后,极有可能削弱在软件测试方面的投入,减少对非外包软件测试员工的培训和职业发展方面的考虑。
对软件测试外包员工来说,他们虽然可以在软件外包公司得到较为专业、系统的测试技术方面的培训,但是“外包”行业本身的特点就决定了软件测试外包人员会较为频繁地更换测试产品,对产品实现的理解不会太深入。而对产品测试经验持续的积累、对产品实现不断深入的理解又正是深入软件测试的两大必要条件。加上“外包”行业本身存在着缺乏归属感、缺乏晋升空间等问题,软件测试外包人员就更难在软件测试领域深入发展了。