软件测试之魂:核心测试设计精解
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

4.2 让每个测试人员都看到希望

跳槽,对于职场人士来说是再熟悉不过的事了,当今,已成为可以改变自己的一种生活方式。然而,跳槽无论对个人还是对公司都是一个不容忽视的问题。对于个人而言,如果跳得好那是职场人生新的起点,能走得更远更高,但如果没看清楚,也可能比原来更糟。对于公司而言,每年离职率在一个小范围内是很正常的,通过优胜劣汰的竞岗方式,每年主动淘汰一部分员工并补充公司的新鲜血液,也是必需的。但另外一方面,就是部分员工的主动离职,这一部分人中,有些可能是核心骨干,这就会给公司的业务造成一定的影响。那么如何留住更多的骨干员工、优秀员工,是管理团队必须考虑的事情,对测试团队的管理也不例外。

一次,笔者与一位在知名民企工作的资深优秀测试经理谈及测试团队的管理问题,这位经理提到“让每个测试人员都看到希望”的管理理念,让笔者深深震动。这是一种大度的、对员工负责、对社会有责任感的管理理念,可谓是管理架构设计的精髓、灵魂。它的功效是巨大的,是一股无形的力量。

测试团队管理的架构设计,在实际工作中要如何做才能真正让每位测试人员都能擦亮眼睛,看到这一束束的希望之光呢?更确切地说,这里的“每个测试人员”意指处于不同层次的测试人员,如图4-5所示。下面就测试职场人士最感兴趣的话题之一,即测试职业发展的路线设计与读者一起分享。

图4-5 “让每一个测试人员都看到希望”示意图

4.2.1 回顾与思考微软的测试职业发展路线设计

按上节提到的,测试架构的设计可划分测试管理架构的设计与测试技术架构的设计两方面,围绕这两方面,就测试职业的主要发展路线也可从管理线与技术线进行划分。伟大的物理学家牛顿说过“如果说我比别人看得更远些,那是因为我站在了巨人的肩上”,下面我们来看看微软这个软件巨头的测试工程师职业发展轨道。

【案例】微软的测试工程师发展路线

微软的软件测试工程师叫软件开发测试工程师(Software Development Test Engineer,SDET),与业界的普遍叫法不一样,其中发生一些有趣而又值得我们思考的故事,见本节的小故事“我们不能称他们为软件质量工程师(SQE)”。

在微软,测试人员有两种发展路线的选择,做独立贡献者(Individual Contributor,IC)或做主管经理。所有低级别的工程师都从独立贡献者做起,即从技术线的软件开发测试工程师做起。作为测试独立贡献者,从SDET1(也叫IC1)开始,一直到合伙人SDET5(也叫IC6),如表4-1所示。

表4-1 从SDET独立贡献者开始的职业发展历程简介

从表中,我们可以看到作为测试领域的独立贡献者,他的级别晋升主要是根据技术深度、技术广度和影响力范围来区分的。一个SDET1通常处于学习测试、学习关于微软怎样开发软件、如何在一个定义明确的产品功能中找寻漏洞的阶段。而一个经验丰富的SDET也许专攻一个领域,比如性能或者安全性的测试。当一个SDET达到合伙人级别的时候,他应该具有丰富的、不同方面的经验,也许还担任过一段时间的测试架构师。影响力的范围从一个狭窄定义的产品功能扩展到一个系列产品的功能、一个完整的产品,直到最后的一个产品线,影响力范围在横向、纵向上延伸。

测试管理是SDET的另外一条主要的职业发展轨道。一个测试管理者可以在测试工程师梯队里向上发展,管理更大的团队和领域。如表4-2所示是微软测试管理者的发展路线介绍。

表4-2 从SDET管理开始的职业发展历程简介

像业界的很多公司一样,微软的SDET主管是也是测试管理的第一级,一个SDET主管通常管理一个由2~10人组成的小组。但有一个特别且很重要的点,就是在决定一个SDET主管能否在职业道路上继续前进和发展的因素中,技术复杂度和他的技术水平远比管理的测试组的大小重要。SDET主管自己也需要做很多的测试、编程、分析和记录软件漏洞的工作。随着管理团队的规模越来越大,主管需要承担的管理职责就更多了。通常,软件开发测试经理管理着15~50人的团队,对于测试经理来说,很少需要亲自做具体的测试工作。但测试经理仍然需要懂得技术,但要求他们多注重建立测试的流程和工具,而不是在具体的功能测试上。另外,测试经理会花很多时间培养和提高其测试团队的素质和技能。

