解析测试工程师职业发展瓶颈(二)

上一篇 / 下一篇  2008-01-21 22:41:53

3测试工程师基本素质

很多年轻或者刚刚从事测试工作的工程师,经常会问:“测试工程师需要什么技能或者具有什么素质才是合格的?”与开发人员相比,测试人员不但需要一技之长,还需要掌握诸如操作系统数据库、网络等多方面的知识。

根据作者多年的经验,一个有竞争力的测试人员要具有下面三个方面的素质:

(1).       计算机专业技能

计算机领域的专业技能是测试工程师应该必备的一项素质,是做好测试工作的前提条件。尽管没有任何IT背景的人也可以从事测试工作,但是一名要想获得更大发展空间和持久竞争力的测试工程师,计算机专业技能则是必不可少的。计算机专业技能主要包含三个方面:

l        测试专业技能

现在软件测试已经成为一个很有潜力的专业。要想成为一名优秀的测试工程师,首先应该具有扎实的专业基础,这也是本书的编写目的之一。因此,测试工程师应该努力学习测试专业知识,告别简单的“点击”之类的测试工作,让测试工作以自己的专业知识为依托。

测试专业知识很多,本书内容主要以测试人员应该掌握的基础专业技能为主。测试专业技能涉及的范围很广:既包括黑盒测试、白盒测试、测试用例设计等基础测试技术,也包括单元测试功能测试、集成测试、系统测试、性能测试等测试方法,还包括基础的测试流程管理、缺陷管理自动化测试技术等知识。

l        软件编程技能

“测试人员是否需要会编程?”可以说是测试人员最常提出的问题之一。实际上,由于在我国开发人员待遇普遍高于测试人员,因此能写代码的几乎都去做开发了,而很多人则是因为做不了开发或者不能从事其它工作才“被迫”从事测试工作。最终的结果则是很多测试人员只能从事相对简单的功能测试,能力强一点的则可以借助测试工具进行简单的自动化测试(主要录制、修改、回放测试脚本)。

软件编程技能实际应该是测试人员的必备技能之一,在微软,很多测试人员都拥有多年的开发经验。因此,测试人员要想得到较好的职业发展,必须能够编写程序。只有能给编写程序,才可以胜任诸如单元测试、集成测试、性能测试等难度较大的测试工作。

此外,对软件测试人员的编程技能要求也有别于开发人员:测试人员编写的程序应着眼于运行正确,同时兼顾高效率,尤其体现在与性能测试相关的测试代码编写上。因此测试人员要具备一定的算法设计能力。依据作者的经验,测试工程师至少应该掌握JavaC#C++之类的一门语言以及相应的开发工具。

l        网络、操作系统、数据库、中间件等知识:

与开发人员相比,测试人员掌握的知识具有“博而不精”的特点,“艺多不压身”是个非常形象的比喻。由于测试中经常需要配置、调试各种测试环境,而且在性能测试中还要对各种系统平台进行分析与调优,因此测试人员需要掌握更多网络、操作系统、数据库等知识。

在网络方面,测试人员应该掌握基本的网络协议以及网络工作原理,尤其要掌握一些网络环境的配置,这些都是测试工作中经常遇到的知识。

操作系统和中间件方面,应该掌握基本的使用以及安装、配置等。例如很多应用系统都是基于Unixlinux来运行的,这就要求测试人员掌握基本的操作命令以及相关的工具软件。而WebLogicWebsphere等中间件的安装、配置很多时候也需要掌握一些。

数据库知识则是更应该掌握技能,现在的应用系统几乎离不开数据库。因此不但要掌握基本的安装、配置,还要掌握SQL。测试人员至少应该掌握MysqlMS SqlserverOracle等常见数据库的使用。

作为一名测试人员,尽管不能精通所有的知识,但要想做好测试工作,应该尽可能地去学习更多的与测试工作相关的知识。

(2).       行业知识

行业主要指测试人员所在企业涉及的行业领域,例如很多IT企业从事石油、电信、银行、电子政务、电子商务等行业领域的产品开发。行业知识即业务知识,是测试人员做好测试工作的又一个前提条件,只有深入地了解了产品的业务流程,才可以判断出开发人员实现的产品功能是否正确。

很多时候,软件运行起来没有异常,但是功能不一定正确。只有掌握了相关的行业知识,才可以判断出用户的业务需求是否得到了实现。

行业知识与工作经验有一定关系,通过时间即可以完成积累。

(3).       个人素养[1]

作为一名优秀的测试工程师,首先要对测试工作有兴趣:测试工作很多时候都是显得有些枯燥的,因此热爱测试工作,才更容易做好测试工作。因此,除了具有前面的专业技能和行业知识外,测试人员应该具有一些基本的个人素养,即下面的“五心”。

专心:主要指测试人员在执行测试任务的时候要专心,不可一心二用。经验表明,高度集中精神不但能够提高效率,还能发现更多的软件缺陷,业绩最棒的往往是团队中做事精力最集中的那些成员。

细心:主要指执行测试工作时候要细心,认真执行测试,不可以忽略一些细节。某些缺陷如果不细心很难发现,例如一些界面的样式、文字等。

耐心:很多测试工作有时候显得非常枯燥,需要很大的耐心才可以做好。如果比较浮躁,就不会做到“专心”和“细心”,这将让很多软件缺陷从你眼前逃过。

责任心:责任心是做好工作必备的素质之一,测试工程师更应该将其发扬光大。如果测试中没有尽到责任,甚至敷衍了事,这将会把测试工作交给用户来完成,很可能引起非常严重的后果。

自信心:自信心是现在多数测试工程师都缺少的一项素质,尤其在面对需要编写测试代码等工作的时候,往往认为自己做不到。要想获得更好的职业发展,测试工程师们应该努力学习,建立能“解决一切测试问题”的信心。

