软件测试

来源:互联网 发布:苹果txt听书软件 编辑:程序博客网 时间:2024/05/08 03:15

一.测试高端人才定义

葛优在《天下无贼》里那句话说得好,“21世纪最缺的是什么?人才!”

君不见“我国软件测试人才缺口已达20万、30万、40万”之类的新闻频频见于报端,各类测试工程师培训机构如雨后春笋般冒出,测试工程师已经成为各大招聘网站中最热门、活跃的职业之一。

测试工程师的进入门槛看似很低,实际上要做一名合格的、高层次的测试工程师并非易事。而目前国内的测试领域最缺的就是高端测试人才。

那么,到底什么是高端的测试人才呢?

于志伟用围棋中的段位形象地向记者做了说明。“10个测试工程师中有5个可能是业余级别的最高段位。他们不是专业级别的。”于志伟进一步描述说,“类似业余级别的一般测试人员更关注‘测’,对测试工具运用得淋漓尽致。如果发现了BUG,该测试人员会兴高采烈地跟开发人员说有一个BUG,但是开发人员也不知道应该怎么修改处理。为什么呢?因为该测试人员有本事把BUG找出来,但对BUG的描述不到位,也就是不能告诉开发人员这个BUG具体是什么,究竟是什么原因造成的等细节。他们不能提供一个合适的路径让开发人员直接找到BUG。开发人员还得来回测才能确定BUG。可见,这样的测试人员只是一个找BUG的高手,但是他不能解决问题。”

“要做好软件测试并不容易。软件测试是一个终生的职业,越老越吃香。”郑人杰认为,行业业务经验的积累和专业测试能力的提升,是成就一个出色的软件测试工程师的两个同等重要的条件。

于志伟认为,目前,软件测试领域最受关注的都是工具的应用等具体测试问题,而高端测试人才更应该关注如何做好从测试需求、测试计划、测试流程、测试执行,到将测试结果很好地展现在报告上,进而追踪问题,并最终解决问题的全过程。

同时,高端测试人才还要有更先进的理念,即不只是关注测试,而是要更加关注软件质量。“也许有时候及时发现了BUG也不应改动,因为它对客户体验没有影响,而改动后会带来更大的影响,并增加成本。但怎么判定这个BUG该不该动呢?现在市场上缺的就是能够做出正确判断的高端测试人才。他们具有先进的理念,掌握科学的方法论。”于志伟分析说。


  

  1.初级测试工程师

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

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

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

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

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

  4.测试组负责人

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

  5.测试/编程负责人

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

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

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

  7.计划经理

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


二  国内职业发展