小故事:我们不能称他们为软件质量工程师(SQE)

Grant George对会议室里的人说:“好了,让我们暂时把他们全都叫斑马好了。”我们正在辩论测试工程师的职称应当是什么,辩论已经进行了几个小时,但仍没有达成共识。

“我们都同意软件测试本质上是一个工程问题。我们都同意出色的软件工程师需要有很强的工程学基础,在理想的情况下最好有计算机科学方面的技能。我们也都同意一个优秀的测试工程师和开发工程师有所不同,他们都拥有内在的测试DNA。”一边说着,Grant离开座位走向白板,手里拿着记号笔。

我环视了一下会议室里的测试总监们,如果把出席这个会议的所有的微软测试管理经验加起来,要有200余年。有些人随着微软Windows一起成长,有些人在微软Visual Studio部门工作,还有些人来自Web Services部门。Grant从他在微软Office工作过的背景来看待这个问题。他是这里所有人中资历最高的,也是当时唯一一个微软测试副总裁。

Grant开始在白板上写下一个列表,“测试DNA应当具有在系统范围内思考问题的本能、分解问题的技能、对提高产品质量充满热情、喜欢研究事物如何工作、又怎样能被搞坏。”他放下记号笔,注视着会议室里的人们,“这其实正是测试工程师不同于开发工程师的地方。通过测试软件,我们把这些DNA和工程学技能结合起来。我们选择的名字应该反映这个事实,并且对我们想聘用的人具有吸引力。需要表明我们使用软件开发技能去驱动测试工作。”

“我们已经建立了所有的这些,Grant。”桌子边有人插话道,然后陷入了沉默。

“我想选SDE/T。我们过去使用它,本质上描述了你们上面所讲述的,但我们不清楚使用SDE/T的过去。”Gregg说道。

“我们使用不带斜杠的SDET怎么样?”David White提了个建议。他是人力资源部门的职业模型项目经理,和这些公司级测试领导团队一起合作,统一制定所有测试工程师在微软的不同职业发展轨道,“它可以使你很快地向学校和社会上的待聘候选人表明,我们需要软件开发程序员,但他们的工作集中在测试方面。”

“这个名字比SQE好。”一个来迟了的只能坐在侧面桌上,桌下就是垃圾箱和废品回收箱的人喊道,“SQE总是使我想起那些在马路交通信号灯边上拿着刷子要给你洗车窗换钱的家伙。”

Windows测试部门的总经理Darrin Muir插话道:“我喜欢这个名字。很简单,只把斜杠去掉就好。”

我们又辩论了一个小时,最后决定微软所有测试工程师的新职称是SDET,SDE和SDET的不同之处归为:激发工程师致力于测试问题而不是开发问题的核心DNA。

公司在成立之初,一般在前几年,考虑更多的是在竞争激烈的商场中如何生存的问题。当有一定的业绩,产生效益之后,公司的规模扩大,向中型甚至大型企业发展时,人才的管理是关键。如何留住、吸引更多的优秀人才,让他们能把工作当成自己的事业,这一点很重要。一个好的企业凭什么吸引到优秀人才,除了高薪与福利待遇外,让处于不同阶层的人都能看到希望,可以称得上是管理架构设计中的上策。如果引导得当,对员工有着磁场般的吸引力。对软测而言,在国内仍处于发展初期,但随着市场需求的不断攀升,在这块职场领域打拼的人士也将越来越多。像其他专业领域一样,测试从业人员的技能、经验、素质也是参差不齐的。有不少测试人员是在不知不觉中踏入了这个行业,如一些应届毕业生,公司在校园招聘时以软件工程师的名义招入,实习后被分在测试岗位;也有些朋友原来做开发,后由于公司成立专门的测试小组,自己便成了其中的一员,等等。当然,也有一部分人士求职时目标是很清楚的,就是想做一名测试工程师,但工作一段时间后,感到目标模糊,不知该何去何从。此时,公司如能提供一个合理的职业发展路线平台,符合各阶层测试人员找到自己位置与目标,是实实在在地能让员工与公司达到双赢的举措。下面是借鉴国内外一些大公司的做法,以及最佳实践而设计的测试职业发展路线,具体实施时,可根据公司的性质及要求的不同,自行修改,补充完善。

