软件测试两年经验,感觉这两年成长还是不错的,主攻性能测试,望有相关 共同理想的朋友一起探讨交流职业路~

【转】:软件测试职业发展三步曲之二 - 如何做优秀的测试工程师

上一篇 / 下一篇  2010-10-16 11:59:48

想必能浏览此文的朋友也该是软件测试从业人员了吧,不管您今天的职位、年限、收入如何,大抵上,也必然是从软件测试工程师做起的吧!这么多年过去了,当了N久的测试工程师,今天不妨跟叶某人一起反思一下,如何才能当个出色的测试工程师呢?

    这里不谈工程师的级别,什么初级、中级、高级、资深等;这种东西是每个公司内部自己评定的,没有标准。我想说的是,既然入了软件测试这一行,就有必要想想,咋样才能爱上这行呢?如果您抬杠说根本不爱这行,那何必进入这一行呢?是你自作孽,是对自己人生的漠视和不负责任!如果还没爱真正爱上而是渐渐适应的地步,那有必要一起来分享此文了!

【软件测试知识体系】

    叶某在2006年写过一个小结,来说明该话题。

我的相关日志
2009-08-18 | 软件测试从业者职业发展助手

    本人从事的一直是WEB系统的行业软件测试,所以该列表总结的也是针对电信、通信、物流、保险、金融、ERP等这种行业软件,其它领域如游戏、手机、嵌入式软件的测试,恕本人无知了。

我想,关于通用软件测试的知识体系,大概分成以下几类:

  1. 软件测试理论与方法
  2. 行业知识
  3. 外语
  4. 自动化测试技能
  5. 性能测试技能
  6. 开发编程技能
  7. 数据库、中间件、网络知识
  8. 测试辅助工具使用技能

    首先是软件测试理论与方法。这些就不用多说了,就像盖房子,得知道砖、水泥、锹、铲的作用和用法一样。但是,我想额外提醒的是,我们不该把眼光只关注在测试用例设计、缺陷跟踪报告、白盒/黑盒测试概念上,而应该拓展视野,花些时间理解CMM、CMMI、RUP、Agile、BPT等,从软件工程整体角度去思考测试工作,这也是想升职做测试经理的必备。

    然后是行业知识。一般来说,当你不想把自己塑造成一个典型的技术类人才,而又没有升职做管理者的意愿,那么在我所谓的制造、电信、通信、物流、保险、金融、ERP等里从事业务测试工作,还是个不错选择。而如果连公司所在行业的业务知识都不懂的话,那可真难为你了!因为连最基本的测试用例设计、手工测试执行你都可能不合格!如此,公司解雇你或将你转岗只是迟早的事情了。也许你觉得夸张,但是我觉得很正常。理论上讲,软件测试是处于软件工程这条产业链的下游环节,所以很多时候处于被动角色,正如很多朋友慨叹:我们不掌握项目的时间、任务、资源、需求,却要保证质量,这不是天方夜谭嘛!的确,现实就是这么严苛!我们不能硬着脖子和老板说“测试人员不是用来保证质量的!”或“需求要么不明确要么没有,让我们测试乜?”,因为如果对话能解决问题,就不至于钓鱼岛问题至今未决,巴以冲突至今如滔滔江水--连绵不绝了!这就是个强权社会,谁的拳头大谁说的算!在行业软件供应商的产业链里,就是客户说的算!所以,优秀的测试工程师就是能在最短的时间里设计出最有效的用例,覆盖软件尽可能多的路径来验证软件最有价值的特性!别忘了任何工程学科谈到“质量”概念的时候,都是与时间、成本三维图示出现的,这是个天经地义的事情!而软件测试里也有名言说“没有穷举的测试”和“测试是在有限的时间里发现尽可能多的缺陷”等。那么如何做到呢?答曰:需要雇佣最了解需求的测试人员!因为除了制定需求的业务分析师,就是具有行业背景和知识的测试人员了!尤其在制造、电信、通信、物流、保险、金融、ERP、互联网等这些行业里。纵有天大的本事、熟练使用各种测试设计方法的人,在特定的行业软件面前不懂业务,也很难设计出优秀的用例。因为太多的企业和个人经验告诉我们,对于不掌握终端用户实际使用行为的测试覆盖,都只是学院派+浮光掠影式测试!相反,如果能做个出色的业务测试人员,在这样的企业里还是蛮有竞争力的嘛!举例来说,一个赤身裸体的求职者想在这些典型的行业软件领域里从事测试工作,掌握测试基本原理及方法论只是穿上了“内衣”而已;要出去见人,还要把穿上“行业知识”这层外套;现实就是这么残酷,这世道不包装怎么过活!而如果想光明正大的穿梭于熙来攘往的人潮而不摔倒或拒进某餐厅吃饭,就要掌握如下的一些绝技了!!!

    接着是外语能力,我想是行业所趋。谁都知道计算机这种高科技的东西是西方人先搞起来的,就算咱在国内的本土公司做测试工作,也不得不学习一些新技术新理念。围绕着软件工程行业的不断革新,咱做测试的自然也要与时俱进去吸收新的营养;那么看英文资料就不可避免了!如果您已经在外企工作,自然要掌握足够的听说读写能力来应付项目进度的安排,需求的变更和测试文档的编写了。

    接下来是大家常谈的自动化测试、性能测试等技能。我在本系列文章的第一曲中做过详细说明。想在技术路线有所突破的朋友,或许可从这几个技能类型去设计自己的未来蓝图。

    记得2006年写此文的时候,我就预计未来会有专职的自动化测试与性能测试工种出现在软件测试行业里。而今天,很多外企、国企也验证了此设想。随着行业的细分,每个工程师都有必要掌握这2种技能或之一,以面对未来软件测试行业发展所带来人才需求变化。不然,可能真的是想跳槽都不敢跳喽!

    然后是软件开发编程的技能。按照软件质量模型,一个软件具有六大特性、二十七个子特性需要测试;但这是学术层面,而根据现实中软件企业对软件质量的要求,无非三大类:功能、性能、安全性;所以软件测试也分成功能测试、性能测试、安全性测试三大类。按照对该三类软件测试类型的实现手段来说,功能测试主要分白盒测试黑盒测试;性能测试和安全性测试虽也有白盒要求,但主要还是黑盒的系统层面,然后根据测试出来的性能问题或安全问题去通过技术手段解决。因此,无论是黑盒功能性自动化测试,还是纯粹的白盒功能测试,还是性能测试、安全性测试,都需要一定的编程能力。很多人凭兴趣学习了一些工具后突然发现难以进一步提高自己或在企业实际应用,多数情况就是因为作为测试人员,开发编程能力欠缺!不了解被测试系统的开发技术,不能写程序或脚本去使用各种用例设计方法去实现测试,你的竞争力何在呢?

    再次是数据库、中间件及计算机底层平台知识,包括操作系统、网络、拓扑设计等。如今的行业软件大抵上都是WEB系统或与CS架构结合的双模式,但是作为悬浮于计算机系统的应用软件来说,基本上都是要靠上述这些基础架构来实现的。那么要对其进行充分的测试,不懂这些技术怎么行呢?当然根据不同的职位需求,掌握的深入也不尽相同。对于常规的功能测试,掌握数据库基本操作、中间件基本安装配置也够了,例如可以通过独立搭建被测试系统的测试环境来验证自己的这方面技能,然后根据需要深入学习下去。而对于专业的性能测试和安全性测试人员来说,这些知识要尽量深入学习和挖掘下去;即使今天你感觉自己在这方面的技能还好,那么未来的软件系统的设计模式进化,也会驱使你继续下去,例如云计算、WEB3.0等。

    最后是一些辅助工具的使用经验,如需求管理工具、测试管理工具、缺陷管理工具、配置管理工具等。这些东西是我们做测试工作的日常平台,使用上说来简单,但是我觉得通过学习这些工具的设计思想来提高自身对软件测试过程及整体软件开发流程的改进相当有用,尤其那些使用广泛、成熟的商业工具。

【软件测试工程师非智力素质】

    大家都知道,成功人士的成功秘诀是30%的智力因素加上70%的非智力因素。上边说了作为软件测试工程师的基本技能,这里来谈谈那些情商素质。人类文明的发展到到今,以追求经济增长为唯一目的的国家崛起或企业发展,都是建立在对地球资源的无情攫取基础上的;尤其这20年,计算机行业的竞争异常激烈,激烈到每个从业者稍不留神就可能丢掉饭碗!也许你说这太夸张,但是由于软件测试行业在中国仅有十余年历史,最老资格的测试人员也无非30多岁,所以行业的起步晚使我们多数人还没意识到未来这行也会象其它传统行业一样撕破脸皮的去争去夺一个就业机会!相信关注时事的人从近年的国际金融危机和中国大学生就业难、公务员考试等社会问题中,或可知晓,软件测试行业对从业者的要求也是愈加苛刻;而若干年后,我们这批没有竞争力的测试工程师们或被迫改行或被迫转岗的日子必将如期到来!这样合理吗?我也觉得不合理!但是地球人口的持续增长而又没有战争、饥荒等手段来缓解人类的贪婪、享受等欲望,那么自然会出现劳动力过剩、行业竞争大进而生存压力大、贫富差距大等现象!看看美国、日本天天用各种卑鄙伎俩来搞中国就可想而知,政治的背后就是他们对利益攫取的驱使!当然中国也好不到哪里去,富者怕失去富裕,穷者怕变得更穷;所以要竞争!机会就这么多,能源就那么多,当然谁先得谁占上风,瞧瞧南海问题就是中国下手晚了吧!

    不说这些信口开河的话了,我要说明的意思就是“行业竞争是天然,优胜劣汰是天道”!想想我们自己搞IT的,多少人天天加班装勤奋,多少人放低自尊、泯灭个性的去讨好老板,多少人面对再不公平、再不正义也忍者神龟的样子,就能了解大家过的多苦!还不是为了不失业,还不是为了买个房子,还不是为了老婆孩子过的好点,还不是为了对得起儿时那些梦幻般的宏伟人生构想...

    但是事物永远是辩证的!残酷的竞争推动了人类文明的发展,企业的剥削推动了国家GDP的加速,个人的艰辛换来性情的成熟、思想的解放和拼搏进取的不死意志!既然改变不了天道,那就只好适应天道了!对于如果成为优秀测试工程师的非智力因素,我不想再说“思维细腻、眼光敏锐”、“责任心强”、“善于团队合作”等这些基本原则,既然是“基本”原则,自然应该必备。这里我要说的是:

  • 积极的态度    

    积极的态度,是相对消极来说,是面对软件测试日常工作中一些不合理、不正规、不可行等种种困难的一种心态!众所周知,象制造、电信、通信、物流、保险、金融、ERP这种行业软件公司里,除了微软IBM、EMC等这种顶级巨头企业外,多数公司都面临着很多共性的问题,例如需求不完备,需求变更频繁,项目进度紧、任务量大,人员配备不足,责任不明确等等,尤其那些ON-LINE为客户服务性质的软件供应商企业。那么,作为测试工程师来说,是不是因为这些就抱怨呢?因为上游环节没做好就不开展下游的测试工作呢?是要消极怠工吗?是要推卸责任吗?这些当然不可取!一个成熟的测试工程师,应该拿出积极的、乐观的、正面的心态勇于面对困难、克服困难、提出困难、解决困难!因为你的一言一行都被项目组同事看在眼里听在心里,尤其你的上司也会因此怀疑是你的能力欠缺吗,是找借口吗,还是在挑战领导层的决策和能力呢?也许说者无心,但是长期下去,你会给大家一个爱抱怨、眼高手低的印象,这就怪不得绩效考核的时候评分低了哦!也许你会反驳说,这样脆弱的领导和同事,我还不喜欢和他们共事呢!玩笑开大了,哥们!我说过很少有软件公司按照正规的CMM或V模型做软件的,不要被那些学院派的理论洗脑洗糊涂了!换句话说,如果一个企业真的做到环环相合、尽善尽美,那还要专业的测试团队干嘛呢?殊不知,纯理论上讲,在足够充裕的时间内,一个软件需求、设计、开发做的完美,是可以不需要测试的或不需要专职测试的!所以,也许我们做测试的价值恰恰在于此。那么究竟该如何做到积极的态度呢?我也不是人生哲学的导师,只是根据我的个人经验:在遇到种种问题时,于情于理的,不带任何主观感情色彩的,以摆事实讲道理的方式和团队说出这些困难,如果能提出改进或解决意见自然最好。好的团队、好的领导也该鼓励这样的方式,营造这样的氛围,给员工一个合理的通道来宣泄或释放这些困难产出的心理压力和对企业信心的重构建!记住,说出你的困难,由整个团队为你做后盾;但切忌不要开会不说、背后乱说哦;那样就是大嘴巴乌鸦、人见人烦的小人啦!这里还有另外一个误区,就是有些人性格较内向,确实从不抱怨,却是任劳任怨。这也不好,在人与人如此微妙的社会关系中,做软柿子自然挨捏、被欺负,也许逐渐大家都习惯于把事情分配给你而坐享其成了!等有好处的时候,别人也未必想着你呢!所以,成熟的测试工程师是外柔内刚,既有真才实学,又谦虚朴素,既能但当大任独挡一面,又会让团队成员都知道他的才智和高风亮节!如果不信,可以想想自己公司里那些混的好并且一直好的人,大抵如此!早年我做培训的时候,常引用我们老板一句话:态度决定习惯,习惯决定性格,性格决定命运!没有比这更浅显的道理,也没有比这更精辟的人生哲学了!如果你今天看了俺老爷们这番话,还不热血沸腾的思考一下自己曾经的表现,那么你就是拿自己的前途当儿戏,拿自己的青春开玩笑,拿自己的人生当赌注!这个游戏太荒唐,这个玩笑太幼稚,这个赌注太巨大,你输不起,我们谁都输不起!就算待到3000年转世成个天才,成个傲视一切的绝对强者,但是此生——你是这个世界最最平凡的人,平凡的可以被任何人忽视,因为你自己都对自己不负责任,谁还能对你有所义务呢?

  • 主动的意识

    主动的意识,是相对被动来说。在企业管理里,多数工程师的工作是由上级按照项目进度、任务范围被动分配的。因此,做好这些本职工作,及时、高效、保质的提交任务成果是最基本的职业能力。这里我不想探讨你的上司是否合理的分配工作,因为这是他的能力素质问题;我还是想侧重工程师的角度,作为我们测试工程师,如果大家都只是被动的接受工作、被动的执行工作,那么如何区分你是否优秀呢?所以我认为要在工作中拿出主动的意识,包括这样几点:

  1. 主动的汇报。这是作为工程师被动接受工作后,及时、快捷汇报工作进展和成果的良好习惯!大家都是成年人,多数领导者并不喜欢家长式的询问、跟踪甚至盯着每个人的进度,时间上也不允许这样做;而我们工程师也不喜欢被询问、被盯着的感觉。而一旦有执行环节中的问题没有被及时暴露出来,就不只是工程师的责任了,可能涉众就广了!所以很多企业采用日报、周报的方式跟踪工作进度,是很自然的手段。我想额外提一点,作为员工尤其新员工,向上司主动做月度、季度汇报,是个非常好的习惯;本人刚毕业那会儿就是这么干的,可参见叶赫华早期博文。
  2. 主动的总结。多数的公司都有项目组例会,而我们多数的年轻人并不喜欢主动发表个人意见,甚至有人采用“事不关己 高高挂起”的消极态度或者干脆抵制、抱怨这种会议形式(也许是中国人都比较含蓄吧,我共事过的外国同事还是蛮积极的参加各种会议的)。我觉得应该调整这种心态,如果因为开会时候没什么可说的,那就是因为平日没有做工作总结。作为工程师把工作中出现的问题,经过个人的独立思考而记录下来,并在项目会议中大胆、明确的说出来并且能提出改进建议,这是优秀员工的必然通道;而作为测试工程师,我们更应该拿出细腻的感情、强烈的责任心去总结软件质量、开发过程、工作模式等等方面问题,然后在合适的场合表达出来,我想每个正常的软件公司都喜欢这样的员工吧!
  3. 主动的沟通。除了项目会议这种常规的场合外,作为好的工程师,我们可以找机会主动和上司和领导层交流个人想法和改进建议。毕竟项目会议是人多嘴杂,探讨的问题还是有针对性的、是当前面临的;而私下和领导层交流心得,一方面有增进感情的因素(这很必要,尤其大企业,一个部门几十人,我们终日被小主管带着,部门领导甚至跨部门领导很难熟悉或认识你);一方面只要你讲的是为工作本身负责,并且经过深思熟虑,哪个称职的领导者都会非常欢迎这样的做法、喜欢这样的员工的;而最重要的一方面,通过这样的机会,你也许说出了领导者长期想到而未决或者干脆未想到的细节,也许趁此机会你可以堪当大任了;就算不立即升职加薪,你的这种行为和素质已经大大增加明年绩效考核的砝码了。说的再直白一点,历史上不管是奸臣还是忠臣,只要受到皇帝重用的人,且不谈其人品、权谋,有一点很重要,就是臣子替君王分忧了;从当代管理学来说也一样,如果你要升职,就要在目前职位想到或者做到上一级所该想、所该做,如此升职不远矣!看看那些商道节目、书籍,学学成功人士的经验,就想想“如何敲开领导办公室的门”吧,朋友!
  • 勤奋的学习

    其实这一点是其它三点的基础。我们多数的测试工程师能够通过面试进入所在企业,说明已经具备当前职位的技能必需;但是我们的话题一直围绕做优秀的测试工程师,那么如果自己没有充分的真才实学,上述的积极态度、主动沟通包括下边的充分分享,就没有底气了。试想,一个团队里每个人能力都差不多,谁也没有起到带头作用,谁也没有突出特长,没有出类拔萃,大家都吃大锅饭,这样的团队自然没有战斗力,士气自然不足,提升的空间也小的可怜!而作为领导者,也没有信心去跟大领导申请更具挑战的工作,如此大家都是和尚撞钟式的工作了,长年累月,人员流动、消极怠工在所难免!领导者要改变这样的局面,可以通过分享、激励的方式;而作为工程师,我们要勤奋的学习、踏实的积累,才能在机会来临的时候不至于恨苍天、妒人意!

    那么究竟学习什么呢?就是我前面【软件测试知识体系】里说的呀,哥们!哪里有短板,就学哪里,在通用行业软件领域里,掌握全部这些知识体系就已经是高手高高手了,再也不用怕失业了,也不用怕没竞争力了;当然,想发挥它们需要个好的舞台,那就是人生际遇问题了,看是否你能遇到个伯乐了,跟个好领导、好团队也很重要,有个导师式、朋友式的上司,一方面工作开心些,另一方面在职业提升上少走弯路;命矣!天意!

    学习技巧,我不想多谈。提几个原则吧!

  1. 软件测试行业要求知识面广,所以要多读书、看资料
  2. 当你选择了某个具体职业路线后,再深入的学习下去
  3. 常写博客总结自己是个好习惯
  4. 多和业内高手交流,再结成朋友,对求职也有利
  5. 多去www.51testing.com 和www.qaforums.com    
  • 分享的精神

        前边我讲过,要做一个优秀的工程师,不仅个人具有真才实学,还要有个好人品,偷笑 ,所谓“德才兼备才是王者”!“任我行”任老前辈说过“有人就有仇恨,有仇恨就有江湖,人就是江湖!你怎么逃避?”应该说,IT由于行业的特征决定了从业者们都是精英或伪精英们,起码大家都是受过高等教育的人,也就是说都是聪明人!一堆的聪明人在一起呢,就会搞事;再加上IT行业的竞争激烈造就了整个行业誓要你死我活,否则就要丢单、关门、倒闭,所以整个行业文化决定了内部的员工们也要拼,也要抢!再加上IT公司多数规模不大,多数人不可能进入IBM、Microsoft、Oracle这种大公司而受雇于本土或外资中小软件公司里。试想,庙就这么小,人人想当大佛!咋办?又不能战争,又不能犯罪,又得争到自己的利益,于是乎明争暗斗、唇枪舌剑、流言掣肘、暗箭明枪就满天飞了,就像古代后宫争宠、皇子争位的故事一样丑陋,也像天下大乱、三国争雄的故事一样波澜壮阔!有人斗的头破血流、黯然离去,有人卧薪尝胆、期待东山再起,有人忍辱负重、不惜自贬身价作践自己、甚至把灵魂出卖给魔鬼......还有人,装作不谙世事,处处低调,想在“众神”中压低自己,不陷入派系之争,尽力在时间的洪流中做个尘埃,可惜最后也难于自保、落难草寇!唉,想起来就郁闷,不过写起来很兴奋! 大笑 

        其实,现实工作中不会有我写的这么夸张。但这是人性的问题,人性的二个特征就是贪婪和争斗!只是每个企业文化的熏陶问题,争斗的多少问题!虽然软件测试这种技术工种可以一定程度上逃避这些群魔乱舞的局面,但是要在保持自我个性的同时又要免于牵连到某个阵营并赢得多数同事、上司的好感,也就是最初说的“德才兼备”就不容易了。作为优秀的测试工程师,做到开放的分享很有必要。技术活动其实并没有什么大不了,只是别人掌握的快慢问题,因为大家的智力都差不多,如果对自己的技能、技巧持保守、封闭的态度就不可取了。把自己的所学、所问、所思、所辨、所行分享给别人,一方面加深自己的理解,也锻炼了自己的表达能力;另一方面让别人获得学习的捷径;再者对团队的战斗力也有所贡献!久而久之,你在团队、公司里的正面形象就树立起来了;每个人知道你是个有本事也乐于分享的人!殊知,树立一个好形象很难,但破坏一个好形象太易了,要改变一个人在企业里的形象并得到认可,难上加难!

        而分享的概念,从做人的角度来说,有其更大的含义。我前边说了那么多企业、群体的争斗,既然我们不能以消极避世的思想去规避这些,因为哪个公司都多少有些勾心斗角的龌龊人和不平事;唯一让自己可以相对“超凡脱俗”的办法,就是和大家都保持合作、分享的态度,但是不丧失原则性和自尊自爱。古语有云“君子和而不群”,说的就是这个道理。从政治角度看,中国政府提出的“求同存异、和平共处、永不结盟、永不称霸”的外交理念是一脉相承的!!中国人讲究以和为贵、天人合一,所有这些以尊重事实、与自然和谐相处的原则,才是做人、立身、处世之道。

       最后,我愿和软件测试同仁们一起,从自我开始,保持一颗开放、坦诚、细腻的胸襟,融入团队中,时刻提醒自己注重细节,从自我学习,向他人学习,工作中让自己起到示范作用,为整体团队士气的营造、团队风气的构建贡献价值。实话说,每个人能力都差不多,能力偏差不大,成功、优秀都是相对的、并带有主动意识形态的概念,起决定作用的往往就是这些非智力因素。做到这些一点都不难,这个世界,没有人比自己更了解自己的不足,但是没有人可以估计出自己的潜在能量,只要你有毅力,有魄力,就能做一个积极向上、充满激情、活力四射的年轻人!正如诗曰:
          天下风云出我辈,
          一入江湖岁月摧。
          皇图霸业谈笑间,
          不胜人生一场醉!

      作者:叶赫华  2010年10月   上海


  • TAG:

    芙蓉 引用 删除 彭芙蓉   /   2010-11-29 15:01:05
    5
    dancaimingzhu的个人空间 引用 删除 dancaimingzhu   /   2010-10-17 14:46:30
    太赞同了!老师我要好好向您学习,踏踏实实的工作。
    xiemojia的个人空间 引用 删除 xiemojia   /   2010-10-16 23:14:33
    叶赫华,你的文章,怎么说我也要顶一顶,每篇都很经典
     

    评分:0

    我来说两句

    日历

    « 2024-04-24  
     123456
    78910111213
    14151617181920
    21222324252627
    282930    

    数据统计

    • 访问量: 441209
    • 日志数: 75
    • 图片数: 1
    • 建立时间: 2009-01-08
    • 更新时间: 2012-10-04

    RSS订阅

    Open Toolbar