MILY: 楷体_GB2312">经过这几年的发展,国内IT公司的测试水平有了很大的提高,但是与此同时,很多测试工程师也迎来了个人的发展瓶颈:很多人从测试工程师做到了测试经理的职位,不知道下一步如何发展;或者每天机械地从事着功能测试工作。
本文首先从分析测试工程师的发展现状和职业化过程遇到的问题入手;接着分析什么样的测试人员才是合格的;最后介绍测试人员的职业历程以及如何突破自己的职业发展瓶颈。
1 测试工程师帖子解析
下面是在一些测试网站上收集的帖子,主要是一些测试工程师介绍自己的成长历程或者对测试行业的看法。从这些帖子中,我们可以看出测试工程师职业发展遇到的一些问题。
帖子一:踏实地发展自己
我在北京工作有4年了。职业发展依次经历了测试员-测试工程师-测试分析师-测试经理。这就是我在北京的4年测试生涯。个人对测试工作有如下的观点:
1)软件测试不像一些人看起来那么简单,需要相当深厚的技术背景。但只要掌握要领,也不像我们一些人所认为的那么困难;
2)测试工程师和开发人员相比,可以有机会接触更多的、不同行业的项目,是一个大的优势。
3)测试工程师要想成功,更多的是靠平时的积累。不管是项目的积累,还是平时学习,两者都至关重要。
4)测试工程师要充分利用网络资源,与同行们充分交流,在互相帮助和学习的氛围中,可以加快自己成长速度。
点评:这是一位比较踏实的测试工程师,一步一个胶印地走着自己的测试之路,我们可以认为他是相对成功的典范。现实中我们很多测试工程师不是抱怨工资低,就是抱怨自己公司的测试环境不好。如果要想在测试领域走向成功,重要的秘诀就是踏踏实实地学习,认认真真地做好本职工作。
帖子二:执着的测试工程师
我做测试工作快6年了。刚开始的时候,我是公司的第一个测试员,虽然公司也在做ISO9000,但是什么规范都得自己摸索。可是,我仍然坚持下来了,而且大有收获,虽然在公司里不受重视。
但是随着测试工作的不断深入,自己对公司的主流业务(我们作的是行业软件)从外行变成了内行。而且还发现了一些产品的设计方面的欠缺,在老板和开发主管面前树立了自己的一些威信。至少在一些项目进行需求分析的时候,会来征求我的意见。而且,目前做到了不经测试的产品不给客户。当然,在我和开发经理发生分歧的时候,大部分时间老板还是支持开发经理,但我认为是正确的地方还是会据理力争的。
一句话,测试人员是孤独的,寂寞的。但只要坚持,总能有收获的,尤其是在发现了隐藏很深的一些BUG的时候,那种成就感和自豪感真的是一种很好的感觉。
实际上,做任何一行工作,都会遇到不公平。但为什么要去跟别人比呢,只要自己有提高,就是好的。
点评:“敢做冷板凳的人”才是勇敢的人,这位发帖子的测试工程师不但有勇气坐了冷板凳,而且能够坚持下来,直到取得了不错的成绩。“实际上,做任何一行工作,都会遇到不公平。但为什么要去跟别人比呢,只要自己有提高,就是好的。”几句朴实无华的话说出了如何做好测试工作的真谛。
测试人员一定要给自己正确的定位,既然选择了目前地位有些低的测试工作,就应该踏实的做好,这是走向成功的必由之路。
帖子三:好学而有信心的新手
我在一家外企作了一段时间的兼职测试,之前我从未接触过测试。开始的时候只作一些Manual test,后来就开始做Automated test,修改原有的test cases,或者重写一些test cases。然后test小组的leader建议我写测试文档,他说写文档有利于一个tester技术水平的提高。因为你必须要熟悉软件项目的整体框架,洞悉软件深层的结构才能写出高质量的测试用例。
于是,我在网上查了一些关于测试方面的资料,发现测试真的很重要。对一个软件项目而言,老外对软件测试尤其重视。我兼职的这个外企是有一半的员工是测试的,大概有7、8个人。个人认为,国内的软件企业对测试的重视程度还不够,但是毋庸置疑,测试是软件企业产品线上和开发同等重要的。可以预言,未来的国内软件行业,软件测试人员可能会占据软件团队半数左右。同时,对测试人员的能力要求也是比较高的。
综上,我觉得Software test很有前途。当然,这些都是一个测试新手的看法,可能比较片面,全当给大家打打气了。
点评:可以看出这是一位很有远见的测试工程师。现实中很多测试工程师是由于不能从事其它工作才从事测试的,因而工作中也是不断地抱怨待遇、团队环境等不能满足自己的要求。在此建议测试工程师,如果选择了这个行业,就应该认真地对待工作,抱怨永远解决不了问题。只有像这位测试工程师一样认真分析自己的行业,才可以有更好的职业化发展,否则还不如换一个自己喜欢的工作去试一试。
帖子四:郁闷而犹豫的测试工程师
我做软件测试也有两年多的时间了,但是在这两年中似乎没有太多的提高。因为都是黑盒测试,所以一般就是使用产品,最多也就是一些工具测试。可是这都是想到哪就测到哪,也没有真正按照测试文档执行。公司测的东西组合情况也很多,根本没办法。而且公司测试流程也不规范。
刚开始没签约的时候,还是专职测试,签了以后简直就变成打杂的了。什么都要做,连一些设计文档都推了过来,有时候还要去现场了解客户需求,真是非常佩服老板把一个人当三个人用的能力。总的感觉在小公司里,根本就没有测试员这个概念,测试员一般什么都得做。当你提出一堆建议的时候,老板总是会说,现在公司规模还不具备条件,以后会慢慢的改善的,可我感觉过两年公司可能已经倒闭了。
真是有点郁闷,改行做开发,又不想放弃这个被很看好的职业。可是光被看好又怎么样呢?说不定十几年前,扫大街的就像现在的做测试的。都是做质量保证,扫大街的要保证城市环境的质量,现在呢?他们又怎么样?
点评:其实测试和开发一样,都不是那么想当然的理想,国内开发环境也和测试一样混乱。而开发人员发展到高级程序员就会成为很多人的发展瓶颈,薪资和职务都很难再提升。而测试与开发相比的一个巨大优势在于它是一个新兴的领域,拥有更多的机会,测试人员工作三五年,再有一些管理经验,很容易做到测试主管,虽然薪资待遇相对低些,但是给个人的长期发展打好了基础。看准了就应该去做,实实在在的学到知识才是最重要的。
2 国内软件测试测试工程师职业发展现状
我们可以从两个方面来解析测试测试工程师的职业瓶颈问题:
l 从企业方面:多数企业较难招聘到满意的测试工程师,尤其在软件测试外包企业,人才问题成了这类企业的发展瓶颈,这些恰恰反映了整个测试行业的发展遇到了瓶颈;
l 从个人方面:很多测试人员薪资和职位到了一定阶段就很难得到提升,例如很多测试工程师做到测试经理后,几年内得不到提升。
职业发展尤其体现在待遇方面。下表是北京市一些IT企业测试工程师的月薪数据。这些数据主要从一些网站收集,由一些测试工程师发布。
职称名 |
税前月薪(人民币:元) |
备注 | ||
少于100人 |
100~200人 |
200人以上 | ||
初级工程师 |
1500~2000 |
2000~2500 |
3000~4000 |
手工执行功能测试,这些人通常是一年以内工作经验的新手。 |
2000~3000 |
2500~3500 |
一年到两年经验的测试工程师,工作内容通常以功能测试为主。 | ||
中级工程师 |
2500~3500 |
3000~4000 |
2500~3500 |
编写并执行测试用例,通常工作两年以上。 |
3500~4000 |
4000~4500 |
3500~4500 |
编写并执行测试用例,能够使用一些测试工具。通常工作两年以上。 | |
高级工程师 |
4000~5000 |
5000~6000 |
6000~7000 |
熟练使用测试工具,制定测试计划,编写并执行测试用例等。工作经验通常三年以上。 |
7000~8000 |
||||
测试分析师 |
4000~5000 |
5000~6000 |
6000~7000 |
具有一定分析能力的高级测试工程师。工作经验通常四年以上。 |
6000~7000 |
7000~8000 |
|||
测试组长 |
4000~5000 |
6000~7000 |
6000~7000 |
带领10人以内的测试小组执行测试任务。 |
5000~6000 |
7000~8000 |
7000~8000 |
带领15人以内的测试小组执行测试任务。 |
通过上面的数据,我们可以看出:
(1) 企业规模越大,越重视测试,而测试人员的待遇也越高;
(2) 掌握测试工具的测试人员待遇往往高于那些只能进行手工测试的工程师;
(3) 测试技术越熟练,待遇越高,而具备一定领导能力的测试工程师待遇会更高些;
但是我们就整个IT行业来看,尤其是与开发人员相比,测试工程师的待遇显得很低。就作者掌握的资料来看,同一级别的开发工程师要比测试工程师高1~2K(人民币),甚至更多。
与开发人员相比,测试工程师的职业目标则很少,主要下面几类:
l 测试组长(也可称之为测试负责人、测试经理):这类测试人员通常是测试项目负责人,既要具备较高的测试技术能力,还要具备一定的管理能力。主要职责是制定测试与编写测试计划、监控和管理整个测试过程。测试组长职位之所以受青睐,是因为测试组长可以向上发展为测试部门经理、质量经理,也可以横向发展为项目经理,因此通常待遇相对高些。
l 测试分析师:主要职责是对系统的测试结果进行综合的分析,例如缺陷分析、性能分析等。测试分析师不但测试技术能力较强,还要具备数据库、操作系统等多方面的技术知识。这类职务的发展空间也不错,可以发展成系统设计师等。
l 自动化测试工程师、测试开发工程师:主要职责是编写测试程序、执行自动化测试任务。这类职位的测试人员至少要达到初级程序员的能力,因为经常和程序打交道。发展空间也不错,甚至可以发展为程序员。(在国外,这类工作多由具有开发背景的测试人员来负责。而国内的IT公司不重视测试,程序员不愿意去做待遇较低的测试工作,因此测试人员在具有一定的开发能力后,将会考虑转行去做开发。)
但是,国内的测试人员多数在测试圈子“打转转”,很难进入到开发领域。多数测试人员发展成测试经理/高级测试工程师后,职业化几乎到了尽头。于是,出现了一些大企业的测试人员自己去创业的情形,但这种情形更是少之又少。
实际上,这一切的根本原因是由测试工程师的能力水平决定的。国内测试工程师普遍根基不牢,自然难获得较大的发展。下面将从测试工程师的基本素质谈起:只有那些基础知识扎实、潜质较好的测试工程师才是合格的工程师。
3 测试工程师基本素质
很多年轻或者刚刚从事测试工作的工程师,经常会问:“测试工程师需要什么技能或者具有什么素质才是合格的?”与开发人员相比,测试人员不但需要一技之长,还需要掌握诸如操作系统、数据库、网络等多方面的知识。
根据作者多年的经验,一个有竞争力的测试人员要具有下面三个方面的素质:
(1). 计算机专业技能
计算机领域的专业技能是测试工程师应该必备的一项素质,是做好测试工作的前提条件。尽管没有任何IT背景的人也可以从事测试工作,但是一名要想获得更大发展空间和持久竞争力的测试工程师,计算机专业技能则是必不可少的。计算机专业技能主要包含三个方面:
l 测试专业技能
现在软件测试已经成为一个很有潜力的专业。要想成为一名优秀的测试工程师,首先应该具有扎实的专业基础,这也是本书的编写目的之一。因此,测试工程师应该努力学习测试专业知识,告别简单的“点击”之类的测试工作,让测试工作以自己的专业知识为依托。