从方向性的发展路线来看,测试职业本身主要有两条主要发展路线,即管理线与技术线,还有一种就是“转其他职业”,即转行。其中一个人在管理线与技术线上发展的过程中,可以不断调整,交叉进行,以找到适合自己的位置,如图4-6所示。

图4-6 测试职业发展路线设计

关于职业道路上的交叉发展,笔者认为这是一种很重要也很人文的做法。笔者认识的一位某大型IT公司的软件开发人员,在公司的创立之初,他曾带着一个小团队,为公司立下了汗马功劳,他在技术上可说是让老板无可挑剔。当然,在技术职称上他很快得到了晋升。由于公司规模的快速扩展,开发人员数量急增,在管理上很缺人,由于过去他的业绩好,得到了老板的器重,自然地他成为了部门经理。但在部门经理的位置工作了一年后,他觉得并不适合自己,不但没有做出一些可喜的成绩,反而由于过于追求完美,在与其他接口部门之间的合作关系上处理得并不那么如意。最后只好主动向老板提出,重新回到带一个小团队进行技术攻关的工作。这种做法,在微软公司是再普通不过的事了。但业界有很多人认为,只有做了管理者才是成功的,这种看法是错误的。管理线与技术线是一个并行发展的职业双通道,例如在一些大型IT公司里,一个资深的测试工程师与一个测试主管是同级的,尽管他们是处于不同的发展轨道。

还有一个更加灵活的发展路线,就是图4-6中的“转其他职业”。由于一些岗位的特殊要求,从校园或社会招聘,都不容易胜任,如需求设计人员,需要精通公司产品的业务,外招人员培养成本较大。有些公司在进行岗位招聘时,就是特意把招聘名额给测试,一段时间后,选择合适人员转岗到需求,这种属于公司人才培养模式的主动转岗。还有一种是个人根据自身情况,在测试岗位工作一段时间后,转向技术支持或市场等岗位的。关于转岗的看法,也有不少人有错误的观点,认为转岗就意味着失败。俗话说“三百六十行,行行出状元”,当发现自己确实不适合在测试行业继续发展时,又何必在一棵树上“吊死”。当一扇门为你关闭时,另一扇门也正为你敞开着,正如“条条大道通罗马”。

接下来分别就技术线与管理线的测试职业发展架构设计的细节进行讲解。

4.2.2 架构合适的测试技术发展梯队通道

首先,软件测试与软件开发一样,是一项技术性很强的工作。至于有不少朋友认为测试工作技术含量不高,笔者认为最主要的是因为他们还没有意识到测试技术的深度、难度与重要性。

记得在2009年51testing软件测试网举办的一次测试沙龙上,一位演讲嘉宾(来自互联网行业名企的测试总监)在对测试职业发展规划中提到“技术决定未来”,即技术的重要性,对于打破测试发展的瓶颈问题,笔者在多年的测试历练中,非常有同感。其实,只要你留意,就在我们身边,“技术决定未来”、“技术为王”的事例,举不胜举。下面便是两个鲜活的例子。

【案例1】车企:技术决定未来

以“畅想绿色未来”为主题的2010(第十一届)北京国际汽车展览会(Auto China 2010)于2010年4月23日—5月2日在北京中国国际展览中心隆重举行。从各大企业的参展阵容中我们可以发现,各大自主车企的未来发展战略正在不约而同地转向以“技术为王”的时代,即使自主车企也不例外。

来自腾讯汽车网

【案例2】索尼:技术为王

支撑品牌获得持续发展的,永远都是领先的技术。技术领先让索尼电视数十年立于不败之地,索尼无法割舍技术情结。索尼全球总裁中钵良治曾表示:“分析过去索尼业绩低迷的原因,首先就是有一段时间缺乏对技术开发的重视,索尼毕竟是‘技术的索尼’,这是必须被扭转的问题。”

来自2007年《世界经理人》杂志

软测作为软件工程体系的一个分支,在测试技术线路上的发展,亦有一个由低到高逐级递进的梯度进阶规则,如图4-7所示。

图4-7 测试职业技术线发展阶梯

下面就技术线路发展各阶段对测试人员在技术技能上的要求,以及对象进行介绍。

● 职业发展一阶:初级测试工程师。

技术技能要求:执行测试用例,记录测试发现的Bug,跟踪Bug生命周期状态,回归Bug;参与项目测试方案与用例设计等的评审。

对象:一般为刚踏入测试行业的新手。

