1.4 职业生涯的考虑--技术还是管理
职业生涯规划是每个专业人员都应该慎重考虑的问题。测试工程师是一个专注程度很高的技术背景职位,职业上应该往哪个方向发展,是测试工程师到了一定时候应该考虑的问题。在IBM,因为业务涉及很广的范围,因此,提供给员工们选择的空间非常广阔。就技术职位而言,发展的方向主要包括技术方向和管理方向。另外,转向商业业务部门也是可能的选择。那么,作为测试工程师,在技术上或管理上都有哪些可以选择的发展方向?一个菜鸟工程师,应该如何选择方向?
1.4.1 测试工程师的技术发展路线
作为职业发展起步,测试工程师可以先把自己定位为某种专门测试的专家,如功能测试专家、系统测试专家等。无论从哪种专门的测试开始,测试新手都有机会了解测试的一般方法论和通用的原则,这些知识对于不同的测试领域都是必需的。此外,针对不同的测试,测试新手需要学习特定的测试方法。例如,对于功能测试工程师而言,黑盒测试理论、测试用例构建和分析等技术是必不可少的;而对于系统测试工程师,了解不同种类系统的特性、性能指标,学习系统测试构建方式等技术是必修课;而对于构建测试工程师而言,学习构建技术的原理、系统部署技术、增量和全量发布技术等内容对于进行构建测试是非常重要的。有了一般性的技术和针对特定测试种类的专业技术作为基础,测试新手需要通过项目经验的累积,逐渐达到测试专家的水平。关于测试工程师的技术发展路线见图1-5。
由于不同的测试种类之间是有关联的,对于不同的业务步骤也很具有针对性。作为某种测试的专家,通常只熟悉和这类测试相关的系统特性或功能。如果希望对系统有更全面的认识,这时可以考虑转为另一种测试类型的测试工程师。在转换测试类型时,并不需要重新学习测试理论,而仅需要学习新的测试类型的测试技术和被测试的系统模块。测试工程师成为多种测试类型的专家以后,对整个系统的测试方法和测试流程都会有全面且深入的理解。
到了这个阶段,测试工程师要面临的是另一次选择。有了对多种测试类型的积累,工程师对被测的业务也有相对深入的理解,这时,可以转向基于基础产品的项目开发的主要测试负责人的角色,或者成为一名技术支持专家,专门解决和客户有关的技术问题。如果希望在测试方面做得更专注,那么,也可以选择成为产品的测试架构师,从不同的高度更深远地影响产品测试的方法论和策略。如果工程师起初并没有转向别的测试类型,而是专注在同一种测试类型上,那么,就有更多的时间集中地把一种测试类型研究透彻,目标是成为这种测试类型的专家或大师。每种测试类型都需要方法和实践上的创新,而测试高手和大师无疑更能推动这种创新。
我们说过,在敏捷开发团队中,测试工程师作为开发项目的成员存在。在积累了一些项目经验并具备相关的技能以后,测试工程师可以开始尝试敏捷开发团队的其他角色。一种典型的选择是成为开发工程师,把专注的点从测试变成开发。拥有产品质量控制经验的开发工程师,从技术上更能把握对设计和实现的质量考虑。当然,开发和测试就工作性质而言差别较大,对于刚从测试工程师转型的开发工程师,学习开发模型及相关技术会是一个不小的挑战。
本身经验已经比较丰富的测试工程师,可以转成产品架构师,直接参与设计。直接成为架构师以前,测试工程师应该已经了解一些测试以外的内容,如业务需求和市场背景、产品整体架构、适当的实现细节等。因此,从测试工程师转型为产品架构师,也是个很有挑战性的变化。如果希望技术做得更深入,产品架构师也许不是最好的选择;信息架构师角色,如应用架构师、基础设施架构师等,为走深入技术路线的测试工程师提供广阔的选择空间。
在IBM,纯技术背景的专家只要做得足够好,都能得到认可。在这种氛围条件下,测试工程师可以根据自己的兴趣选择职业发展方向。有人说,兴趣是一个不时变化的玩意儿,不错,因此,在这里不乏从测试工程师转型成其他角色后又重新回来的案例。有一个足够大的舞台,周围有许多各方面技术的专家,也有许多成功或失败的案例作为借鉴,测试技术专家在确定自己的职业发展路线时拥有非常广阔的选择空间。
小艾作为测试工程师加入团队,随着经验的积累和技能的提升,越来越多的选择会摆在面前。当达到一定程度的时候,如何选择职业生涯发展路线的问题会再一次出现在小艾的面前。
1.4.2 与人打交道--管理测试团队
在一个大型的软件开发项目里,完成开发任务的主体是整个团队,而非单独的个人。为了使团队有效运作,管理角色不可或缺。在测试团队中,管理的任务通常由测试组长和测试经理负责。区别于纯技术的职位更多地关注技术的细节,管理人员必须花相当多的时间与人打交道。作为测试管理人员,为了让团队以高效率运作,需要关注人力资源和合理分配,使测试工程师的技术优势得以发挥。在定义测试任务时,测试组长从宏观的角度考虑现有资源是否可以满足完成测试任务的需求;如果资源不足,是否可以通过沟通解决。测试经理还需要关注辖下组员的技术和职业发展诉求。测试管理者好比测试团队的大脑,"大脑"要完成对团队整体行动的决策和总体指挥。从分工角度来看,管理人员和技术专家的区别是非常明显的。
相对于一般的项目管理,测试管理需要更专注于风险控制和质量控制。项目出现变更时,测试进度就有可能受影响,进而有可能影响产品的最终质量,或者说,项目的风险有可能提高。管理人员应采取必要措施,控制项目的风险。从技术角度看,测试管理人员需掌握项目管理的相关技能。
随着测试工程师的经验累积,以及对相关测试技术和项目管理技术的掌握,到一定程度时,测试工程师就可以选择转向管理角色,成为测试组的技术组长或测试项目经理。技术组长在技术上至少能达到一般组员的水平,而工作上则体现出更强的技术领导力和影响力。因为技术组长关注的面更广,同时有更多和人相关的事情需要处理,因此对技术细节的关注度会不可避免地降低。测试项目经理则关注测试项目的进度和项目管理的细节。
测试组长的职位本身还是技术性质的,而测试组长的进一步发展方向又是什么呢?测试组长面临的选择相当丰富,在管理的道路上进一步发展,测试组长可以尝试测试经理或开发经理的职位,把更多的注意力投放在管理方面;从业务方向看,由于已经积累了比较深厚的测试专业知识和一定的业务知识,测试组长可以转而尝试业务方面的职位,如技术销售、技术服务等;如果希望继续从事专注于技术类的工作,测试组长可以基于某个测试种类深入钻研,成为这个测试类型的高级角色。
1.5 学习笔记--测试入门之小艾观
万事开头难,小艾作为菜鸟测试工程师加入到测试项目团队,以一名新人的视角学习了不少关于测试入门的知识。有了基本的知识及对测试专家广阔的发展前景的把握,小艾将有机会在测试的海洋开始一段新的旅途。学习之余,小艾也得到不少感悟。
要成为专业技术人员,花大量时间和精力学习专业技术是不可避免的。学习基本功是一个苦练的过程,但同样需要讲究学习方法。知识学习其实是体系性的,软件测试有一套完整的知识体系,把握知识体系的脉络,会让学习更加得心应手。
除了技术,对于测试新手而言,了解测试的业务和基本方法同样重要。测试是一个工程化的过程,测试在软件工程过程中必不可少,而且和项目的成败关系密切。测试新人既应该知道测试人员肩上的重担,同时也会以作为一名测试专家而自豪。
同是测试工程师,修为和级别可以有很大的差异。有不少"特性"会从测试专家和测试高手的身上显现出来。如何才能成为测试专家和测试高手?与其说这种修为是专业技能的提升,不如说是思考能力和思维深度的提升。"学而不思则罔",作为测试工程师,思考(Think)是让学习成果升华的过程,同时也是解决问题所依赖的"必杀利器"。这种思维的能力不光测试专家应当具备,对所有专业技术人员来说都非常重要。
"人无远虑,必有近忧"。虽说加入测试团队的时日很短,但作为测试新人,对职业生涯的考虑也是很重要的。测试工程师的职业发展有多种方向可供选择,根据个人的兴趣和特点,以测试工程师作为起步职位,可以尝试的职位也非常多。职业规划的最佳方向可能是:找到自己感兴趣的,同时又是能做得好的。小艾发现,工作也是生活的一部分,只有对感兴趣的事情,才乐意花更多的时间和精力去钻研。随着学习和工作的深入,测试其实是件既有趣又很有挑战的事情。
在软件开发团队,最宝贵的资源不是知识,也不是技术,而是人。团队中大多数同事都是乐于分享的人,共享和沟通的氛围对新人的入门很有好处,对于团队的长远发展和提高确实大有裨益。通过向身边同事的提问,小艾了解了许多书本和文档中无从获取的信息,开阔眼界的同时,技术也明显提高了。小艾发现,这里从来不缺能回答问题的人,只要爱动脑筋,多提问题,总有意外的惊喜和收获。
(未完待续)
相关链接: