软件测试职业发展规划

发布时间:2017-03-26 编辑:1019

  天地玄黄,宇宙洪荒;所谓光阴似箭,因为一转眼滚滚的历史车轮就将人类文明推进了二十一世纪的信息时代!葛大爷有对白曰:“二十一世纪最宝贵的是什么?”对曰:“人才!”何为人才?sincky曰:“适应时代潮流,把握社会需求,并为我中华老大帝国创造社会价值的人!”哎哟,不诹了,其实今天笔者在这里要和大家探讨的,是软件测试的职业发展问题,重点要阐述的是软件测试从业者的职业发展方向,欢迎大家按enter键换行,继续浏览!

  一个人从大学毕业,即开始发生从学生时代向职业人士的过渡,这种过渡走的好,可以实现毕生宿愿,体现个人价值,不管你是否喜欢,功名、利禄尽收眼底;如果走的不好,则会误入歧途,纵有凌云壮志、万丈豪情,难免一生郁郁不得志,终归化作片片飞尘,无语对穹苍!那么如何才能顺利的完成这种过渡、踏上我们豪迈的职业旅程呢?答曰:认清自己,选择适途!战国的魏人荆轲具有“十步杀一人,千里不留行”的本领,曾向魏王献策曰:“国君,我是职业杀手,我杀人的技术很强!”魏王问:“那么你想杀谁呢?”对曰:“杀他个国君如何?”魏王大惊,慌然离去!后来荆轲离开魏国,与燕太子丹密谋,留下了“图穷匕首见”、“荆轲刺秦王”的千古佳话。荆轲,良禽也,择木而栖和太子丹合作,是他的高明之处;不过笔者认为他是一个典型的“低管理、高技能”的人才,当他紧握嬴政的脖领、持剑相逼时,他太得意忘性了,可见他没有领导的“统御力”和“决断力”,所以落了个刺杀失败、拔剑自刎的下场,虽然他的侠义与胆识流畅千古,但是终究是个“杀手”而已;当今社会下,如果“低管理、高技能”的人干工作干到丢了性命,那也真是一个笑谈了!

  目前我们国家高等学历大幅度扩招,造成社会的低端人才严重过剩,大学生毕业找不到工作、或者找不到合适的工作例子鳞次栉比;但是社会各行各业对高端人才的需求又求贤若渴;那么如何解决这种矛盾呢?从大环境来说,国家应该改革教育体制、提高教学质量、重视高端人才的培养,但是,一个问题一旦上升到国家的层次,就要等它个十年八年!我们没有办法改变世界,但是我们有能力改变自己;所以我们从个人的角度来讲,讲讲我们这些软件测试的从业者们,如何“认清自己、选择适途!”

  纵观当今社会各行各业,对于个人的职业发展方向,从宏观上都可以划分为四个群体,即:

  “低管理、低技能”

  “高管理、低技能”

  “低管理、高技能”

  “高管理、高技能”

  而在IT 行业这种划分方法更为合理,sincky为其命名为“一起点-三方向示意图”:

  告别了象牙塔,带着对校园生活里那段风花雪月的追忆,年轻的毕业生们走上了社会;这时候的年轻人,大多数是属于“低管理、低技能”的群体,我们没有工作经验,不知道企业的工作流程,不清楚各个职业的工作技能,更不具备任何行业的管理能力;然而值得庆幸的是,人类问明发展到现在所出现的众多行业,都已经有了众多可以参考的群体,这些群体就理所当然的成了我们可以借鉴的发展方向!虽然我们的起点都是一个,但是可以选择的发展方向却是丰富多样!

  高管理-低技能,即是我们通常所说的管理路线!在IT业,这个方向的成功者不乏项目经理、项目总监直至企业的最高管理层;但是走这个方向也要有技术方面的积累,因为管理者的影响力中,除了职位赋予的权力以外,还包括个人人格方面的能力和专业领域的专业能力,而后者就是技术水平!而计算机行业本身,也决定了技术底蕴对职业发展的重要影响,所以年轻的IT朋友们,如果想为自己的职业人生设计成这个路线,除了适当的技术积累外,更要有意识的锻炼自己的管理素质,下图可做参考:

  低管理-高技能,即通常所说的技术路线!IT业以技术为主导,对于喜欢钻研技术、探讨技术的人,可以选择该条路线,走的深入、走的彻底!只因中国对于技术与管理的认识不同,造成很多人认为做技术不赚钱、不被重视,自身误以为不过是个工程师而已,所做事情只是辅助企业的运作。实际上,在欧美发达国家,资深技术人员的薪资非常高,从业时间的周期也相当长,在Microsoft、IBM等巨头企业,不乏年龄在50岁以上的资深程序员或系统架构师,而其薪资也和高级管理者一样高!而另外一个不争的事实是,企业对于管理的职位是有限的,并且一些优秀的技术人员不愿做管理,或者不适合做管理,因此社会上出现的资深技术专家(或者类似职位),为喜好技术的从业人员提供向上的通道。

  高管理-高技能,即咨询方向是较为均衡、全面的路线,也是众多企业希望员工努力的方向。然而有调查结果显示,由于现实种种因素的制约,大约90%的个人是分别沿着管理方向或者专家方向发展的,真正实现在咨询方向达到一定的高度的人少之又少,而且在这为数不多的咨询方向达到又一定高度的人才,往往又会由于企业资源的限制无法将个人价值完全发挥而最终离开所在企业,成为专业培训师、咨询师;一些国际知名的咨询公司如麦肯锡、安达信乃至毕博或其他,可谓大家在个人职业生涯到达一定阶段,作为自己继续突破职业瓶颈的发展路线。

  那么,对于软件测试的从业者,我们的出路在哪里?我们的职业发展该如何设计?我们的发展方向又有哪些呢?这里笔者和大多数测试同行意识相同,笔者也曾在多篇文章里标明,中国的软件测试行业尚属起步阶段,其发展的步履上布满了荆棘与泥泞;然而其发展速度可谓惊人的,从笔者刚毕业时候对软件测试的“0”概念、从业同行者寥寥无几,到最近2年的各大媒体纷纷报道的中国软件测试人才缺口20万、软件测试工程师将成为未来10年最紧缺的人才之一、包括笔者所接触的众多国内外优秀企业对高端测试人才年薪10万、15万、20万的招聘需求……可见,选择软件测试这个朝阳行业的朋友,做了一个比较正确的选择!然而,如何任何事物总有它的两面性和矛盾性:2006年初在北京、上海、深圳举办的几次春季大型招聘会上,多家企业纷纷打出各类高薪招聘软件测试人员的海报,出人意料的是,收到的简历尚不足招聘岗位数的50%,而合格的竟不足30%……引起我们思考的是,我们的软件测试从业人员还有很大一部分不满足当今社会的需求;而另一层含义是,我们还有很大的提升空间!因此解决该矛盾的突破点是:每个人在这个行业里找到自己的发展方向,规划自己的职业蓝图,从而有针对性的锻炼自己的职业技能,增加个人的职业砝码!

  软件测试职业发展方向,大体上与上述的通用职业发展路线图相吻合,也可以分为管理路线、技术路线、管理+技术路线;只是针对该行业本身,有其特殊性和细致性。其图示如同两个重叠的”V”字样,我们为其命名为“双V模型”;该模型适用于大多数行业性软件测试从业人员,一些特殊领域如游戏测试、嵌入式测试、硬件测试,也可作为参考。本文是三部曲之一,只介绍职业发展方向定义,在下一曲会介绍各个职业方向应该具备的知识与技能体系!

  双V的底点是测试工程师,属于软件测试职业生涯的初级域,其适用范围是入行软件测试3年内的常规测试从业者,其主要工作内容是按照测试主管(即直接上司)分配的任务计划,编写测试用例、执行测试用例、提交软件缺陷,包括提交阶段性测试报告、参与阶段性评审等。初入测试行业,进入企业从事测试工作的人员,都要从该层次做起,虽然有时感觉乏味无趣,甚至迷茫困惑,但是我们可以根据个人的兴趣与特长,向上选择适合自己的路线,因为谁都不会甘心一辈子只做一个普通的测试工程师,那么大家看到这里,就可以摩拳擦掌,看看向上发展的通道中,哪一个适合自己,然后立刻从现在开始,确定自己未来5年、10年甚至一生的发展目标迈进,用笔者经常跟学员说的一句话来形容:把握现在,即刻做起,相信自己是最强的!

  首先是常规路线,即双V模型的重叠线,这条发展路线要求管理与技术并重,因为软件测试的行业特点决定了这个因素:测试工程师向上晋升到测试主管、测试经理、测试总监,直至咨询域的更高方向!

  测试主管是企业项目级主管,对于中小型软件公司也可以是企业级主管,属于中级发展域,适用范围是2到5年职业经验的测试从业者。其工作内容是根据项目经理或测试经理的计划安排,调配测试工程师执行模块级或项目级测试工作,并控制与监督软件缺陷的追踪,保证每个测试环节与阶段的顺利进行。严格来说,这个级别更多属于测试的设计者,因为企业的测试流程搭建是由更高级别的测试经理或相关管理者来做的,测试主管负责该流程的具体实施;而更多的工作,是思考如何对软件进行更加深入、全面的测试。因此笔者认为测试主管比较有创造性的工作内容就是测试设计,而恰恰很多公司忽略了或没有精力来执行此工作内容!应该说,在一个企业里做了3年左右测试工作的人员,很容易晋升到该职位,而之所以晋升,是与个人测试技术的过硬、测试方法的丰富,加上对测试流程的监控力与执行力的职业素质息息相关!

  测试经理是更高级别的测试管理者,属于高级测试方向域。对于大中型软件公司,该职位尤为重要,并且对其职业要求也比较高,一般适合4到8年的测试从业者,在管理与技术能力双双比较成熟的情况下,可以结合具体环境晋升到该级别。测试经理负责企业级或大型项目级总体测试工作的策划与实施。随着软件行业的发展,企业对软件工程里各个角色的定位逐渐明显,测试经理完全与开发经理(一些公司也成为项目经理)平齐,除了需要统筹整个企业级或项目级测试流程外,还要对于不同软件架构、不同开发技术下的测试方法进行研究与探索,为企业的测试团队成员提供指导与解决思路,同时还要合理调配不同专项测试的人力资源(如业务测试工程师、自动化测试工程师、白盒测试工程师、性能测试工程师),对软件进行全面的测试;另外,一些企业里,测试经理还需要与客户交流与沟通,负责部分的销售性或技术支持性工作。嘿嘿,看看那些高薪招聘测试经理的企业对该职位的要求里外语口语的描述,就可见一斑!

  测试总监,属于常规发展路线的最高域,如果再往上发展,那只能是咨询域了;不过笔者并没有将其在图中标记出来,因为该职位对于国内目前的大多数软件公司根本没有设立,也就没必要再在图中体现了。该职位一般在大型或跨国型软件企业,或者专向于测试服务型企业有所设立,由于其企业自身的职位定位不同,以及软件测试整体行情所处的阶段,这里不好归纳陈述;但是一般设立测试总监的企业,该职位都相当于CTO或副总的级别,是企业级或集团级测试工作的最高领导者,驾驭着企业全部的测试与测试相关资源,管理着企业的全部测试及质量类工作。而其职业要求,也是技术与管理双结合;基于目前软件测试行情看,这种高管理-高技能的发展目标,不会适合大多数人的选择,社会也不会提供如此众多的测试总监职位让我们去应征!

  应该说,大多数测试从业者都不是技术与管理双优的人,而如今一些到达测试经理或测试总监级别的优秀测试人才,已经领先一步开辟了这条发展路线的先河,希望这些朋友和大家多多分享经验,让更多的朋友弥补自己管理或技术上的不足,在这条路线上有所建树,共同提高,在实现个人人生价值的同时,也自然而然的推动了软件测试行业的发展;行业发展了,测试人员不再被忽视了,待遇自然也提高了,也就不会有很多朋友迷茫的跟我说“我的日常工作只是点击按钮和按键盘”了,因为我们相信行业的不断成熟,会逐渐将软件测试职业细化,我们的从业者就可以真正的在如下的管理路线和技术路线找到自己的位置,并潜心走向深入的!

  软件测试,是技术主导的职业;不管选择哪条发展路线,都是需要一定的技术沉淀,只是相对来说,管理路线对技术方面要求不高而已。那么我们就先挑重头的技术路线展开讨论。一般来说,一个普通的测试工程师刚入行,3个月左右熟悉企业的工作流程和模式,那么今后的工作内容趋于平稳。然而社会是残酷的!如果单单停留在测试工程师的阶段,若干年后,相信你再也竞争不过那个时候的应届毕业生,当你的工作技能和职业素质趋于与那些朝气蓬勃的年轻人相当时,企业会毫不留情的选择他们,而release你,因为你的成本消耗要比他们高,这是大实话!然而现实又是公平的!因为软件开发技术的不断日新月异,软件功能需求的不断丰富多样,决定软件开发这一系统工程的错综复杂,因此为了保证软件的质量,就要提高测试的水平,这也就为软件测试职业的细化起到先决因素,也是目前社会上出现招聘专项测试工程师的必然趋势!因此,这个趋势给了我们这些常规测试工程师一个空前的好机会!所谓“以毒攻毒”,软件开发靠的是技术,为了测试软件,也必须用技术;那么我们就来看一下从技术路线,软件测试职业发展有哪些方向。

  技术路线,笔者结合国内外软件测试行业现状,划分为三个半方向,分别是自动化测试工程师、白盒测试工程师、性能测试工程师和认证测试工程师,在“双V模型”中右侧体现;前三者适用于通用软件测试领域,认证测试工程师乃嵌入式测试领域职位,至少目前仅出现在嵌入式领域,因此以虚线标记,即“三个半”的“半”。前三条路线对技术的要求程度逐渐增加,三条曲线的斜率也依次递增(认证工程师不参与比较)。

  自动化测试工程师,笔者为其定义在功能测试范畴,指通常所说的依靠自动化测试工具进行软件黑盒测试的工程师。笔者接触的很多测试界朋友,尤其年轻的刚入行者,对测试工具充满了无限的兴趣,他们喜欢那种编写脚本、调试成功后的快感,喜欢看到自定义的日志里记录了本来手工测试烦琐的无聊头顶的工作、而采用自动化方式实现后如此清晰丰富的内容后的兴奋!可以理解,因为笔者也是从那段时光走过来的,现在也负责于我们学员的自动化测试教学工作。从大环境讲,自动化测试是软件测试执行阶段的必然趋势,社会对于软件测试的认可度以及对自动化测试人才的需求必将日益增加,从目前国内做自动化测试的从业者薪资情况看,也普遍高于常规测试工程师,最浅显的道理是“自动化测试比手工测试有了技术含量,^--^”虽然自动化测试在整个行业的普及不是一朝一夕,但是从个人角度讲,自动化测试可以作为个人的发展方向之一,因为如果你率先掌握了这种技术,等到社会需要时,你已成为这个职位的成熟操作者!而国内的51testing把握了时代前沿,与自动化测试工具巨头厂商Mercury(美科利)合作,在中国唯一推出Mercury自动化测试全套技能认证(CPE/SP/CPC),相比其它初等认证,它的实效性和价值性更具意义,也为测试从业者提供了一个进入自动化测试领域的快捷方式!

  白盒测试工程师,笔者定位于在软件测试周期的单元测试阶段对软件进行的代码级测试的人,包括代码走读、代码功能与逻辑测试、代码内存泄漏检查、代码运行效率检查、代码测试覆盖率分析等。如果说,自动化测试只是依靠脚本语言完成测试脚本编写与调试的过程(因为自动化测试工程师的工作重点不在编写脚本),对于自动化测试工程师的技术要求要相对偏低的话,那么白盒测试工程师就要对大型程序开发语言的完全掌握,因此其技术要求相对偏高!而另一方面,白盒测试在目前国内软件行情下,一些公司根本不做,其成本高、代价大的特点决定了这个现状,而一些对软件质量要求非常高(如军事类、电信类、财务金融类等)的企业,也会调动开发工程师来实施此事。但是,还是那句话,测试行业在发展,测试人员能力在提升,软件的开发技术在复杂化,要对软件进行尽可能全面的测试,白盒测试不可忽视!当下专门高薪招聘白盒测试工程师的企业也比比皆是,从中我们可以感知,白盒测试工程师会是很多有开发背景、意欲进入测试行业的良好突破口,白盒测试人员的需求也会逐渐增加。

  性能测试工程师,即在系统测试阶段、功能测试后对软件系统性能指标进行采集分析和运行效率检测的人。笔者认为,在一个尽量压缩的测试流程里,功能测试可以手工进行,白盒测试可以不做,但是性能测试必须要做,除非该软件非网络类软件即单机版软件!这里笔者再提一个观点供大家参考:软件测试,从宏观上可以划分为三个大方面:功能测试、性能测试、安全性测试,功能测试说明软件做对了,功能测试+性能测试说明软件做好了,三者结合起来说明软件做的非常好!安全测试暂且抛之不提,这是下一个发展域的内容,但是为了把软件做好,为了真正保证软件的质量,性能测试绝不容忽视;只因目前很多企业由于时间、成本、人力条件的限制,暂且不做性能测试。性能测试工程师相对来说,是三个技术路线里技术要求最高的,因为软件的性能瓶颈归根结底落实到代码的运行效率这个问题上,因此性能测试要做好,性能测试工程师起码要懂开发;而为了发现性能问题,要懂软件开发架构;为了定位性能问题,要懂操作系统、网络协议、应用服务器乃至数据库的原理与使用;为了最终解决性能问题,要根据定位的问题有针对性的对代码、操作系统、网络架构、服务器、数据库进行优化!当然性能测试是一个系统工程师,绝对不是一两个人的事情,对于常规性能测试工程师,具备定位性能问题的能力即可。正因为性能测试工程师技术要求的高超,该职位的待遇也是目前测试技术路线最高薪的一个,实为综合技术能力较强的测试人员的明智选择!

  上述四职业路线由于其技术程度的突出,一般在企业里由测试经理直接所属,与测试主管级别具有相同的待遇,并处于相同发展域。

栏目推荐
最新推荐