“五心”只是做好测试工作的基本要求,测试人员应该具有的素质还很多。例如测试人员不但要具有团队合作精神,而且应该学会宽容待人,学会去理解“开发人员”,同时要尊重开发人员的劳动成果——开发出来的产品。

案例:测试人员首先要学会尊重自己

软件测试人员首先应该尊重自己的劳动成果——软件缺陷报告。我见过很多测试人员都不能清晰地描述一个软件缺陷,尤其分不清缺陷跟踪系统中SummaryDescrīption的区别,例如图2-2中的软件缺陷描述——SummaryDescrīption中就输入了完全一样的内容。

严格的讲,Summary通常用于概要性地描述软件缺陷内容或者发生问题时的现象,主要用于项目经理进行缺陷分配,因此要用最简短、精悍的语言来描述是什么缺陷,使项目经理很快明白是什么问题、应该分配给哪个开发人员;而Descrīption则用来描述缺陷的详细信息,通常描述缺陷的重现步骤,主要供开发人员修改缺陷时候查看。图2-3就是一个非常规范的软件缺陷描述。

软件缺陷报告是测试人员最直接的劳动成果,因此应该认真地描述自己所提交的每一个软件缺陷,这也是尊重自己劳动成果的一种表现。缺陷描述不清晰,不但将会增加沟通成本,更重要的是不会得到开发人员的认可与尊重。测试人员在为开发人员的成果——产品找问题的同时,也要保证自己的成果没有问题。

因此,作为测试人员首先要学会清晰、准确地报告一个缺陷,这将是与开发人员互相赢得对方尊重的开端,也是尊重自己的表现。试想,如果自己都不爱惜自己的劳动成果,那别人如何会尊重你的成果呢?

1不规范的软件缺陷报告

2规范的软件缺陷报告

4软件测试职业展望

实际上,测试工程师如果按照前面的要求打好基础,职业前景是非常广阔的。我们可以借鉴一下国外测试工程师的职业发展历程,很多时候,国内的软件都是跟着国外的发展趋势,测试行业也一样,国外至少比国内起步早1520年。

与国外的专业测试工程师相比,国内测试工程师突出特点是晋升非常快,2-3年可能走完了国外10年的路。实际上有很多测试(部)经理也就23年的工作经验,而在国外,测试工程师很多至少会有5年以上的开发经验。在国外,通常测试工程师会经过下面的职业发展历程:

1.初级测试工程师

主要是计算机相关专业的本科生或具有一些手工测试经验的个人,主要工作内容是开发测试脚本并开始熟悉测试生存周期和测试技术。我们国内的大多数工程师都在这个水平上,这也是我们软件质量上不去的一个重要原因。

2.测试工程师/程序分析员

具有1-2年经验的测试工程师或程序员,主要职责是编写自动测试脚本程序并担任测试编程初期的领导工作,进一步拓展编程语言、操作系统、网络与数据库方面的技能。国内的高级测试工程师的水平比这个级别还要略低些。

3.高级测试工程师/程序分析员

具有3-4年经验的测试工程师或程序员。帮助开发或维护测试或编程标准与过程,负责同级的评审,并为其它初级的测试工程师或程序员充当顾问。继续拓展编程语言、操作系统、网络与数据库方面的技能。其能力相当于国内的测试负责人。

4.测试组负责人

具有4-6年经验的测试工程师或程序员。负责管理13名测试工程师或程序员。担负一些进度安排和工作规模/成本估算职责。更集中于技能方面。

5.测试/编程负责人

具有6-10年经验的测试工程师或程序员。负责管理810名技术人员。负责进度安排、工作规模/成本估算、按进度表和预算目标交付产品。负责开发项目的技术方法。为一些用户提供支持与演示。开发一些特定领域的技术专长。

6.测试/质量保证/开发(项目)、经理

具有10多年的工作经验。管理8名或更多的人员参加的1个或多个项目。负责这一领域(测试/质量保证/开发)内的整个开发生存周期业务。为一些用户提供交互和大量演示。负责项目成本、进度安排、计划和人员分工。

7.计划经理

具有15年以上开发与支持(测试/质量保证)活动方面的经验。管理从事若干项目的人员以及整个开发生存周期。负责把握项目方向与盈亏责任。

国内测试工程师早期的发展和国外有些类似,基本遵循从初级测试工程师到中级、高级测试工程师,再从测试负责人到测试经理。但是接下来就很难提升,很少有测试工程师发展成为IT企业的技术总监,主要原因就是技术能力不够。

5小结

测试工程师要想突破职业发展瓶颈,就应该充分了解各个职业发展阶段的技能要求,并在每个阶段打好基础。职业瓶颈往往是个人能力达不到要求的直接体现,因此测试工程师应该按照“五心”的要求发展自己,尤其要充满信心!

最后送各位测试同行一句:打好基础,不断学习!唯有学习才能永远不败!


TAG:

木香测试园 引用 删除 cuidan131860382   /   2009-03-11 11:39:52
5
天道酬勤 自强不息 引用 删除 thefirstred   /   2008-01-22 16:10:00
测试专业技能

现在软件测试已经成为一个很有潜力的专业。要想成为一名优秀的测试工程师,首先应该具有扎实的专业基础,这也是本书的编写目的之一。
“本书”?还有后续内容?
引用 删除 synli_wen   /   2008-01-22 15:42:42
UP
happybbh2008的个人空间 引用 删除 happybbh2008   /   2008-01-22 12:20:38
分析的非常到位,目前我就存在其中说到的问题,要想冲破瓶颈就要苦练基本功.
 

评分:0

我来说两句

Open Toolbar