● 职业发展二阶:测试工程师。

技术技能要求:以设计模块级测试方案、测试用例、测试代码为工作重点,执行测试用例为辅;组织模块测试设计评审;参与模块级开发设计方案评审,能独立完成规范的测试流程各节点的工作。

对象:一般为有1~3年经验的测试人员。

● 职业发展三阶:资深测试工程师。

技术技能要求:设计某项目总体测试方案,制订测试计划;对项目的某类或某特性进行测试,如自动化测试、内存泄漏、性能测试、安全性测试等;对有一定技术深度或难度方面的测试有独挡一面的能力,且收到效果;培养测试新人成为合格的测试工程师。

对象:有3~5年项目测试经验者。

● 职业发展四阶:主任测试工程师。

技术技能要求:制定某类产品测试总体策略、测试流程,制定相关测试规范、指南;负责某类产品测试平台建设;指导重点测试方案的设计,对测试设计有一定的创新能力,并收到效果;资深测试工程师的导师。

对象:一般为有5~10年的测试经验者。

● 职业发展五阶:测试架构师。

技术技能要求:负责某产品线测试策略、测试方法、流程规范的制定;规划、设计和开发测试平台;为了不断降低公司研发成本而进行新测试技术的研究、实践和推广;技术线上测试人才梯队的结构设计。

对象:一般为10年以上测试实战历练者。

对技术的追求是永无止境的。上面设计的5个阶段并没有绝对性,每一阶段还可以再细分,如资深测试工程师,可根据公司的具体情况再分为一级资深工程师,二级资深工程师、三级资深工程师等。

是否适合在技术线路上发展,主要取决于个人的能力特点。但有一点我们在进行个人职业发展规划时是不容忽视的,那就是与管理线路上的发展相比,技术线上的发展是没有限制的,不存在管理线路方向发展时职位需求不断收缩的金字塔问题。

4.2.3 架构合适的测试管理方向发展轨道

一般情况下,先有一些测试人员,然后才有测试管理的概念,一个测试管理者,特别是基层的测试主管都是从测试工程师中提拔的。测试管理不仅仅是对人的管理,还包括对测试流程体系的建设。如图4-8所示是测试管理线路进阶图,如表4-3所示为测试管理线发展各阶段要求与特征。

图4-8 测试职业管理线发展阶梯

表4-3 测试管理线发展各阶段要求与特征

测试管理线是测试职业发展的另外一条主要轨道,也是很多测试人员梦寐以求的路线。然而在管理线路上越往上走,职位需求就越少,也就是说机会就越少。就目前国内的公司而言,由于测试行业还处于发展的初期,设立测试总监、测试副总裁职位的公司还是寥若晨星。这也意味着我们要走的路还很长,长长的路上充满着机遇与挑战。

一名测试工程师在技术线路上发展时,主要是通过个人的努力给公司带来的贡献大小进行考核,而在管理线上,何谓一位成功的测试管理者呢?不同人可能会有不同的答案。让每个测试人员都能看到希望不是只挂在口头上,更重要的是在行动上。下面是一个管理成功的最佳实践案例。

【案例】他,在恋恋不舍中调离了

2010年春节前夕,某电子产品公司正在进行史无前例的组织结构重大调整。杨刚是公司软件测试部的一位测试工程师,由于刚加入公司还不到1年,对正在测试的产品业务并不很熟悉,即便一直加班加点学习、理解、分析需求,但所负责测试过的模块,还是漏了一个严重的Bug到客户端。也主要因为此事,杨刚的年中考核得了一个C。由于种种原因,杨刚对此结果一直耿耿于怀。后来,主管陈A与他一起查找了原因,做了详细严谨的漏测分析,提出防范的解决措施,并在日后的项目中,不断地鼓励他、相信他,给予他提升的机会。功夫不负有心人,通过下半年的心态调整、努力,杨刚的考核结果终于由C扭转到A。但“好景不长”,适逢公司的结构调整,在领导的要求下,杨刚被调到一个新的核心产品线担任测试工作。当主管与他谈及调动的事时,只见其默默地坐在自己的位置上一句话也不说,恋恋不舍的样子,快要掉出来的泪水在眼中打转。

此时无声胜有声,给每一位员工都能看到希望,相信这个小故事是一个很好的例子。

小贴士:

爱因斯坦说,一个人对社会的价值首先取决于他的感情、思想和行动对增进人类利益有多大作用。