2国内软件测试测试工程师职业发展现状
我们可以从两个方面来解析测试测试工程师的职业瓶颈问题:51Testing软件测试网1TDL2r9u"f
l 从企业方面:多数企业较难招聘到满意的测试工程师,尤其在软件测试外包企业,人才问题成了这类企业的发展瓶颈,这些恰恰反映了整个测试行业的发展遇到了瓶颈;51Testing软件测试网"[3u*ZY |+WH(X
l 从个人方面:很多测试人员薪资和职位到了一定阶段就很难得到提升,例如很多测试工程师做到测试经理后,几年内得不到提升。51Testing软件测试网f6O'v^ I,OQ
职业发展尤其体现在待遇方面。下表是北京市一些IT企业测试工程师的月薪数据。这些数据主要从一些网站收集,由一些测试工程师发布。51Testing软件测试网^ K!kj.lm
职称名 6r)wW.Z,j^7[1}5N0 | 税前月薪(人民币:元)51Testing软件测试网3J
QSj$R4I.~-IM | 备注 +V2O;^2xs0G4[2o_0 |
少于100人 /d6r(Y4t{Xh0 | 100~200人 1~pwnX0x(Z9K6NE!P0 | 200人以上 P4T"b7d
@.X ?0 |
初级工程师51Testing软件测试网(`0[FA!qY | 1500~200051Testing软件测试网t;`O.VR"e0e | 2000~2500 $G[$o&} i C/}6d0 | 3000~4000 \
[r@'qR(m'_;`0 | 手工执行功能测试,这些人通常是一年以内工作经验的新手。51Testing软件测试网#Pj\P3RY1L;xV |
2000~300051Testing软件测试网!ue
XE`g fv"c | 2500~3500 nb0n LB.o6|}0 | 一年到两年经验的测试工程师,工作内容通常以功能测试为主。51Testing软件测试网9o:y*u8h6U)cB |
中级工程师51Testing软件测试网,CLF5p&n5X7xv$g | 2500~350051Testing软件测试网9s:A!LM`!ti5NV | 3000~4000 7UE6K\*pjY&p0 | 2500~350051Testing软件测试网@]1y)_
@)lQ | 编写并执行测试用例,通常工作两年以上。 n6]0X?6I#i"ES0 |
3500~4000 A@[r\V] D$F0 | 4000~450051Testing软件测试网^"yA}4OO'I"F | 3500~4500 ,cT"`/H@Dm+X(Jy0 | 编写并执行测试用例,能够使用一些测试工具。通常工作两年以上。51Testing软件测试网b?'on"[ |
高级工程师 'rXA1zW8l0 | 4000~500051Testing软件测试网wr"_+TV!u1Mj | 5000~600051Testing软件测试网&U5\@h)tO tU | 6000~7000 hHpd%fj8}0 | 熟练使用测试工具,制定测试计划,编写并执行测试用例等。工作经验通常三年以上。 8iZ"agH*_U0 |
7000~8000 cr"j,]
D ]"V U;A0 | 能编写自动化测试脚本与进行白盒测试工作。具有一定的开发技能。工作经验通常三年以上。51Testing软件测试网~"F+^2a,w/\TZ |
测试分析师51Testing软件测试网e s3U~ WhL | 4000~5000 7P*c;?1Ts*L(f0z0 | 5000~600051Testing软件测试网#Dgp*nhq n"Y | 6000~7000 Fs6Y
UhL/T!a#`k&P"m0 | 具有一定分析能力的高级测试工程师。工作经验通常四年以上。51Testing软件测试网2W9i)T8iW
X,x,Q-\ |
6000~700051Testing软件测试网:u;NpgP(@5jI:u | 7000~800051Testing软件测试网 J&HH Wj#?mrE | 能够设计测试方案,执行测试并对测试结果进行全面的分析,例如性能测试分析。51Testing软件测试网![;~HZ-Xp |
测试组长 Gy&[]*y#G3J0 | 4000~5000 f W+uE0Id!o"E0 | 6000~7000 '~2X1t:N&B`[tou0 | 6000~7000 9_
H fS@ @0 | 带领10人以内的测试小组执行测试任务。 C0_
O
U!VR
y0 |
5000~600051Testing软件测试网U0x5FSbWw:[ Z | 7000~8000 (}kZ/F4L%P0 | 7000~8000 ]+eB1Q5b.c3l0 | 带领15人以内的测试小组执行测试任务。51Testing软件测试网+t&NB's9Z2|"r |
通过上面的数据,我们可以看出:51Testing软件测试网3k0sR6T}b9o9@M
(1) 企业规模越大,越重视测试,而测试人员的待遇也越高;51Testing软件测试网 } f}.bgmgm
(2) 掌握测试工具的测试人员待遇往往高于那些只能进行手工测试的工程师;
$f qJs I&D+{wP_0(3) 测试技术越熟练,待遇越高,而具备一定领导能力的测试工程师待遇会更高些;51Testing软件测试网?i2pER _
但是我们就整个IT行业来看,尤其是与开发人员相比,测试工程师的待遇显得很低。就作者掌握的资料来看,同一级别的开发工程师要比测试工程师高1~2K(人民币),甚至更多。
'J(^3Ks|0与开发人员相比,测试工程师的职业目标则很少,主要下面几类:
@PoN-s(W*V0l 测试组长(也可称之为测试负责人、测试经理):这类测试人员通常是测试项目负责人,既要具备较高的测试技术能力,还要具备一定的管理能力。主要职责是制定测试与编写测试计划、监控和管理整个测试过程。测试组长职位之所以受青睐,是因为测试组长可以向上发展为测试部门经理、质量经理,也可以横向发展为项目经理,因此通常待遇相对高些。51Testing软件测试网3K1Kd|5E_)f
l 测试分析师:主要职责是对系统的测试结果进行综合的分析,例如缺陷分析、性能分析等。测试分析师不但测试技术能力较强,还要具备数据库、操作系统等多方面的技术知识。这类职务的发展空间也不错,可以发展成系统设计师等。
/F,IEEo0l 自动化测试工程师、测试开发工程师:主要职责是编写测试程序、执行自动化测试任务。这类职位的测试人员至少要达到初级程序员的能力,因为经常和程序打交道。发展空间也不错,甚至可以发展为程序员。(在国外,这类工作多由具有开发背景的测试人员来负责。而国内的IT公司不重视测试,程序员不愿意去做待遇较低的测试工作,因此测试人员在具有一定的开发能力后,将会考虑转行去做开发。)51Testing软件测试网` O&p7A?/aRN
但是,国内的测试人员多数在测试圈子“打转转”,很难进入到开发领域。多数测试人员发展成测试经理/高级测试工程师后,职业化几乎到了尽头。于是,出现了一些大企业的测试人员自己去创业的情形,但这种情形更是少之又少。
~QLs _
G&P5iH0实际上,这一切的根本原因是由测试工程师的能力水平决定的。国内测试工程师普遍根基不牢,自然难获得较大的发展。下面将从测试工程师的基本素质谈起:只有那些基础知识扎实、潜质较好的测试工程师才是合格的工程师。
__;|5W6K03测试工程师基本素质
很多年轻或者刚刚从事测试工作的工程师,经常会问:“测试工程师需要什么技能或者具有什么素质才是合格的?”与开发人员相比,测试人员不但需要一技之长,还需要掌握诸如操作系统、数据库、网络等多方面的知识。51Testing软件测试网6WQ)rJ7s T!? e
根据作者多年的经验,一个有竞争力的测试人员要具有下面三个方面的素质:51Testing软件测试网_.dp1K.m3k9@
(1). 计算机专业技能
V8Wh*DIk$`)C%]0计算机领域的专业技能是测试工程师应该必备的一项素质,是做好测试工作的前提条件。尽管没有任何IT背景的人也可以从事测试工作,但是一名要想获得更大发展空间和持久竞争力的测试工程师,计算机专业技能则是必不可少的。计算机专业技能主要包含三个方面:
y/b W1Xge0l 测试专业技能
u/VC(` K6?0现在软件测试已经成为一个很有潜力的专业。要想成为一名优秀的测试工程师,首先应该具有扎实的专业基础,这也是本书的编写目的之一。因此,测试工程师应该努力学习测试专业知识,告别简单的“点击”之类的测试工作,让测试工作以自己的专业知识为依托。51Testing软件测试网u/xkv/|;Q
测试专业知识很多,本书内容主要以测试人员应该掌握的基础专业技能为主。测试专业技能涉及的范围很广:既包括黑盒测试、白盒测试、测试用例设计等基础测试技术,也包括单元测试、功能测试、集成测试、系统测试、性能测试等测试方法,还包括基础的测试流程管理、缺陷管理、自动化测试技术等知识。
` v(Q,zB]3k,s0l 软件编程技能
ShLs$S.b3}T$R&dMJ4L0“测试人员是否需要会编程?”可以说是测试人员最常提出的问题之一。实际上,由于在我国开发人员待遇普遍高于测试人员,因此能写代码的几乎都去做开发了,而很多人则是因为做不了开发或者不能从事其它工作才“被迫”从事测试工作。最终的结果则是很多测试人员只能从事相对简单的功能测试,能力强一点的则可以借助测试工具进行简单的自动化测试(主要录制、修改、回放测试脚本)。51Testing软件测试网O
`-\uOz`
软件编程技能实际应该是测试人员的必备技能之一,在微软,很多测试人员都拥有多年的开发经验。因此,测试人员要想得到较好的职业发展,必须能够编写程序。只有能给编写程序,才可以胜任诸如单元测试、集成测试、性能测试等难度较大的测试工作。51Testing软件测试网9\V
Gt+d NZIM.L%h
此外,对软件测试人员的编程技能要求也有别于开发人员:测试人员编写的程序应着眼于运行正确,同时兼顾高效率,尤其体现在与性能测试相关的测试代码编写上。因此测试人员要具备一定的算法设计能力。依据作者的经验,测试工程师至少应该掌握Java、C#、C++之类的一门语言以及相应的开发工具。
q
B-pYI BXXa`0l 网络、操作系统、数据库、中间件等知识:51Testing软件测试网&O$oF5n&Y(S
与开发人员相比,测试人员掌握的知识具有“博而不精”的特点,“艺多不压身”是个非常形象的比喻。由于测试中经常需要配置、调试各种测试环境,而且在性能测试中还要对各种系统平台进行分析与调优,因此测试人员需要掌握更多网络、操作系统、数据库等知识。51Testing软件测试网w2Pn6Qu$Fd
在网络方面,测试人员应该掌握基本的网络协议以及网络工作原理,尤其要掌握一些网络环境的配置,这些都是测试工作中经常遇到的知识。51Testing软件测试网-`r~7[K,`^D&Y4D~7P
操作系统和中间件方面,应该掌握基本的使用以及安装、配置等。例如很多应用系统都是基于Unix、linux来运行的,这就要求测试人员掌握基本的操作命令以及相关的工具软件。而WebLogic、Websphere等中间件的安装、配置很多时候也需要掌握一些。
I2\;j!Z-S(? |-EI1`c$f z0数据库知识则是更应该掌握技能,现在的应用系统几乎离不开数据库。因此不但要掌握基本的安装、配置,还要掌握SQL。测试人员至少应该掌握Mysql、MS Sqlserver、Oracle等常见数据库的使用。
(~{-Oa:uI(?5|8q
o0作为一名测试人员,尽管不能精通所有的知识,但要想做好测试工作,应该尽可能地去学习更多的与测试工作相关的知识。51Testing软件测试网-[-DjUpZ f
(2). 行业知识51Testing软件测试网X8}#ekShKU.t
行业主要指测试人员所在企业涉及的行业领域,例如很多IT企业从事石油、电信、银行、电子政务、电子商务等行业领域的产品开发。行业知识即业务知识,是测试人员做好测试工作的又一个前提条件,只有深入地了解了产品的业务流程,才可以判断出开发人员实现的产品功能是否正确。51Testing软件测试网3O@`cN?I'\A ~B
很多时候,软件运行起来没有异常,但是功能不一定正确。只有掌握了相关的行业知识,才可以判断出用户的业务需求是否得到了实现。51Testing软件测试网6vfi1tO.@
p]9E
行业知识与工作经验有一定关系,通过时间即可以完成积累。
$SJ"@$rJ#`1w0(3). 个人素养51Testing软件测试网mMQT
h*z9RY
作为一名优秀的测试工程师,首先要对测试工作有兴趣:测试工作很多时候都是显得有些枯燥的,因此热爱测试工作,才更容易做好测试工作。因此,除了具有前面的专业技能和行业知识外,测试人员应该具有一些基本的个人素养,即下面的“五心”。51Testing软件测试网g/L&Yp u(b
专心:主要指测试人员在执行测试任务的时候要专心,不可一心二用。经验表明,高度集中精神不但能够提高效率,还能发现更多的软件缺陷,业绩最棒的往往是团队中做事精力最集中的那些成员。
B:wb~#J
s&T R0细心:主要指执行测试工作时候要细心,认真执行测试,不可以忽略一些细节。某些缺陷如果不细心很难发现,例如一些界面的样式、文字等。
:Y-z_7{O GO)j0耐心:很多测试工作有时候显得非常枯燥,需要很大的耐心才可以做好。如果比较浮躁,就不会做到“专心”和“细心”,这将让很多软件缺陷从你眼前逃过。
8D!H1wtW-s.R"r0责任心:责任心是做好工作必备的素质之一,测试工程师更应该将其发扬光大。如果测试中没有尽到责任,甚至敷衍了事,这将会把测试工作交给用户来完成,很可能引起非常严重的后果。51Testing软件测试网
@f+@
N%o[T6e/q'y
自信心:自信心是现在多数测试工程师都缺少的一项素质,尤其在面对需要编写测试代码等工作的时候,往往认为自己做不到。要想获得更好的职业发展,测试工程师们应该努力学习,建立能“解决一切测试问题”的信心。51Testing软件测试网8Xd0M3E9g3W
“五心”只是做好测试工作的基本要求,测试人员应该具有的素质还很多。例如测试人员不但要具有团队合作精神,而且应该学会宽容待人,学会去理解“开发人员”,同时要尊重开发人员的劳动成果——开发出来的产品。
5i/t8lU/KLc#E0