随着软件规模化程度的不断加深,软件测试岗位的需求越来越多,甚至连续两年被某机构评选为十大需求最大的职位之一,在我们的客户中,相关职位也的确不少,但当我和很多测试人员交流的时候,我发现他们中的大多数对自己的职业发展都比较迷茫,充满了无奈的情绪。对于这种情绪,我非常能够理解。从03年起,我就开始接触软件工程和CMMI评估的工作,那时候我们国家对软件工程的认识还非常有限,似乎除了开发,其他所有的工作都可以不要。后来随着CMMI模式在国内的普及,企业在业务的压力之下竞相进行CMMI的评估工作,两三年时间,中国就成为全球高成熟度等级企业最多的国家之一,使SEI都不得于加强对中国市场的监控。在这个过程中,企业对软件工程的运用,形式化的内容要远远多于实质化的东西,测试这个岗位就是一个典型的例子,从无到有的时间不长,社会以及企业对这个岗位的认可大多数还停留在形式上,他的价值还远远没有充分发挥出来。其表现主要体现在:
1) 测试不如开发。
我问过很多做测试的人,你为什么要做测试?有人告诉我,因为我当年毕业的时候没有找到开发的岗位所以改为应聘测试;也有人说,因为我的开发能力不强,所以才作测试;还有人说,因为我不想做开发,感觉开发太累,所以选择了测试。总之一句话都是做不了开发,才会考虑测试。
2) 外包测试是需求的主要形式
不管外包测试对中国的软件工程发展会起到什么样的作用,至少目前更多的测试岗位的需求来自于外包公司,比如,文思,博彦,中软等,他们的主要业务是承接微软,IBM,HP等公司的测试任务。由于需求量大,业务内容比较单一,因此他们会大量招聘高校毕业生进入到相应的测试岗位中,而且近几年有学校越来越好,学生越来越优秀的趋势,毕竟因为有些岗位有对英文的需求,而且公司员工的学历层次对公司的全球业务拓展有非常重要的意义。不管怎么说,由于这些外包公司的努力,目前测试人才队伍的整体人才素质有所提升。
但因此也产生了一个问题:外包测试的技术含量一般不高,而且往往只是整个产品或者项目的一部分,对业务也缺乏整体的把握,干个两三年之后,就会感到很无趣,但这个时候,外包以外的测试需求往往与外包测试不同,而且相对需求并不是太多,在竞争中何去何从,感觉到茫然也在情理之中了。我曾经看到很多为HP做打印机测试工作的简历,都是想哈工大,北邮这样的好学校,英语也好,在某外包公司工作了三年,期望薪水8K,往哪里换呢?至少我手里一时没有合适他们的岗位,原因是业务类型不匹配,薪水要求太高!我还有一个候选人做C#开发的北航的研究生,我推荐他到某公司做开发工作,但他渴望微软的工作环境,而去了某外包公司做微软产品的测试工作,当时他们的薪水已经可以达到9K了,两年以后,因为感到工作技术含量太低而希望离职,我再次把他推荐到两年前曾经推荐过的那家公司,面试后公司的反馈是为什么两年了,技术没有长进,倒好像还退步了?!不过他们还是录用了他,薪水没有涨,还是那么多,但这个候选人目前在这个开发公司做的非常好,各方面都得到了很大的提升。这两个案例都不得不引起我们的深思。
应该说在测试这个岗位上,个人的困惑只是行业困惑的一种具体表现形式而已。测试工作从开始到今天时间也并不是很长,测试理论和测试工具还在逐渐完善之后中,他们中的很多内容对我们这个以项目为主要类型的软件市场中,还显得过于深刻和比较难于实现。但是规范化的步伐是不可能逆转的,虽然在前面我们看到了太多消极的例子,但是任何事情都是逐渐完善起来的,就像我们的三一五打假,打了二十年了,虽然假货还有,但可喜的是人们的打假意识已经有了很大提升,我们的市场秩序一天比一天好,消费行为变得越来越有保障一样,对于测试工作而言,用不了很长时间,一定会成为和开发同等重要的部门。这种迹象现在已经开始显露,比如互联网的龙头企业Sohu,不仅有规模庞大的测试部,而且像人力资源部这样的服务支持部门也独立相应得分支出专门为测试部服务,足以见得公司对测试的重视;其他产品类型的公司更是如此。因此作为职业顾问,我还是非常看好测试这个职位在今后的发展空间的,但关键在于,目前的测试人员需要在今天做好怎样的准备,才能跟上明天需求的发展。我希望可以通过对目前市场需求的具体分析和目前一些测试人员的发展给大家一些建议,仅供参考。
1)技术专业化的对测试岗位的提升
目前有几家项目型公司希望我帮助他们招聘一些好一些的测试人员,除了有必要的测试经验以外,要求对某种技术语言有了解,比如Java; C#; 还有的要求更高,需要对linux系统有深入的了解。其原因在于他们的系统以及要测试的产品跟这些技术紧密相关。这样的要求就将很多测试人员拒之门外了。比如我说做HP打印机测试的人员,做在长时间也很难满足这样的需求,还有很多一直以做功能测试为主的人员,也很难满足要求。很多人认为测试没有技术含量,其实是大错而特错了,很多测试需要编写测试脚本,需要理解复杂的代码,因此和开发一样,明确的技术方向对今后的发展是非常重要的,而且越专越好。所以我们的测试人员,如果你的精力比较充沛,除了研究测试工具以外,也不妨也像开发人员一样多花些时间在计算机语言上。要知道一个真正的高级技术测试的技术能力决不亚于一个开发人员。
2)行业专业化对测试岗位的提升
在我手头的几个测试岗位中,除了上面那种对某种技术有一定要求的,接下来就是业务有要求的。比如用友的测试工程师要求对ERP有深入的了解;亿阳信通的测试工程师要求对电信业务有深入的了解;还有一个互联网公司则要求有丰富的互联网测试经验。由此可见,测试这个职位比开发对行业的依赖更高。目前电信,金融,ERP,互联网都是很有潜力的行业。专注于某一个行业,积累相关的行业经验对日后的跳槽,发展都有较大的帮助。我想可以作为测试人员选择工作机会的一个参考吧。
3)管理能力与测试岗位的提升
和前两项相比,从测试工程师到测试主管,测试经理应该最容易被理解的发展方式。和我们要测试经理的公司与招专业化高级测试人员的需求一样多,同样都是高级人才,但方向不同,专业化测试看重的是技能,测试经理看重的是管理能力,通常需要有带过团队的经验。很少有人可以在跳槽中完成从测试人员到测试主管的转变,这种转变在一个公司里面比较容易积累,因为一旦有一定的技术水平,作为对业务有深入了解的老员工得到提升的机会比较多,如果希望走这条路的话,这个过程最好越早来到越好,测试与开发不完全相同,测试从工程师上升到测试经理更加容易一些,因为测试工作本身是含有一定的管理理念在里面的,尤其在一些产品型的公司,做到一定的年头,应该就会有机会得到提升,不管公司本身是否有名气,这种机会是值得珍惜的,因为这种积累是日后更好发展的基础。
除了往测试经理方向发展,作测试的女同胞比较多,从个人的角度如果并不希望在技术上花费太多的时间,也不想过于操心的话,还有一种方式可供参考,就是往过程改进和过程管理的方向发展。在标准的软件工程中,测试被称之为QC(质量控制),过程管理被称之为QA(质量保证),QA被认为是QC的QC,QA的工作主要在于软件开发过程的管理,很适合女性来做,很多女性在这个岗位上都做得非常出色,而他们很多人是来自于测试。QA的岗位多见于CMMI3级以上的软件开发公司(不专业的公司一般是非不清QA和QC的区别的),这个岗位需要对CMMI以及各种开发过程管理思想有深入的了解,比如常见的RUP,敏捷开发等,有些是可以自学的,但如果可以有CMMI的评估过程则是最好的。一般来说这个岗位对行业没有特别的要求,对技术的要求也不是很高,主要是有软件工程的思想和实践就可以。如果想往这个方向走的话,找到一个有类似实践机会的公司就显得比较重要了。当然在测试的基础上学习一些相关的知识是获得这类机会的必要条件。