zoukankan      html  css  js  c++  java
  • 【转】 测试人员的职业规划 --整理标注

    不同类型的软件公司,对测试工作的重视程度也有很大不同。建议测试人员选择一些业务持续发展的公司。做项目东一榔头西一棒的公司,是不需要高质量的测试的,他们需要的是尽快把软件交出去,却无法静下心来思考,怎么把质量做好。选择这样的公司,要冒相当大的风险。

    接下来说一下大家关心的话题,如果选择了测试,怎么能从测试团队中脱颖而出呢?经常被提出的概念有“管理和技术两条路线”,这个概念太抽象,还是无法帮我们理清思路。有的观点认为,测试要学习开发技术,这个也没有说到关键点上。我认为测试人员的职业发展有下面两个,换句话说,软件企业最需要拥有这两种能力的测试人员。注意,这两种能力并不互相冲突。

    第一、不断改进测试策略,提高测试效率和质量

    目前很多公司的测试还是以手工的黑盒测试为主,测试策略比较单一,可能很多同学都遇到在写测试计划的时候,测试策略那一章不知该写什么的问题。如果只做黑盒测试,会在提高测试质量的路途上出现一道难以逾越的鸿沟。
     
    改进测试策略需要掌握开发技术,但是技术仅仅是必要条件,更重要的能力,是能够系统的规划一件事情,分析工作中的问题,选择最有效的解决方法,最终和大家一起实现一个共同的改进目标。
     
    改进测试策略一般会考虑以下几个方向:单元测试(白盒和灰盒)、自动化测试、性能测试、安全性测试、易用性测试等等。当然,具体的改进目标,要根据业务的不同,选择合适的方向。
     
    不过,很多测试团队的人力资源都比较紧张,无法投入太多的人手去改进测试策略,能够很好的解决这一矛盾就显得非常重要。公司需要的是,能够根据测试团队的当前状况,制定出有效的改进计划,并带领大家提高测试效率的人。

    第二、能够“吃”业务,控制业务的测试质量

    这里需要说明,“吃”业务并不等同于熟悉业务。对于测试工作来说,熟悉业务是非常重要的,大部分测试人员上岗以后,都会从了解业务开始,逐渐的掌握产品线的业务规则。但是,当一个测试人员熟悉了某个业务以后(成为业务专家),问题出现了:他/她可能会一直陷在这个业务的测试执行中,无法解脱,几年如一日的做着类似的工作。
     
    即使增加了新的测试人手,业务专家也没有感到多少轻松。一方面,业务专家要周而复始的对新人进行培训,解答他们工作中的问题,培训成本极高;另一方面,业务专家不放心把重要功能交给新人测,必须自己来测试,业务专家的职业发展出现了比较尴尬的局面。
     
    由此我们提出了“吃”业务的概念,它与熟悉业务最大的区别就在于,测试人员吃掉一个业务以后,可以把测试工作完全交给另一个测试人员来做,同时,也能保证测试的质量。而要达成这个目标,关键就在于文档。我们需要以业务为单位,完善测试用例、业务沉淀、测试设计、测试脚本等文档,并且,更重要的是,要把这些零散的文档组织成一个系统的文档体系。
     
    注意,吃业务并不等于为这个业务单元编写一套非常完整的文档,而是建立起一个基本的,可持续维护的文档体系即可。业务专家吃完一个业务以后,可以把这个业务交给其他人,然后开始吃第二个,同时,关注原先的业务的文档完善过程。这样,有吃业务能力的测试人员,能管理更多的业务需求和测试人员,而且由于他/她接触的业务越来越多,工作的视角也会逐渐提高,成为系统级的测试工程师和团队leader。
     
    要设计这一文档体系,也需要较好的系统设计能力,当然,最主要的是持之以恒的毅力。另外,每个业务单元的文档体系,也可以在一批批的测试人员中传承,每个人都会来维护、完善它,并从中学到很多经验。
     
    【这篇主要是讲了测试人员应该提高的两种能力,但是对测试人员的职业规划,只提了一句:将来发展为技术性,或者管理型。】

    --------

    【下面这篇给出了一种成长体系,和需要掌握的知识,但我觉得这是很单一的体系,衡量标准也未必适用于任何公司。不过这些知识掌握住肯定还是好的。】

          初级测试工程师––入门级,具有一些手工测试经验,开发测试脚本并开始熟悉测试生存周期和测试技术;
          测试工程师––能够独立编写自动测试脚本程序并担任测试编程初期的领导工作,进一步拓展编程语言、操作系统、网络与数据库方面的技能;(但具体应该是哪些方面呢?)
          高级测试工程师––帮助开发或维护测试或编程标准与过程,负责同级的评审,并能够指导初级的测试工程师;
          Team Leader––一般具有5年左右工作经验,负责管理一个小团队。负责进度安排、工作规模/成本估算、按进度表和预算目标交付产品,负责开发项目的技术方法,能够为用户提供支持与演示;
           测试经理––能够担当测试领域内的整个开发生存周期业务,能够为用户提供交互和大量演示,负责项目成本、进度安排、计划和人员分工;
           计划经理––具有多年纯熟的开发与支持(测试/质量保证)活动方面的经验,管理从事若干项目的人员以及整个开发生存周期,负责把握项目方向与盈亏责任。  【这是走管理型的路线了】
    职业规划:

    1.第一阶段,学习自动化测试工具,学会编写脚本;
    2.第二阶段,学习编写测试计划,测试方案,测试用例;
    3.第三阶段,学习配置管理,版本控制,项目管理,bug管理;
    4.第四阶段,转向做一个管理者.


       
    技术方向就沿着测试开发的路一直走下去.最终成为技术上的大拿,在一个公司里成为核心技术人员
    这个方向对技术的积累要求最高,适于那些对管理没什么兴趣,就想专心做技术的人。要沿着这条路走下去,需要一直不断地在开发能力上的积累,并且还要求一定的知识广度和对职业的独特理解。
    管理方向呢,工作个几年以后转向测试经理,以后的发展就多样了,质量总监项目经理等等
    有些人说做管理不需要技术,却没想过作过一个技术工作,自己都不会的东西怎么去管理别人,当然也有例外,有些管理人员也的确是靠自己的人格魅力去让一个团队健康发展的。不过那只是极少数罢了。大多数测试管理人员也是需要在技术上有一定积累的。而且对于所有工作都一定要比较熟悉,黑白盒,自动化,性能,用例设计,配置管理,计划方案的设计等等,并且还要去调合团队内部的工作氛围,制定适当的激励机制,作为一个管理者绝不比一个技术人员需要积累的东西少。

    流程控制大概是选的人最少的,QA累死不讨好,最终成为一代终极流程控制顾问
    这一类工作需要有非常大的耐心和自信,需要在工作中对流程控制方面有自己的感悟,需要对理论很熟悉。对人的毅力也是个极大的考验呢
    其他的,还有做用例做到极至,做功能测试做到极至,做用户体验做到极至的等等,总之各种发展方向者需要努力的坚持,任何一个方向做好了都很好。

    如果你是测试员或是高级测试员,有志转向管理发展,那么需要加强以下几点:
    1. 测试计划的编写(要结合测试的项目,能以此来控制和确定测试所需人员,设备及时间来管理测试时间)
    2. 要熟悉BUG跟踪工具及软件测试流程.(如: TD, Bugzilla, CQ等)
    3. 要熟悉配置管理工具. (如: CVS, VSS等)
    4. 要熟悉自动化工具.(例如:WinRunner, QTP, Robot, RFT, Automation等,能结合录制完的脚本编写代码)
    5. 要熟悉压力及性能测试工具.(例如: LoadRunner, webload, silkperformance等,能结合相关数据,分析出性能瓶颈)
    6. 要熟悉或精通一门语言. (例如: Java, C++)
    7. 要熟悉数据库.(例如: Oracle, DB2, SQLServer, MySQL)
    8. 要熟悉主流操作系统. (例如: HP Unix, IBM AIX, Sun Solaris, Red Hat Linux, SuSE Linux, Windows)
    9. 能用英文流利的和老外交流以及往来Email.
    10. 语言表达能力强,表达问题清晰明了.
    11. 沟通能力强,能和上级/开发经理很好的达成测试相关/BUG事宜.
    12. 学习技术的能力要强,能快速上手一个新的技术.
    13. 乐于与人交流.

    【我觉得以下不怎么靠谱,不过可以一看】
    初级测试工程师:刚走出大学校门或者刚从些培训机构出来的学员,之前没有或具备很少的测试经验,这个阶段主要是掌握最基本的测试方法、测试计划、测试用例、测试报告、环境搭建等。北京上海地区,该职位薪水一般在2000-5000之间。
    中级测试工程师:从事过2-3年实际工作的测试工程师,能够独立制定测试计划,编写测试用例,对初级测试工程师进行指导等。北京上海地区,该职位薪水一般在4000-6000之间。达到中级测试工程师水准后,以后的发展可以存在多种方向:
    --》管理方向:
    测试组长:一般5人以下团队,能够同时承担2-3个较小项目(程序代码在5000行以下)或者1个中、大型项目(程序代码在5000行-25000行左右)。北京上海地区,该职位薪水一般在5000以上,好的过万。
    ------------》测试经理:可以管理多个小型测试团队,能够承担多个中型及较大型项目的测试,及具备至少1个大型项目(程序代码在25000行以上)的测试管理能力。该职位薪水一般过万,年薪二三十万正常。
    ------------》质量经理/项目管理:跳出测试的执行转而关注过程。SQA待遇差别比较大,但有2年以上测试或开发经验的人5000以上应该没问题,好的也过万。
    --》技术方向:
    白盒测试:这个由开发人员转过来的比较多,一般技术上要至少达到技术经理的水准。待遇比较好,一般7k以上,好的年薪二三十万。
    自动化测试方向:熟练使用一种以上自动化测试工具,做的好的待遇与白盒测试有的一拼,一般6k以上,不过最近学的人多了,待遇贬值可能比较快。
    测试分析师/技术总监:主要职责是对系统的测试结果进行综合的分析,例如缺陷分析、性能分析等。不但测试技术能力较强,还要具备数据库、操作系统等多方面的技术知识。这个待遇一般过万了吧.
    行业测试专家:物以稀为贵,过万一般问题不大。
    经历了以上一些阶段,大概在35岁左右,职业发展上基本达到瓶颈,此时只要混的不是很差收入一般可以算的上中产阶级,日子可能依然过的比较郁闷,之后的方向可能有做培训,咨询,自己开公司创业等。


    入测试行已有五、六年,谈谈自己的规划和一些想法:
    一、自己的规划:
         做了几年之后,积累的了一些行业经验(电子商务型,电信通信行业)和管理经验(指的是测试管理),毕竟是女孩,这么多年一直都在不断地学习各种技术,总怕落后。时间长了,感觉还是很累,感觉比做开发累。所以将来的方向是:走管理路线。(当然这条线也不好走,但是做了2年管理后,感觉在这方面有一定能力,只要努力就一定会成功的)
    做好测试:主动性强,有信心,能听取接纳别人的意见。
    二、对于测试新手来说,如何入行,需要具备的知识和能力
    1、测试的基础理论知识,知道测试流程是什么?测试的常用的文档有哪些,该如何编写?测试方法有哪些?
    方法:去一些测试论坛(如:51testing,测试时代,3atesting,一起测试网等)找些资料来学习。或者买一些测试的书籍。再有也可以参加测试培训。
    2、要熟悉或精通一门语言. (例如: Java, C++,.net,VB,PB,Dephi),做到能读懂代码。当然能独立编写代码更好。
    方法:学习一种比较流行的语言即可,因为时间有限不可能学很多开发语言。学习的过程一定要给自己制订时间计划,而且语言这东西最好结合实例来学习,主要学习设计思路。

    3、要熟悉BUG跟踪工具.(如: TD, Bugzilla, CQ等),学习一种即可,主要能领悟出bug的处理流程是什么,如何管理。
    方法:到网上看资料,装上工具适用。
    4.   要熟悉配置管理工具. (如: CVS, VSS等),会一种即可,当然有时间的话,2种工具都会更好。
    5.   精通OFFice系列工具,排版能力强。测试中经常会写文档,所以这方面要强。
    6、 要熟悉数据库.(例如: Oracle, DB2, SQLServer, MySQL),对一种数据库精通就可以了。
    7、要熟悉主流操作系统. (例如:   Red Hat Linux, Windows)
    8、需要增强的能力:
    学习能力强;表达能力强;耐心,细心,信心,责任心;能承受压力;沟通能力强。
    以上这些,都是需要下功夫的,不能做表面功夫,那样的话,就算你入行后,会发现自己要学的东西会很多。
    三、入行后,要学习的知识和能力:
    1 、公司的文化和制度
    2、熟悉业务,这块很重要,需要认真对待。
    3、熟悉公司的开发流程和测试流程。
    4、业务熟悉后,将自己所学的知识运用到实际工作中。提高自己的测试水平。
    5、培养自己的沟通能力,与业务相关的所有人都能很好的沟通。
    6、工作中遇到的问题及解决措施要及时总结整理。
    7、针对公司的项目或产品选择适合的自动测试工具,帮助公司提高测试效率。
    这一阶段重在:熟悉业务,熟悉工作流程
    四、入行半年——1年后,要学习的知识和能力
    1)提高编写用例的技巧。
    2)熟悉一种单元测试工具。(针对公司的项目或产品使用的开发语言而定)
    如果公司这块一直都是开发人员来做,暂且跳过。
    3)熟悉一到两种自动化工具。(功能类和性能类的,如:WR,QTP,LR,ROBOT等)
    建议:学习工具的话,一定要结合实际的项目,这样学得快而且效果比较好。
    4)熟悉一种测试管理工具。
    (呵呵,为以后做测试管理者打算)
    5)了解新业务,开发的新技术。
    这个阶段的重点:就是提高自己编写用例的水平,工具的使用。
    五、 多年以后,相信自己都自己的目标了。
    1)如果做专职的性能测试工程师:精通一种性能测试工具,并能分析出瓶颈。(这点我没做到)(这些需要提高多方面的知识:服务器,中间件,开发,数据库等)
    2)如果做自动化测试工程师,精通一种自动化工具,并能独立编写脚本,了解一些最新自动化测试方面的技术。
    3)测试管理者。(技术+管理),哪方面薄弱就补哪块。多多听取别人的意见,改进自己身上的缺点。
        不管做任何事,都要有目标。有了目标,就会坚持到底。否则。。。。。

  • 相关阅读:
    10分钟教你用VS2017将代码上传到GitHub
    【算法】C++用链表实现一个箱子排序附源代码详解
    【智能算法】粒子群算法(Particle Swarm Optimization)超详细解析+入门代码实例讲解
    【C/C++】10分钟教你用C++写一个贪吃蛇附带AI功能(附源代码详解和下载)
    【python】10分钟教你用python如何正确把妹
    【python】10分钟教你用python一行代码搞点大新闻
    【python】10分钟教你用python下载和拼接微信好友头像图片
    3. powerdesigner 生成mysql脚本,要求字段、表名有注释
    5. 回填表格复选框
    14. js字符串截取substring用法
  • 原文地址:https://www.cnblogs.com/chenxiaomeng/p/9400642.html
Copyright © 2011-2022 走看看