不同类型的软件公司,对测试工作的重视程度也有很大不同。建议测试人员选择一些业务持续发展的公司。做项目东一榔头西一棒的公司,是不需要高质量的测试的,他们需要的是尽快把软件交出去,却无法静下心来思考,怎么把质量做好。选择这样的公司,要冒相当大的风险。
接下来说一下大家关心的话题,如果选择了测试,怎么能从测试团队中脱颖而出呢?经常被提出的概念有“管理和技术两条路线”,这个概念太抽象,还是无法帮我们理清思路。有的观点认为,测试要学习开发技术,这个也没有说到关键点上。我认为测试人员的职业发展有下面两个,换句话说,软件企业最需要拥有这两种能力的测试人员。注意,这两种能力并不互相冲突。
第一、不断改进测试策略,提高测试效率和质量
第二、能够“吃”业务,控制业务的测试质量
【这篇主要是讲了测试人员应该提高的两种能力,但是对测试人员的职业规划,只提了一句:将来发展为技术性,或者管理型。】
--------
【下面这篇给出了一种成长体系,和需要掌握的知识,但我觉得这是很单一的体系,衡量标准也未必适用于任何公司。不过这些知识掌握住肯定还是好的。】
初级测试工程师––入门级,具有一些手工测试经验,开发测试脚本并开始熟悉测试生存周期和测试技术;
测试工程师––能够独立编写自动测试脚本程序并担任测试编程初期的领导工作,进一步拓展编程语言、操作系统、网络与数据库方面的技能;(但具体应该是哪些方面呢?)
高级测试工程师––帮助开发或维护测试或编程标准与过程,负责同级的评审,并能够指导初级的测试工程师;
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)测试管理者。(技术+管理),哪方面薄弱就补哪块。多多听取别人的意见,改进自己身上的缺点。
不管做任何事,都要有目标。有了目标,就会坚持到底。否则。。。。。