软件测试工程师职业生涯阶段发展方向分析:

  由于新时代下国内软件测试行业目前的发展迅速、需求旺盛,在国内的软件测试职位晋升一般要比国外快,但因行业本身太年轻,大家对软件测试中软件测试职业的发展了解不够,从而导致许多有志在此发展的年轻人举步不前。所以下面介绍一下海外公司成熟的软件测试行业职位分布情况,我国一些在软件测试行业中处于前端的公司与之也相仿,这可以作为软件测试 职业规划 的参考,给新人一个导向。

  第一阶段:(测试员)初级测试工程师

  自身条件:初入行具备计算机专业学位或一些手工测试经验的个人。

  具体工作:执行测试用例,记录bug,并回归测试,通过qtp等测试工具录制回归测试脚本,并执行回归测试脚本。

  学习方向:开发测试脚本并且开始熟悉测试生存周期和测试技术。

  第二阶段:(测试工程师)程序分析员

  自身条件:有1~2年工作经验的测试工程师或程序员。具有初步的自动化测试能力,完善自动化测试脚本。

  具体工作:设计和编写测试用例,编写自动测试脚本程序且担任测试编程初期的领导工作。

  学习方向:拓展编程语言、操作系统、网络与数据库方面的技能 。

  第三阶段:(高级测试工程师)程序分析员

  自身条件:有3~4年经验的测试工程师或程序员。具有一定的行业业务知识,储备系统分析员的能力。

  具体工作:帮助开发或维护测试或编程标准与过程,分析软件需求,获得测试需求。确定测试需求相应的测试方法,获得测试策略方案。参与同行的评审(软件需求,软件测试计划等),并为其它初级的测试工程师或程序员充当顾问。

  学习方向:继续拓展编程语言、操作系统、网络与数据库方面的技能。

  第四阶段:测试组负责人

  自身条件:有4~6年经验的测试工程师或程序员。具有丰富的行业业务知识,具有系统分析员的能力,专长性能测试。

  具体工作:负责管理1~3名测试工程师或程序员。集中于技能方面,担负一些进度安排和工作规模/成本估算职责。分析性能瓶颈的原因,为开发团队提供bug解决策略。

  学习方向:性能测试,测试技能

  第五阶段:(资深安全或性能测试工程师)测试/编程高级负责人

  自身条件:有6~10年经验的测试工程师或程序员。

  具体工作:负责管理8~10名技术人员。性能测试整体方案设计,软件系统性能问题定位和性能优化,内存优化及分析数据溢出等,分析系统的安全漏洞等。 负责进度安排、工作规模/成本估算、按进度表和预算目标交付产品。负责开发项目的技术方法。为一些用户提供支持与演示。

  学习方向:开发一些特定领域的技术专长

  第六阶段:测试/质量保证/开发(项目)、经理

  自身条件:有10多年的工作经验。

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

  第七阶段:(公司级质量总监)计划经理

  自身条件:有15年以上开发与支持(测试/质量保证)活动方面的经验。

  具体工作:管理从事若干项目的人员以及整个开发生存周期。负责把握项目方向与盈亏责任

  职业生涯规划是人生的大事,下面我结合亲身经历,谈谈自己的观点:

  step1:校园阶段 (毕业前1年~1.5年)

  很多人的 职业规划 是到了工作以后才开始进行的,其实,这样做,有很大的局限性。凡是工作过的人,都有一个体会,就是自己的第一份工作,会影响到5~10年的发展轨迹,甚至会对一生产生影响。因此,选择一份合适的工作作为起点,是必须要在校园内思考清楚的问题。

  由于中国的教育基本是理论教育,大家在工作前的实践能力大多比较弱,固然有其不足,但也有好的一面,那就是可塑性比较好。可塑性好代表了选择的余地可以很大,因此,大家在选择第一份工的时候,要充分结合自己的教育背景、个人能力、兴趣爱好、长期目标等等,作出理性的决策。

  软件测试,特别是黑盒软件测试是一种入门起点较低、上手迅速、且发展空间比较大的职业,因此,对于很多学生而言,作为进入IT就业的初级岗位,是非常合适的。

  校园阶段的规划,主要是选择大的入门方向,当然,此时也可以给自己一个长期的目标,但是不必规划过细,因为,在没有入行前,一切都还未知,把握好路线即可。

  下文假设大家选择的是软件测试~~

  step2:入门阶段 (入行后3个月~1年)

  对于刚刚入行的新人,这个时期是一个全面熟 悉期,最能够学习到新的知识,也最有拼搏的热情和动力。建议大家可以借着这股冲劲,尽可能了解所在领域的全貌,了解各个主要分支的内容、特性、优势、局限性等等,并考察自己当前的工作环境,结合个人匹配程度和兴趣爱好,根据前述内容调整自己的规划。 
  对于测试行当而言,技术方面一般有几类:黑盒测试、白盒测试、自动化测试、测试工具、专用业务技能等;相关的管理方面一般有:测试管理、质量管理、项目管理等。 
  面对上述形形色色的方向,建议大家可以都稍稍了解下内涵,然后确定1~2个,作为中长期的主攻方向,达此标准,基本已经实现了入门,至于能否进得厅堂,就要看后期的努力了。 
  step3:提高阶段(入门后3年~5年) 
  对于入门后选择管理还是选择技术,其实这种问题,是无可无不可的,关键是看对自己的长期的定位了。不过,我个人建议当前阶段还是技术为重吧。毕竟,在一个技术环境中,要做好管理,没有扎实的基础,也难服众嘛。 
  本阶段是人最容易懈怠的阶段。毕竟,刚刚入行的热忱早已被日复一日的繁复工作给冷却,有了一定的工作经验,胜任本职,对于大多数人而言,绝不是问题。家庭、娱乐方面开始占据了业余生活的主流。可是,毕竟大家还很年轻,大多数人此时也不过20多岁,就此懈怠也是非常可怕的。因此,有规划的提高自身核心竞争力,在这个时候尤为关键。  
  提高是要提高的,但是对于大多数人而言,也没有必要很拼搏,此时处在一个比较稳定的职位上的你,可以考虑进行细化自己的中期规划了。根据选定的方向,制定一个自我提升的计划,并定义好自我检查的里程碑(譬如:每个季度或半年算一个阶段),每天或者每周,有规律的学习一点即可。抱定一个目标——“每天进步一点点”,几年一大成不是问题。 
  我个人是反对急功近利的,倾向于稳打稳扎,这个阶段忌做“万金油”,而应努力成为有一技之长的专家”。 
  对于选择做技术的人而言,这个阶段的达成标准,一般至少要能够熟悉你所选技术方向的大多数技术细节,“细节决定成败”嘛,虽然把握全局的能力是必要的,但是作技术而言,倘若不能钻的很细很深,恐怕也很难以高手自居吧。 
  对于选择做管理的人而言,我个人倾向是:此阶段接触管理的理念,并可以介入管理,但是此阶段不宜全面进入管理(除非你有更深层次的考虑,可以不去稳打稳扎)。学习管理的理念是非常重要的,其实管理更多一种思维和做事的方式,这门学问很深入,也不像技术,会不会是那么的显著,因此,建议多看多学,取长补短,并努力形成自己的做事风格。高级软件测试工程师,测试组长等,都是不错的含有技术特征的管理职位,此时的你应该能够胜任于此。 
  这个阶段的达成后,你也可以跻身老手行列,不必为求职犯愁,你应该可以很容易跳槽或时不时被猎头骚扰下,达成此阶段,你要做更深入的规划。 
  step4:升华阶段(老手后5年~10年) 
  此时的你,即将步入中年,不论是曾经专注技术还是偏爱管理的,都面临着家庭和社会的双重压力,你不可能像年轻人一样整天拼搏了,你需要稳定,因此,不能频繁的跳槽,建议考虑比较正规且有潜力的企业,要考虑给自己一个长远的发展规划。 
  正因为有前期的细节的背景的支撑,此时,你需要努力提升自己的宏观把握能力。哪怕做技术的,也要考虑适当的转型管理(中国特色是:工程师很难超过35岁的,一般人到了30岁不是转管理就是转商务了)。当然,一般人是技术做得越好,管理的时候,越容易切中项目要害。但是,对于从技术上来的人,关键是要开始培养和人打交道的能力。此阶段的关键是,需要逐步形成自己的管理风格,具备协调并行事务的能力。 
  当然,纯管理和技术型管理还是有所区别的。对于纯管理的人,熟练应用管理的科学理念,形成自己的风格尤为重要。纯管理的测试经理人,不仅仅可以做好测试方面的管理,其实也可以做好项目甚至其他的管理。其实,不管管理的对象是什么,它们的管理理念还是相通的。从测试管理中摸索出来的很多经验,可以很好的推广于其他的管理领域。而对于技术型管理的人,主要是带好技术团队,同时,不断补充新的技术知识,跟紧技术潮流。此时的你,有强大的技术背景支撑,不需要过分钻研细节,只需洞察核心,合理安排好你的团队成员即可。 
  这个阶段,也可能少数的人会选择离开具体的企业,而开始从事测试咨询,那是一个充满挑战的崭新开始,也必须有前期的积累方能胜任。 

但是,国内的测试人员多数在测试圈子“打转转”,很难进入到开发领域。多数测试人员发展成测试经理/高级测试工程师后,职业化几乎到了尽头。

实际上,这一切的根本原因是由测试工程师的能力水平决定的。国内测试工程师普遍根基不牢,自然难获得较大的发展。下面将从测试工程师的基本素质谈起:只有那些基础知识扎实、潜质较好的测试工程师才是合格的工程师。

  后面紧接着分析了测试工程的一些必备的素质和知识,还是比较全面和客观的:

  (1)计算机专业技能

  ◇ 测试专业技能

  ◇ 软件编程技能

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

  (2)行业知识

  (3)个人素养

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

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


  
原创粉丝点击