软件测试前景和发展方向

软件测试职业规划的思考

前言

     入软件测试行至今已经8年多,承领导们的信任与重用,同事的支持与信任,我的职业发展算是相对较好,从入行到各类测试技术岗位,再到测试总监,每一步都刚刚好。最近在自身职业发展瓶颈,人生十字路口,静坐反思,重新审视个人规划与测试人员发展的这个问题,问回自己:你为什么做软件测试工程师?胡思乱想之下有了此文。

 

一、软件测试起源

网上有一些经典的软件事故,大家感兴趣可以自己搜索一下,我搜了几个列举如下:

简单总结:软件出现缺陷(BUG)导致经济或其他损失,因此有了软件测试。

由此可知软件测试目的:发现缺陷(问题),发现至今未发现的缺陷(问题)。

注:有兴趣的可以去找找国内的两个事件:温州动车事件,2013年8·16光大证券乌龙指事件

 

二、测试行业现状

  • 每年测试人员大量涌入,但需求仍大于供给

国内各种测试培训机构、软件测试网站的增多,质量意识的提升,软件测试人员已成为IT一个重要的职位,涌入的人也越来越多。但互联网+的概念,传统行业转型互联网,公司业务量激增,创业风潮,人员流动等缺口依然会有。

  • 测试在各公司地位不一

通常分两种情况,一大多公司重生产岗位(研发等),测试属支撑部门,话语权低,而测试为软件最后出口,所以通常背锅(承担责任)会比较多,需要平常心,并积极主动推进流程优化。另一类,有成熟的质量体系的公司,会以产品质量为先,用户至上,会实际关注测试质量,相对是比较理想的公司。(其他变种类型暂不予参考) 

  • 测试人员能力参差不齐:

测试门槛低,入行容易,导致很多专业知识不够扎实,只懂得一些表面上测试技术。学习的技术浅且杂,多注重工具的使用,思想的培养建立较少,不关注工具为什么要用,何时用,仅仅是为了高薪资而学,为了KPI而推广。

SFRJ的技术总监就曾与我谈论过这个问题,我大约的观点是你招人的目的是什么,像之前我的团队有技术专家,也有偏重活跃气氛,组织活动,沟通管理等,咳咳,扯远了。

  • 薪资差距较大:

拿1-3年软件测试的来说,低的2K-8K,高的8K-20K,各种因素影响:比如个人背景:名校毕业,硕士博士;比如地域企业:北上深广,华为BAT;比如测试专业领域:自动化测试、性能测试、安全测试;比如创业风潮:互联网、无人机、金融、AI等。

 

所以努力提升自己,争取脱颖而出抢滩那20%专家精英的位置。

  

三、测试行业前景

回到文章开头的问题:你为什么做软件测试工程师?这也是我面试招聘时常问的一个问题,梳理回答大约可以归为两类:

  • 其一,大概意思是喜欢测试这个工作;
  • 其二,IT工资高,想搞IT,但不会编程,测试门槛较低。

 非常倾佩喜欢测试工作的同行们,我也是因为喜欢计算机,测试门槛低才加入测试大家庭。后面喜欢上享受测试带来的成就感,享受独自定位问题那种喜悦的心情。我简单梳理了几个软件测试职业的特点,以供大家参考。

软件测试职业特点

  • 入门快,薪酬高
  • 学历门槛相对较低
  • 市场需求大,就业竞争小
  • 职业生涯寿命长,发展空间广阔 
  • 无性别歧视,女生有时胜过男生

软件测试基本内容

  1. 尽可能发现缺陷
  2. 尽早发现缺陷
  3. 提升发现缺陷的效率

软件测试岗位

软件测试工程师,部分公司提升为质量保障工程师,赋予了更多的工作职责,但我们今天主要讨论基本的工作。按我自己的理解,对上文工作内容与现有的技术职位做了下对应(仅举例但不限于以下职位)

  1. 功能测试工程师,性能测试工程师,安全测试工程师等,根据业务的不同,比如WEB测试、H5测试、APP测试、SDK测试、接口测试等
  2. 集成测试工程师,白盒测试工程师,QA配置,资料审核等
  3. 自动化测试工程师,测试开发工程师,测试工具开发等

 

Findyou:

一般来说,3-5年是非常抢手的一波同学,相对新手多了一些经验,相对5年以上的能沉下心踏实做事。

当然技术不是以入行时间为标准的,但是你想每天从海量的简历筛选人员,HR或者司或多或少会有这样一个简单的门槛参考。也常有比如2年工作经验,会的内容甩5年的几条街。关键精力在哪,成就在哪

今天逛了下几大招聘网站,深圳性能测试、安全测试现在基本18K+,自动化基本15K+,北京上海的更高,可以定时去各大招聘网站查看一下行情。

改天抽时间弄个数据爬虫,去招聘网站抓取分析一下出个报告。

 

四、测试职业规划

     凡事预则立,不预则废。"先定个小目标,比如挣它一个亿",比如"当上CEO迎娶白富美走上人生巅峰",然,人各有志,所追求的理想不同。无从下手时,我们先通过搜索引擎看看,看看其他人的建议。

职业规划(来源网络)

  • [1~2年],测试技能:熟悉整个测试过程及产品业务领域,学习和掌握自动测试工具,学习测试自动化编程技术;开发和执行测试脚本,承担系统测试实施任务;学习编程语言、操作系统、网络与数据库方面的技能。
  • [3~4年],测试过程:深入了解测试过程,掌握测试过程设计及改进,参与软件工作产品的同行评审;进一步了解产品业务领域,改进测试自动化编程技术,能指导初级测试工程师;加强编程语言、操作系统、网络与数据库方面的技能。
  • [4~5年],测试组织工作:管理1~3名测试工程师,担任任务估算、管理及进度控制;进一步培养在软件项目管理及支持工具方面的技能。
  • [5~6年],技术管理:管理4~8名测试工程师,提高任务估算、管理及进度控制能力,完成测试规划冰制定测试计划;研究测试的技术手段,保持使用项目指导及支持工具的技能;用大量的时间为其他测试工程师提供技术及过程方面的指导;开始与客户打交道并做演示推介。
  • [6~12年],测试管理:管理8名以上测试工程师,负责一个或多个项目的测试工作,与客户打交道并做演示推介;保持使用项目管理及支持工具的技能。

 ---出自《软件测试质量保证》


     其实已经都非常详细的步骤了。需要有所发展取决于三点:业务技能、专业技能(测试技能)、管理技能。通过对自己这三方面的评估,综合选择自己要走的道路。以下是我简单做的一个发展路线:

测试岗位路线

  • 管理:IT做管理,技术深度与广度都会有一定要求,基本管理技能为主,专业技能、业务技能为辅。管理者不懂技术,很难服众。因此,技术沉淀是必须的。在一步一步往上爬,人生目标指日可待。

  • 技术:Findyou说技术在手,随辞随走!开玩笑的,但有技术不愁没工作,当然人品还是要的。

  • 建议技术高薪方向:白盒测试、自动化测试、性能测试、安全测试,当然有机会走管理也别放过机会,毕竟管理薪资不低哈。

转岗其他路线

  • 方向选择:很多入行测试只是过渡。由测试岗位的锻炼,涉及到软件各个岗位的接触。此时转岗容易不少。比如业务技能强、市场敏感度、洞察力厉害的建议产品经理、运营方向;比如喜欢编码加班,咳咳,是喜欢与机器打交道建议研发、运维方向等;喜欢与机器打交道的可以走运维、研发路线。喜欢与人沟通的可走销售、HR路线。

  • 建议高薪方向:自行看图(拉勾发布的2015-2016薪酬报告)

  

 

五、我的核心竞争力是什么?

 原本是自己的思考,不知不觉写了这么多,这是我问自己的第二个问题?不想拘泥于各种模型,按思考与想到的方向随意列了几个点。

  • 学历:肯定不是,大公司本科学历是硬性要求(最低标准),我如是211?985?硕士?博士?海归?,那肯定找个idea,大胆去路演融个资,自己搞公司。

  • 过往经验:Maybe,8年、10年测试经验,相对有一些竞争力。

  • 影响力:人脉比不过BAT,往上拓展相对不易,思想层次、长远眼光等必须得跟得上,这些年耳濡目染连爬带滚勉强能跟得上。横向拓展无,而之前精力投入到了工作,没时间,婉拒了第三方APP测试培训讲师的兼职,因此同行影响力无(同事另说)。

  • 学习能力:Maybe,一直有学习的习惯,但碎片化的阅读掌握不深,造成知识面广而不精。与SFRJ的技术总监他给了我一个观点,“人精力有限,有精通两项技能是比较合理的规划,建议我走专家管理型”,我比较认同。

  • 专业技能:Maybe,测试领域知识的在不断深入,测试思想的也在不断提升修正。当然为了专业性不再只是限于测试领域知识,需要了解开发语言缺陷、了解算法优劣、了解驱动硬件特性、了解各操作系统机制、优化流程制度、定制测试工具、及时预警风险等,因此,我还有很长的路要走。

  • 管理技能:Maybe,虽一直在管理岗位混着,是否勉强入门不得而知,但起码带的团队能高效运作完成任务,离职率也很低。不过,对于彼得德鲁克的管理哲学,吴伯凡老师的中西文化,马云老师的大众励志等,形成自己的系统理论还有非常长的路。知识拓展固然重要,但学以致用才是王道。而能保证团队的正常运作生产是根本目的。

  • 沟通能力:谁知?技术交流居多,闲扯也有,因处管理岗,现变得倾听居多。沟通技巧满大街都是,比如建立同理心什么的,虽然套路得人心,但IT厚实单纯的人占大多数,尽可能保持真心实意的沟通,才能问心无愧。


非常出色GWC的HR D(Franny)对我用能力素质模型进行了评估,评估给了适合管理方向。

我自己的梳理其实基本完成,也有了大致的方向与想法,期待今年的发展。

 

六、浅薄的建议

 又是跳槽招聘季,咋们这行公认涨薪不如跳槽加的快。不建议频繁跳槽,履历不太好看,当然不排除有喜欢这类的公司。前面那句是废话,所以随心而为吧,下面阿旺给出的小小的建议,适用就采纳,不适用看完就丢:

  • 跳槽原则:

要么符合你预定的规划发展路线,要么就高薪,否则没事不要乱跳,当然实在呆不下去另说。

  • 面试建议:
  1. 理解透JD(职位描述),了解具体的工作内容,针对性准备知识点。

  2. 了解自己简历内容,基本技能知识点,过往项目,项目熟悉程度(要求画个架构图、流程图很常见)。

  3. 简单复习一下基本理论,功能、自动化、安全、性能。

  4. 背熟一俩个实例备用,比如你写有精通性能测试,写的哪个项目,具体执行:基本指标含义,性能标准,项目背景,如何制定计划,何时执行,报告输出等(调优这个太难,慢慢来)。如果你做假了,请做得专业一点,网上实例背熟吧,虽然我不建议如此做。

  5. 找找网上泄露出的面试题,看看招聘职位下其他应聘者的评论,去各QQ群里找找在这个公司的同行等。

  • 为面试短时间了解一门开发语言:

1、了解语言的特点

2、知道顺序、循环、分支

3、字符串、文件的处理

4、数组处理

5、网络通信、异常处理

6、面试题

 

《软件测试员---你的路在哪里?》:

http://www.cnblogs.com/fnng/archive/2012/05/22/2512378.html

  前些天写了《软件测试员---你的路在哪里?》 我有提到,我问了一下大我几岁朋友的薪资,他的薪资处在我划分的第二阶段的中间,情绪变得比较消极。

  他告诉我,你跳到第二阶段了,但再往上走,想有一个薪资的大跨度很难,需要的时间也相对比较长。然后,我就把测试员的路划分了三个阶段。虽然划分了三个阶段,但我并不知道如何跨越到第三个阶段。自己也处于非常迷茫的状态。 希望能得到有用的回复了评论,但大多回复说到努力做好现在,埋头学好技术。这些是必须的,单就测试技术来说,多了去了。总要给自己找个比较明朗的方向和目标吧!不然,你是想一切随缘呢?还是想等着柳暗花明呢?
 
   先说一位网友在群里发了一篇颇长的文章,大概意思是讲功能测试一样可以做到很牛。注意,我这里的“功能测试”是狭义上的功能,因为一切的软件测试活动都是为了保证软件功能的正确运行。而我这里所说的功能测试是偏向于“手工”测试吧。这篇文章里大讲特讲,功能测试员不单单是找功能上那些简单的bug 。更要从需求和架构上发现隐藏了问题。我不否认他的正确性。但身为一个天朝的测试员,你一功能测试员管这么“宽”,你让拿着更高薪资的需求分析师和架构师情何以堪啊。
   而且,在国内我没发现有特么牛的单单就会功能的功能测试专家。我想他们都应该转行去做需求分析师了吧!说上面这些是想告诉你,想在国内通过功能测试(狭义)达到第三个阶段很难。
       后来群里讨论了一下,在这里要感谢“拙文”的指点,大我两岁,他已轻松跨越到第三阶段,表示毫无压力。唉!这就是人与人的差距。

   自己思考了一下,把进阶到第三阶段分为三条路。白盒测试、自动化测试、性能测试。(从广义上来讲,白盒测试与自动化测试也属于功能测试
   

   注:可能你也早知道这三个方向,我这里对这三个方面做个分析,如有错误,欢迎指正!以免误人误已。呵呵!

 

 

  白盒测试:

 

  在我们大多测试员看来,这是个非常高级的工作,好多人视其为测试工作的终极目标。其实,它并没有想象的高级与神秘,只是我们一般的“初级”测试员不懂开发,自认为比开发低半头。如果能测开发人员写的代码,那自然是件不得了的事儿。呵呵!

      其实,开发也就那么回事儿。你看看那么多的培训机构,甚至有承诺你只要是理工科专业的,半年都能教会你开发,收入还三到八K之间。他们还教你有项目经验,一个大点的项目做几年的都有。他们就半年还让你有项目经验。其实,也是把比较基本的东西教给你,不会的函数会查文档,工作之间会遇到开发各种各样的系统。那也需要一个长期的学习各积累的过程。说这么多就是想告诉你,开发不难。下面看一下白盒测试需要掌握哪些技能:

      首先,懂得一门开发语言是必须的,代码都不懂,如何写测试代码。是吧!不过,你是否疑虑开发人员写了个100行的代码,你可能可要写200行有代码来验证开发人员100行有代码是否正确。不用担心,有测试来框架来帮你呢?像java的测试框架有JUnit、testNG ,C++测试框架有CPPUnit、Unit++等等,基本上现在流行有语言都有相应的测试框架。所以,在熟悉了一门语言之后,你需要精通一门测试框架。

     白盒测试,你需要做不仅仅是单元能测试,只真对开发人员的每段代码进行测试。而且,在相当多的时候,单元测试是由开发人员自己完成的。你还需要做集成测试。多个单元代码放到一起之后,你需要对这个集成小模块进行测试。你还需要进行接口测试。现在的系统相当复杂,各种子系统或模块之间需要相互调用彼此的接口。相关,集成测试与接口测试,本人未接触过,所以,知之甚少。哈哈!

   

     自动化测试:

 

     这里的自动化测试主要指的功能自动化测试,你是不是立刻想到了QTP,他只是个自动测试工具而已,QTP不等于自动化测试,如果你已经会用QTP录制回放脚本,那只能算刚入门,用QTP的朋友都知道,要想QTP玩的比较深一点,那么你必须学习VBS脚本语言。

      看到好多公司的一腔热情的扑在自动化测试上,但投入了大量的成本,收效甚微,这个主要是他们的一没自动化经验,二没分析系统是否适合自动化测试。但这并不妨碍自动化测试技术进住公司。还有大把的公司在尝试自动化,因为它后期真的可以节约不小的成本。呵呵

     下面来看想做自动测试的人员需要哪些技能。
      除了QTP外,自动化工具很多,另一个比较有名的是selenium,他支持多种语言,java、php、C# 等等。如果你要自动化的项目是C/S的,那么你需要对weindows组件了如指掌,因为你要用语言操作这些组件。不过,现在的大多项目都是基于web端的。在这里想说一下现在的前端开发人员真的好悲剧,以前就一个IE6,现在各种各样的浏览器百家争鸣,我们要兼顾到各种浏览器。在这里说声“你们辛苦了!”,不急,身体web端的功能自动化测试人员,你也是个悲剧。因为前端的技术你都要会,前端技术发展的很快,各种绚丽的新组件,最近比大火的HTML5技术,因为你要用自动化捕捉这些组件的属性。所以,你要面临的问题很多。道路很曲折。

 

 

     性能测试:

 

     如果前面两个你感觉有难度,要不咱再看看性能测试。总有一款适合你的,哈哈!

      这个我会,我会用loadrunner,QTP都不等于动能自动化测试,你认为loadrunner会等于性能测试!?测试工具只是性能测试过程中的一个部分,虽然,是必不可少的一部分,但性能工具的选择也很多,比如,JMeter和webLOAD都是相当出色的性能测试工具。

     其实,说性能测试工具是测试过程中不可缺少的一部分,那是在现在,过去还真不是。在那个没有性能测试工具的年代,银行测试人员组织员工,准备个几十上百台电脑,领导一吹口哨,员工狂点鼠标。不要笑,真有此事儿!扯远了。呵呵。

      看到现在市面上仅有的几本性能测试书都是基于loadrunner工具来讲的,这里多少有点误人的感觉。唉!

      这里纠正你一个观点,你要测试的一个系统是一个整体,所以,你要对一个系统的整体都非常了解。你要给一个人看病,你只会看头痛,可病人是肚子痛,你死盯着病人的头研究,怎么能找到病人问题的所在。当然,你可以找看肚子的医生来协助。但看肚子的医生可以会误导你对病人问题的判断。所以,你要向古代的华佗学习,什么外科,内科,男科一人完搞定。为什么讲这个?因为下面我要说的东西你可能会认为不是做性能测试要学的内容。

 

      服务系统:现在的系统有台是用windows的?所以,要学习linux/unix,不说精通也要熟练。因为你在性能测试的简历上常写搭建测试环境,莫非~,是winddows的测试环境?安装各种服务要会,查看监控系统性能,对系统几部机制也要有所了解。

     数据库:至少要熟悉一种大型数据库,对数据库使用,调优!性能出了问题,不要死盯程序,也许是数据库设计不合理或出现有性能问题引起了。你要会分析数据库。

     中间件:中间件是系统与服务器的中间载体,要对中间件的机制性能有所了解。常见的中间件有tomcat、weblogic等。

     软件系统:唉,这里又要扯开发的东西了,不过不用像白盒测试那样精通。

     系统架构:为什么要学习架构的东西,同样是几块木板,可以做成坚固的大楼,也可能做成风一吹就倒的鸡窝。不了解系统架构如何进行测试,如何进行性能分析。

     其它,网络知识,因为网络环境也是测试中很重要的一部分。协议,常有发现自己用loadrunner录制了半天没录到东西或无法回放。这八成是协议选错了。

 

----------------------------------------------------------------------------------- 

     上面讲的三个方向,你能做的其种一项工作,那么你突破到第三阶段毫无压力。所果,在那项工作中小有所成,那将前途们量了。呵呵!在写完这篇博文的时候,我就给自己定下了目标。关于每项工作所需要的技能我也略有阐述。但不是很明确。因为,我不是过来人。但有了目标总是好的。你呢?

 

 

大概在五年前,我写了一篇博客,题目叫《软件测试员----你的路在这里!》,大概论述了软件测试人员发展的几个方向。

      如果你不想转开发,转管理,转产品,或自己创业买煎饼果子的话。那么说明你是对测试是真爱。测试需要掌握的测试技术太宽泛了,所以,我们必须要选择一个方向。五年过去了,我想再试着写写对这几个方向的认识。

 

自动化测试

 

  自动化测试有广义和狭义之分,广义上一切使用工具或代码来代替手工测试都可以认为是自动化测试;不过,在测试圈中,我们一般狭义的来理解自动化测试,基于UI层的自动化测试技术。

      如果想做好自动化测试,我觉得测试人员应该达到一般开发人员的水平。如果是名普通的Web开发人员,想做好本职工作需要掌握一门编程语言 + Web框架 + 数据库;如果一名普通Web自动化测试人员,想做好本职工作需要掌握一门编程语言 + 单元测试框架 + selenium(注 :Selenium已经成为了做Web自动化的不二之选了)。Web开发人员想进一步提升,可能需要学习代码重构,设计模式,SQL设计与优化。Web自动化测试人员想进一步提升,也需要学习代码重构,设计模式,基于Selenium的二次封装等。

      所以,在我看来一名合格的Web自动化测试基本上等同一名Web开发人员的水平。只不过,后者写的是功能代码,前者写的自动化测试代码。

      除此之外,还有接口自动化、移动自动化等,基本上也等同相关开发人员的水平。

 

性能测试

  性能测试,相信每个测试人员都或多或少的接触过性能测试。表面上看,它的入门非常简单,主流的LoadRunner和Jmeter都提供了录制脚本的功能,录制--> 设置虚拟用户数 --> 运行,然后一个性能测试就完成了。笔者的首份测试工作的第二任务也完成一个性能需求;当时磕磕绊绊的花了三四天时间搞定,性能测试报告也做的有模有样。

      但如果想做好性能测试,我觉得测试人员应该达到一般架构师的水平,至少比一般的开发人员更了解系统的整体架构。

      当然,这个架构也分两说,对于一般的项目,市场上都有成熟的方案,比如LAMP,再加上Nginx和redis,也有很多成熟Web框架,所以,开发人员只需要根据业务需求把功能实现了就好,除非是特别新的开发新手,犯一些低级的错误导致性能问题,一般的性能就是验证当前系统的能力,增加服务器也是最便捷的手段。

      另一类就是对系统的性能有极高的要求,比如证券交易系统,银行系统,网上购票系统这些,这些一般用的架构和方案就不是我们常见的了。那么,对性能测试人员的要求也非常高。听一朋友说,性能测试环境与线上正式环境是一模一样的配置,单这一点,一般的小公司也玩不起。

      所以,想成为一个牛x的性能测试人员,朝着的架构师的方向努力吧!最好能到亿级用户、百万并发的项目和团队中磨练。

 

安全测试

  关于安全测试,我知道很少,只能简单的谈谈。安全测试是主流中的非主流,“主流”指的是它是测试技术的一个主流方向,“非主流”是指在我看来,对这个技术的研究和学习没有什么固定的章法,想要有所成就需要一些天资和悟性。

      曾几何时,我接触到第一位安全测试工程师,他教我们用AppScan工具扫描,晚上下班的时候开着扫描,第二天把扫描出的问题给开发人员分析。我以为安全测试不过如此嘛!

      最近这家公司前后接触到两位安全测试工程师,人家基本不用工具的好么!前者给我们演示用SQL注入去拿到一个网站的后台管理员密码,还是觉得很酷的,对了,他的Python语言也用的66的。后者告诉我主要的安全手段就是代码审查;你要对项目所使用的编程语言和框架里面的某些方法/函数非常熟悉,知道某些方法/函数在怎样使用时会存在安全隐患,单这一点我也觉得很难,这个方法我会用,我怎么知道在什么情况下引发漏洞?除非我遇到过。

     (题外话,我跟这两位安全工程师关系都挺好,前者一直是饭友,常常中午一起吃饭;后者旅游时常住一个房间,两人能探讨人生到很晚,可惜未得他们身上学到半点皮毛,遗憾!)

 

白盒测试

  白盒测试给测试人员去做,有利有弊,整体来说,我不太赞同由测试人员完成。

      白盒测试的主要工具就是单元测试框架了,这个真没啥难的,如果你一点编程基础,我可以一个小时把你教会。

      测试人员做白盒的优势就是具备测试思维,在设计测试用例时考虑更加全面;但难点也很明显,和开发一样熟悉被测代码,这一点有难度,我在做接口测试的时候,曾花好几个小时去理解开发写的一个接口的逻辑,明显觉得自己智商有点不够用。而且,你可能需要同时熟悉2~3位开发人员的代码。

      开发人员去写单元测试,抛除“盲目自信”“没时间”“懒”等因素之外,优势非常明显,没有谁比自己更熟悉自己写的代码了,他们只需要掌握单元测试框架的用法和一些常用的测试方法,就可以很快的把单元测试写完并全部运行通过,而且发现bug之后,修改起来也非常快速。

      所以,我觉得我们更应该教开发人员写单元测试,而不是帮他们去写。

 

 

百度一下“软件测试前景”,前几个点进去都是某某培训机构的广告,后面的点进去间接的介绍一下然后又是各种机构的广告。所以,对于很多测试人员,尤其是职场小白,完全不知道自己进入这个行业的前景,至于后面有什么规划,走上什么道路更是一片迷茫。那么软件测试的前景和发展方向在哪呢?

一片迷茫


测试前景

其实,目前的国内市场,很多软件企业都存在着重开发、轻测试的现象,甚至有很多互联网和软件企业都没有测试,上线纯靠开发和非专业的内部测试,这就造成软件产品的质量问题频出,上线后出现各种问题。很多公司都表示市场上专业的软件测试人员实在太少,想聘请也没有这方面的人才,所以只好退而求其次拿软件开发人员急用。

程序员之间流传着这样一句顺口溜:有人喜欢创造世界,他们做了开发者;有的人喜欢开发者,他们做了测试员。什么是软件测试?软件测试就是一场本该在用户面前发生的灾难提前在自己面前发生了,这会让他们生出一种救世主的感觉,拯救了用户,也就拯救者这个软件,避免了他们被卸载的命运。

所以随着互联网和软件行业的日渐成熟,测试也逐渐的被各个公司重视。中华英才网显示,目前软件测试人才的缺口在30万人以上,IT行业国内外巨头正在加紧争夺软件测试人才,华为一次抛出50名软件测试人员的招聘大单,而联想、用友、瑞星等企业也纷纷打出高薪招聘软件测试人才的启事。随着测试行业的不断发展,北京和上海将会带动其他城市一起发展。

因此,软件测试的前景只会是越来越好,对专业素质要求也会越来越高。

前景比较乐观


发展方向

1. 专注于研究某种测试,比如网页,app,安全,性能,接口,自动化。等到一定阶段,对研究的领域有了自己的见解,就可以称为这一领域的专家

2. 各种领域都有所狩猎,知识面广,某个东西出来立马就会有方案。这种可以去做测试leader

3. 对测试规范有一定的掌握,写文档整理表格能力非凡,管理层非你莫属。

4 对整个项目有宏观和微观的把握,能从各个角度去寻求方案,对各个测试技术也有一定的把握,走向技术主管的路线。

5. 测试一两年后,对技术感兴趣而且有一定基础,就可以转型做开发啦。因为对测试有一定了解,所以开发时会更多的考虑一些场景。

 

 

软件测试人员的发展误区【4】


   公司开发的产品专业性较强,软件测试人员需要有很强的专业知识,现在软件测试人员发展出现了一种测试管理者不愿意看到的景象:

  1、开发技术较强的软件测试人员转向了软件开发(非测试工具开发);

  2、业务能力较强的测试人员转向了软件需求;

  3、沟通能力较强专业能力较强的人员转向了软件实施;

  为什么不愿意看到呢,自己培养起来的优秀人员都为别的部门、别的公司干活去了,而测试这边永远都是新人,永远都是刚入门的软件测试工程师:开发水平一般、业务能力一般、沟通能力一般。而那些转行的测试同仁们,薪水并没有质的飞跃,到了‘那边’成绩平平,很快就被埋没了。这里当然要排除那些实在对开发、对业务、对实施非常感兴趣想在这些领域有所建树的狂热者们。问题就来了,那些人为什么要‘转业’呢?原因无外乎以下几点:

  1、公司的软件测试没有技术含量,没有挑战性;

  2、认为在公司能做到测试经理就已经是测试发展的最高境界了;

  3、测试人员薪水较其他低;

  4、想了解一下测试之外的其他岗位,丰富自己的阅历,为以后更好的做管理做准备。

  那么,公司的软件测试真的技术含量很低吗?工作效率已经达到最高了吗?真的不需要挑战吗?测试经理就没有高级和低级之分了吗?测试人员的薪水就不可以比开发人员高了吗?测试人员真的需要那么多吗?当然不是,也许很多年的‘旧路’不能靠自己改变,也许有人埋怨领导者们因循守旧、顽固不化,但没有人会阻挡我们去创新,去阻止我们探索新的模式、新的思路、新的工作方法去改变这种现状,没有公司是傻子,一个人的薪水和他体现出来的价值是成正比的。所以应该打破常规,去探索新的东西,这种创新不仅包括技术创新也包括管理创新。关于职业发展,仅根据公司的实际情况,和从大家那里得来的想法,谈一谈:

  1、开发技能较强的软件测试人员可以转向自动化测试工具、测试管理工具的开发,这里不仅要求开发能力较强,还需要多了解第三方测试工具,挖掘测试组内测试人员的需求,了解业务;

  2、业务能力较强的可以做测试(用例、计划)设计工程师,由于公司产品业务较强,需求人员仅能为测试人员提供需求文档,而究竟哪些是最重要的测试点,测试过程中采取什么样的测试方法能使得测试路径最短、覆盖率最全,这些都需要抓住软件业务的精髓;

  3、做到了测试经理,完全可以把管理再出神入化,每个人身上有什么特点,怎样能让每个组员的能力发挥到极致,怎么更好的争取测试人员的利益,怎样做到最好的资源调配,怎样让大家不再迷茫,另外,怎样提升自己的威信,提升执行力,领导力,怎样把管理做到让人啧啧,到了这种程度,通过横向和纵向对比,优势自然就出来了。

  另外,转做开发、需求、实施,然后又转回测试做管理,这种我是比较赞同的,但度不好掌握,而且如果自己的水平实在太高,很可能会让这类人产生英雄无用武之地的想法,公司的平台太低,而自己感觉自己的水平偏高,所以很可能导致这类人的离职,所以个人的发展和公司测试部的发展一定得保持同步,谁都不能过快,步伐不一致的的两个人怎么能走在一条道上呢?所以在个人发展的情况下,关注公司总体测试发展,先认清两者的发展方向再去‘转业’未尝不可。

  4、做到测试设计人员、自动化工具、管理工具开发人员就是极致了吗?当然不是,测试行业照样有咨询、有顾问、专家,测试管理做好了也可以去做项目经理、去做部门经理,实在不行,完全可以去创业嘛。

  总之,发展无极限,路是自己走出来的,不要只走别人踩出来的路。

测试人员应该具备的几种思维方式【1】


  1、逆向思维方式

   · 逆向思维在测试中用的很多,比如将根据结果逆推条件,从而得出输入条件的等价类划分

   · 其实逆向思维在调试当中用到的也比较多,当发现缺陷时,进一步定位问题的所在,往往就是逆流而上,进行分析

   · 逆向思维是相对的,就是按照与常规思路相反的方向进行思考,测试人员往往能够运用它发现开发人员思维的漏洞 

   2、组合思维方式

   · 很多东西单一的思考都没有问题,当将相关的事物组合在一起却能发现很多问题;如多进程并发,让程序的复杂度上了一个台阶,也让程序的缺陷率随之而增长

   · 按照是否排序组合可以分为:排列(有序)和组合(无序);针对不同的应用,可以酌情考虑使用“排列”或者“组合”

   · 为了充分利用组合思维而不致于让自己的思维混乱,要注意“分维”,将相关的因素划分到不同的维度上,然后再考虑其相关性 

   3、全局思维方式

   · 事物往往存在多面性,当我们掌握了越多的层面,我们对它的认识就越清楚,越有利于我们掌握其本质,全局思维方式就是让我们从多角度分析待测的系统;试着以不同角色去看系统,分析其是否能够满足需求

   · 其实平常我们在软件开发过程中,进行的各种评审,就是借助全局思维的方式,让更多的人参与思考,脑力激荡,尽可能的实现全方位审查某个解决方案的正确性以及其他特性 

   4、两极思维方式

   · 边界值分析是两极思维方式的典范

   · 为了看系统的稳定性,我们采用了压力测试

   · 两极思维方式,是在极端的情况下,看是否存在缺陷?

   · 注意是两极,不是一极

   · 测试人员做久了,往往容易走极端——职业病,不利于与人沟通 

   5、简单思维方式

   · 剥离一些非关键特征,追逐事物的本质,让事物简单的只剩下“根本”

   · 针对事物本质(解决问题的本质)的测试,让我们不至于偏离方向 

   6、比较思维方式

   · 认识事物时,人们往往都是通过和头脑中的某些概念进行比较,找出相同、相异之处,或者归类,从而将其加入大脑中的知识体系,可能的话,再建立好的搜索方式,以便以后使用

   · 应用模式是“比较思维”很常见的例子,现在模式很火,有设计模式、体系结构模式、测试模式、等等,一些专家针对一些相关问题的共性找出来的解决方法,取完名字后,可以让大家方便的复用

   · 让经验在这里发挥作用,测试中经验很重要,比较思维是使用经验的方式 

   7、动起来,更精彩

   · 关注程序的运行时状态

   · 传统的基于结构的程序可以更多的在代码中反映将来程序的运行方式;而面向对象将代码和运行时显著分离

   · 让我们在关注代码静态结构(如类结构)的同时,也要谨慎关注其动态(对象交互网)表现

其实这些思维方式,大家都在有意识或者无意识的使用着,它们各自都有自己的妙处,将我们的思维发散,有意识的将他们用在问题的思考上,有时可以给我们一种“柳暗花明又一村”的感觉。

测试工程师的进阶之路【2】


从狭隘的面来理解,测试工程师的本职的进阶方向大致如下:

即两种大方向:管理方向和技术方向。

 

从广义上来划分测试人员的发展,即不仅仅局限于测试本职工作,大致有6大类的方向。决定不同发展方向的核心技能要素有三个,即:

三核心要素:管理技能、测试技能、业务技能。

根据三种技能的掌握情况和互相之间的交集点,大致分为6个大类方向:

  ◆ 管理方向

  ◆ 测试技术方向

  ◆ 业务技术方向

  ◆ 技术支持方向

  ◆ 质量保证方向

  ◆ 其他方向

六大方向对核心三技能的大致要求,请参考如下图示:

(注:上图只是对六类发展方向,三种核心技能掌握做简单图示,不代表具体数值,也无横向对比价值。)

 

  测试人员的六大发展方向和对应岗位:

(注:只代表各大方向的具体方向,各方向/岗位之间未标识上下级,平级层次关系)

 

  对六大方向的各个岗位,无法一一描述所要学习掌握的知识点。如果对某一方向的某一岗位有兴趣,在网络资源这么发达的今天,有心的话,自然会找到关于测试人员所需要的技能知识,进行归纳总结,所以在本文中不再赘述。

 

软件测试工程师职业生涯规划【3】


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

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

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

  具体工作:执行测试用例,记录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岁不是转管理就是转商务了)。当然,一般人是技术做得越好,管理的时候,越容易切中项目要害。但是,对于从技术上来的人,关键是要开始培养和人打交道的能力。此阶段的关键是,需要逐步形成自己的管理风格,具备协调并行事务的能力。

  当然,纯管理和技术型管理还是有所区别的。对于纯管理的人,熟练应用管理的科学理念,形成自己的风格尤为重要。纯管理的测试经理人,不仅仅可以做好测试方面的管理,其实也可以做好项目甚至其他的管理。其实,不管管理的对象是什么,它们的管理理念还是相通的。从测试管理中摸索出来的很多经验,可以很好的推广于其他的管理领域。而对于技术型管理的人,主要是带好技术团队,同时,不断补充新的技术知识,跟紧技术潮流。此时的你,有强大的技术背景支撑,不需要过分钻研细节,只需洞察核心,合理安排好你的团队成员即可。

  这个阶段,也可能少数的人会选择离开具体的企业,而开始从事测试咨询,那是一个充满挑战的崭新开始,也必须有前期的积累方能胜任。

  对于大多数人而言,此阶段中一个需要重点考虑的问题是,是否将测试作为自己的终生职位,如果是,基本上达到上述的目标,保持状态,基本可以做到退休的。如果不是,那就比较可怕了。其实我不建议此阶段的人转型,除非有充分的理由和很好的机遇。毕竟,达到此阶段,你已经付出了至少5年的努力,而且还是人生的黄金时段,时光一去不复返啊。当前状态下转行,请务必慎重。

http://www.cnblogs.com/Ming8006/archive/2013/03/07/2947656.html

在软件项目开展过程中,程序质量管理、程序的正常运营以及应用程序在开发周期中的贯穿都要软件测试工程师来完成。

  根据顶测科技相关资料统计,目前在国内软件从业人员中,真正等担当软件测试职位的人员不足10%,而且人才缺口比较大并成逐年增长的趋势,软件测试工程师人才的极度匮乏为许多IT企业的软件项目带来了消极因素。同时,市场对测试人才的极度需要相对减轻了本行业就业压力,同时增加了的福利待遇。

  软件测试工程师介绍

  软件测试工程师(Software Testing Engineer)指理解产品的功能要求,并对其进行测试,检查软件有没有缺陷(Bug),测试软件是否具有稳定性(Robustness)、安全性、易操作性等性能,写出相应的测试规范和测试用例的专门工作人员。

  简而言之,软件测试工程师在一家软件企业中担当的是“质量管理”角色,及时发现软件问题并及时督促更正,确保产品的正常运作。按其级别和职位的不同,分为三类。

  1、高级软件测试工程师,熟练掌握软件测试与开发技术,且对所测试软件对口行业非常了解,能够对可能出现的问题进行分析评估;

  2、中级软件测试工程师,编写软件测试方案、测试文档,与项目组一起制定软件测试阶段的工作计划,能够在项目运行中合理利用测试工具完成测试任务;

  3、初级软件测试工程师,其工作通常都是按照软件测试方案和流程对产品进行功能测验,检察产品是否有缺陷。

  根据顶测科技相关资料统计,目前在国内软件从业人员中,真正等担当软件测试职位的人员不足10%,而且人才缺口比较大并成逐年增长的趋势,软件测试工程师人才的极度匮乏为许多IT企业的软件项目带来了消极因素。同时,市场对测试人才的极度需要相对减轻了本行业就业压力,同时增加了的福利待遇。

  软件测试工程师岗位职责

  1、依据需求文档及设计文档,编写测试用例;

  2、完成产品的集成测试与系统测试;

  3、根据测试计划,搭建测试环境;

  4、依据测试用例执行手工测试,反馈跟踪产品BUG及用例缺陷;

  5、测试工具/系统的研究和应用;

  软件测试工程师岗位要求

  1、 电子、电机、网络、计算机等相关专业;

  2、有一定的编程知识,有穷追到底的精神;合肥招聘会

  3、掌握软件测试的基本原理、方法和组织管理,精通软件测试工具;

  4、获取ATA软件测试工程师或elphi初级程序员或Java初级程序员认证;

  5、有相关工作经验,具有一定的编程经验,懂测试软件的操作,善于发现问题的症结,同时具有一定的写作能力以书写软件缺陷报告;

  6、责任心强,力求完美,具有团队精神,善于沟通,具有一定的逆向思维能力,热爱学习,善于利用书籍、网站等途径不断提高自己。

  根据顶测科技相关资料统计,目前在国内软件从业人员中,真正等担当软件测试职位的人员不足10%,而且人才缺口比较大并成逐年增长的趋势,软件测试工程师人才的极度匮乏为许多IT企业的软件项目带来了消极因素。同时,市场对测试人才的极度需要相对减轻了本行业就业压力,同时增加了的福利待遇。

  软件测试工程师的未来发展前景

  软件测试工程师指理解产品的功能要求,并对其进行测试,检查软件有没有错误,测试软件是否具有稳定性,写出相应的测试规范和测试用例的专门工作人员。简而言之,软件测试工程师在一家软件企业中担当的是“质量管理”角色,及时发现软件问题并及时督促更正,确保产品的正常运作。

  测试分为三个阶段:手工测试、自动化测试、性能测试。这是一个逐步提升的过程。最初工作可能做手工测试,也是目前绝大部分测试人员所从事的工作。自动化测试是测试的发展趋势,而且现在自动化测试人员急缺,且薪资很高。现在最稀缺的是性能测试人员,目前性能测试人员的待遇比同等经历的开发可能还要高,因为现在性能测试人员属于稀缺状态。

  (1)手工测试:现在比较普及,大多数测试都还停留在手工测试阶段。

  (2)自动化测试:是趋势,但目前用自动化测试的还比较少,需要适当的代码编写工作。做一段手工测试后,积累一定经验,可以慢慢步入自动化测试阶段,如果自动化测试比较熟练,月薪1万没问题,和开发工资差不多。

  (3)性能测试:性能测试人员现在稀缺人群,一般能做性能测试,且做得可以的一般月薪都在1.6万以上,比开发要高。

  软件测试人员的主要职责是对软件产品的整个开发过程进行监督和检验,使之能够达到满足客户的需求,因此对于企业来讲是十分重要的岗位。在国外,一般软件测试人员与软件开发人员的岗位设置比例是1:1,像微软在开发windows2000时候使用的软件开发人员是1700名,而专业的测试工程师有3200名,测试开发人员比例高到1.7:1,由此可见软件测试岗位重要性的不一般。我国的软件测试职业还处于一个发展的阶段,测试工程师具有较大发展前景。

  根据顶测科技相关资料统计,目前在国内软件从业人员中,真正等担当软件测试职位的人员不足10%,而且人才缺口比较大并成逐年增长的趋势,软件测试工程师人才的极度匮乏为许多IT企业的软件项目带来了消极因素。同时,市场对测试人才的极度需要相对减轻了本行业就业压力,同时增加了的福利待遇。

  软件测试工程师就业优势

  1、行业前景好职业寿命长

  根据相关招聘网站发布的最新一期的IT职场人气排行榜,其中软件测试工程师、高级程序员、产品项目经理等高薪职位进入“三甲”,成为IT就业市场最新风向标。随着项目经验的增加,项目从业经验越久经历的项目越丰富,就更具有核心竞争力。

  2、职业空间大发展方向多元化

  顶测科技所培养的软件测试人员不仅仅局限于通信及互联网、应用软件二大行业,在金融及其他行业都占有一定的比量,行业范围非常广。同时由于工作的特殊性,测试人员不但需要对软件的质量进行检测,而且对于软件项目的立项、管理、售前、售后等领域都要涉及。向上可以发展成为测试经理、质量经理,横向可以发展成为项目经理等。

  3、后期职业发展方向

  测试专家包括测试设计师、高级测试工程师、终极测试工程师、测试工程师等;技术专家包括测试架构师、性能测试工程师、自动化测试工程师、测试工程师等;团队管理包括测试总监、测试经理/项目经理、测试组长、测试工程师等;业务专家包括产品经理、咨询顾问、需求分析师、测试工程师等。

  4、人才缺口大薪资待遇好

  我国企业对于软件测试自动化技术在整个软件行业中的重要作用认识较晚,因此,专业的软件测试人才供需之间存在巨大的缺口。刚入行的软件测试人员,起步月薪大多才5000-7000元左右。高于同龄人1000-2000元的薪资水平,工作2-3年后月薪在9000-12000元左右,工作7年后年薪可达20万或更高。

  5、女生也吃香

  顶测科技多年行业积累发现,软件测试工程师对性别没有特殊要求,注重经验的积累,虽然男性的罗辑思维能力极强,但在沟通和耐心方面女生具有独特的优势,所以,目前软件测试工程师的从业男女比例大致维持在1:1左右。

  根据顶测科技相关资料统计,目前在国内软件从业人员中,真正等担当软件测试职位的人员不足10%,而且人才缺口比较大并成逐年增长的趋势,软件测试工程师人才的极度匮乏为许多IT企业的软件项目带来了消极因素。同时,市场对测试人才的极度需要相对减轻了本行业就业压力,同时增加了的福利待遇。

  软件测试工程师发展方向

  主要职责是编写测试程序、执行自动化测试任务。这类职位的测试人员至少要达到初级程序员的能力,因为经常和程序打交道。发展空间也不错,例如可以发展为程序员。

 

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------

明确的测试职业规划 带给你美好生活

1.明确测试发展:

软件测试工程师大致有4个发展方向!

1 资深软件测试工程师

达到这个水平比较困难,这需要了解很多知识,例如C语言,JAVA语言,数据库,数据结构,软件工程,等等,但是你要在一家公司干3 -- 5年的话,在压力中这些技能你都会掌握!

2 测试部门管理者

小的如组长,大的如测试经理,这需要你有先天的优势,善于交流沟通,善于处理人际关系!不过做两年,你也会成为老油条的!

3 测试书籍编写者

出书也是很赚钱的,当你在这一行干了几年,积攒了足够的经验,可以把你的经验,具体做过的项目总结出来,现在关于软件测试的书很少,你要写本与众不同的书肯定畅销!

4 软件测试培训师

当你在这一行做腻了,你可以选择培训机构,培训机构缺乏有经验的软件测试师,必然会高薪聘请你!

至于晋升流程,一个公司一个样,但是你要知道,你想发展的话,必须要委婉的让上级知道,有些你无法触及的测试项目,需要你的上级分配,一旦有无关紧要的项目或空闲时,经理就会考虑你,会让你尝试做一些高级测试项目!
这时就要看你的个人悟性了!
要知道这一行,技术越高越吃香!越能让老板和开发人员信服

2.职业规划3个阶段

大学阶段:
        在大学阶段我们要学什么,我感觉真正对我们有用的就是英语和数学,还有写专业课的知识做基础,英语是以后提高的关键所以英语一定要学好,特别是在测试工作中很多时候国内的材料恨不能说明问题,测试在国内还是一个新兴行业(相对)所以材料也是比较少,所以很多时候都要去看英文的材料,所以英语的水平直接影响到以后的发展,数学为什么要学好呢,在工作中特别是测试工作很需要数学的逻辑思维,逆向思维等,所以学数学要学好不是说分数高而是学习思维方法,还有一点就是英语和数学时以后深造的必考科目(呵呵,我就没有学好,还在补习);一定的专业课也是必要的,因为它是你工作后提高的基础,基础扎实了提高起来就比较容易,我的基础比较差,所以我花了一年的时间来提高才得到了一点点成功,(看以参看阳光的测试工作历程);培养情商,这个名词现在很多地方都在提,有的一些公司甚至在智商和情商之间更看重情商。情商其实就是对自己情绪的控制能力和自身修养的培养,还有一些交流能力、沟通能力、管理能力等等,这些在大学里如何培养呢,建议如果有可能的话参见多参加学校的一些团体,也可以自己组织一些团体,同时如果有肯能的话可以到学生会参加锻炼,这对以后的很多方面的能力都有锻炼,(我就在学生会待过一段时间,对后来的工作有了不小的帮助)。所以建议在校的大学生一定不要保守,要积极的锻炼自己,多与人去交流等。软件测试方法

 

找工作阶段:
       这个阶段可能是大家比较迷茫的阶段,主要是有两个问题,我能做什么,我有什么能力;我是在大学阶段过来的毕业的时候也是这样,不知道自己可以做什么,但是我有一个自己的目标,我要找到一个自己喜欢的工作,因为对工作的性趣是将来发展的一个前提,没有性趣的工作一般情况下是做不出来成果的。所以我建议有两中做法,一选择自己感兴趣的工作,但是不一定能找到,现在的就业压力还是很大了,第二种是对自己已经没有办法从事的工作产生性趣,着眼去找它的性趣点,然后你把它扩大,从而培养对词工作的性趣。

 

工作阶段:
        千挑百选,我们选择了测试工作,根据我们上面说的原则,既然选择了,就要好好工作,做出一定的成就,即便不能出人头地,也要榜上有名;那么我们就不能机械的工作,我们要给自己制定一个发展蓝图,测试工作一般有两个出路,我认为:一个是测试转管理,一个是测试转质量控制!那么我们如何规划呢?我个人感觉测试工作也是一个比较累的工作,所以一个有一个年龄限制,暂且我们先为35岁,也许有的人很大了还在做测试工作,哪就是一个老的测试工程师,我们一般认为不是很好的出入,那么35岁以后有了一定的测试技术经验后我们可以选择转行了,或转管理或转质量控制。
        那么在这个发展过程中就要给自己制定一个发展方向,确定自己的技术体系和管理体系或者技术体系和质量体系的学习和积累计划。首先技术体系的建立,做为测试工作技术体系我认为首先要有一个面,然后深入一条线,在这个面上,你要去学习软件工程、软件测试技术(测试技术),系统分析技术、网络技术、网络协议、编程技术,等等,跟你行业相关的一些业务等方面的技术,这个体系的建立是一个长期的积累过程,当然可以现从你的实际工作出发,在做工作的时候一发散的方式做积累,比如你需要测试的是一个指纹识别系统,那么你再做这项工作的时候,不要单单只局限在工作的本身上,要去了解这个技术的相关知识,了解行业的动态,了解一些其他知识等等,在最后项目总结的时候将其沉淀积累,这样你的知识量就会比你单独的做一个项目要大得多,但也累的多,所以只有勤奋的人才能有更大的进步。我这肯能是举了一个比较小的例子,只是希望给大家指出一个方向。所以做工作一定不要只限于工作本身,一定要扩展再扩展,这对你以后的发展大用用处,当你的知识积累到一定的程度,你就会发现你看问题的方法就会不同,你设计出的测试用例也会与众不同。横线一个面,我们已经建立了一个宽广的技术面,但是这还是不够的,我们还需要给自己选择一个点然后深入下去,比如我再自己的基础的情况下选择了应用测试领域,再这个方面就不是要知识了解和知道,要做到掌握,可以掌握一门独特的技术,可以再公司甚至这个行业做到前列,这个是重要的,要不你就没有自己的绝活了。在这个点的选择上可以根据自己的爱好,和工作需要,甚至强迫自己选择一个然后深入。这样,面和点建立起来了,然后要随着时间的推移然扩展你的面,深入你的线,相信在你的不懈努力下一定会做到很好的。管理体系的建立,随着工作的推移,要逐渐的有意思的去参与一些管理工作,可能机会好的话在学校的时候也可以得到一些锻炼,笔者就在学校的时候锻炼了几年(一直在学生会,还组织了一个计算机学社)。俗话说机会都是给有准备的人,只有你事先作好了这些准备,才能在领导交给你一项管理任务的时候,把它完美的完成!这样才能给你以后走向管理这条路打下基础。管理也是一门学问,所以还要学习,在这里我就不具体说怎么学了,可能有人说我也不知道怎么学,不过这个方面太广了。不是很快可以说清楚的,大家可以买些相关的书籍看看。
        质量体系,在测试工作中独立与技术和管理的还有一个是质量控制,这个可能在一些小型的然建公司体现的不是那么明显,不过在我们单位就有专门的质量部门来保证测试的质量,其实这个质量控制也可以是从入门就从事,因为他的一些东西也是很基础,特别是在国内质量管理员有很多不太懂测试技术,他们要做的就是检查质量点,在测试人员的配合下检查。不过我还是认为质量人员是要在测试人员中升级过去的,因为你不懂测试技术和谈对质量点的控制,如何有理有据的开不合格项,或者你只能看到不关紧要的一些东西,真正的风险往往看不到。

3.个人的短期规划

我觉得,从事软件测试是一个非常有挑战性的工作,既然决定要做,那么一定要矢志不移。
一。测试人员从哪里开始开始--个人认为,应该从最基本的手工测试、功能测试入手,这个阶段是打基础的阶段,对熟悉整个测试过程,扎实测试理论知识非常重要的一个过程。   
    1.了解软件测试行业,关注行业的发展信息,把握行业动态
    2.了解软件测试相关专业知识,手工测试阶段中,你要学习下软件测试理论知识和软件工程知识。
    很多人以为软件测试是非常简单的事情,曾经有句话说扫地老大妈也可以上岗测试,不过也说真的,我公司还真碰到过这样的事情,手工测试急需人时,抓了一批营业员上来帮忙做测试。
    3.从实践中不断去获取知识,有敏锐的学习脑袋瓜子,不断结合工作实际来总结进步。这一步非常重要,理论和实际总是有很多的差距,所以一定要在实践中做好总结的过程
二、学习自动化测试工具
    认真做好了职位的手头工作,对测试进一步了解后,有了一定的测试经验,开始向自动化测试发展。
    自动化工具有性能、功能、测试管理、bug管理等。      
    开发语言、数据库、数据协议、操作系统等专业知识。
另外的就是一些平时积累的。
    1.测试职业人的心态与素质:耐心、细心、平和心,加强沟通能力,做测试沟通非常重要
    2.注重专业知识的学习,曾经有一位网友说过每半年读完新的一本测试书籍,学习新的一门技术知识,非常赞成。


做好测试,有两个发展方向,测试高工技术路线或经理管理路线。

最重要的是,一颗学习、积极向上的心态

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------

写给一名软件测试工程师

你要为自己每一次的懦弱而忏悔:曾经不愿承认自己出生于农村,曾经不敢面对自己是一名外包员工,曾经一次次的不甘心自己只是一名测试工程师

  不做失败者

  微软IBMOracle华为等等,这些公司选拔的测试工程师应该都是出类拔萃的人才。可惜不是你,说起你的大学,就想起郭敬明的《一梦三四年》。你开始想做测试是因为数次面试程序员被拒,但是却看见了“月薪8000不是梦”的广告。比起进入外企、国企、名企的同学,比起考上公务员的同学,比起做软件开发的同学,你在心里问自己“我是个失败者吗?”。我只能说你还没有成功,但是你已经开始挑战失败。

  一名测试工程师

  你有了正式的Title:“测试工程师”,我只能改编《双城记》里语句来形容“这是一个最美好的职业,这是一个最糟糕的职业。”

  你的脑子里充斥了各种词汇“白盒测试自动化测试、测试工具”,可是开始测试任务以后才发现自己用的最多的测试工具就是缺陷管理工具,用到最多的测试技术就是点、点、点,测试组里最受重视的是懂业务的老员工,项目组里最低三下四的是测试。被开发说“这不是BUG,你操作有误,就是这样设计的”,被需求人员鄙视“怎么最基本的业务也不知道?”,测试经理找你谈话时委婉的说“在发现BUG的数量上你还需要努力”,马上就要发版本了,项目经理召集测试组开会“今天开始不要再关注界面的、易用性的、与核心业务无关紧要的BUG”…

  受了最多的委屈,拿着项目组里最低的工资,你都承受下来了,我佩服你。

  今天你再回头看看,肯定会微笑的领会当时的收获。高强度的手工测试培养了测试的Sense,BUG数量的压力激发了逆向发散的潜力,研究复杂的业务锻炼了测试思维。经过与开发、与需求的交锋,逐渐从逆来顺受转变为对抗。逐渐学着站在项目的角度思考测试,为什么要提前测试?为什么要首先关注核心业务?有些BUG为什么不应该提?

  最重要的是你加入了一个团队。当发现一个牛X的BUG,只有在给大家分享时才觉得无限光荣;当抱怨需求变更时,那么一帮人一起泄愤才最解气;当测试一个模块时,几个人一起抢BUG那才刺激。

  跳出去

  逐渐适应了环境,你就开始了几个阶段的胡思乱想:“我不要做手工测试了,我要做自动化测试”;“我不要做测试了,我要转开发”;“我不要做测试了,我要转管理”;“我不要在这个公司了,我要换更好的公司”。

  当你开始在组里照葫芦画瓢的录起来自动化测试脚本,你问自己“这就是自动化?”。你觉得用录制工具没有技术含量,就开始用开源工具、开始自己写测试框架,一遍遍调试,面对需求的变更整晚加班来特性化自动测试程序,你对自己说“写程序真繁琐”。你受够了技术工作,开始主动承担些带新人、任务分配、计划文档编写等工作,你和别人抱怨说“我怎么成了个打杂的了?”

  那么回过头来发现,认认真真投入项目中,仔细研究需求、认真的设计用例、严谨的来执行测试、适度的实现自动化、积极的分担别人的任务,只有这样才感觉最充实。当面对繁杂的需求文档,理清了思路画出了流程图;当看着自己设计密密麻麻的测试用例;当发现自己在原有框架上所作的特性化修改可以完美地运行;当看着自己负责的测试任务井井有条的进行着,自己辅导的新人积极向上的成长着;这一切的喜悦的感觉,都是全身心投入你目前的工作所换来的。

  学无先后

  你已经不再是二十岁出头,开始怀疑自己还能学会新的技术吗?不是说过了25岁就开始记忆衰退了吗?那你知不知道,随着年龄增长,阅历的丰富,理解和领悟能力会越来越强,虽然你比新人学得慢,但是在项目经验方面的优势却能帮助你有更深入的理解。知识是相通的,就比如当你研究明白了一门编程语言,那么再学习新的就会很快。测试也一样,测试工具、测试思想、测试流程都有很多种,不可能样样都会,深度的扩展是广度的前提。

  有人说程序员几天不学习新技术就跟不上时代了,那么测试工程师在工作中用到的技术却是稳定的。不断地重复类似的项目,不断地重复测试、修改测试脚本,你被惰性包围了吗?开始觉得不需要学习了吗?即使学习了新的技术和思想在项目中用不上又有什么用?

  学了一定要用,大多数时候领导为了规避风险,不会太支持你把新的技术或思想引入测试项目中。原来是传统迭代流程,你说要学习敏捷;原来是QTP,你说要换Selenium;原来是ST测试,你说要开展ET测试。你必须要私底下多做研究、多做实践、有较成熟的方案和技术。那么在真正有机会实施的时候,你才能够一展拳脚。实践----学习----实践,循环中不断进步。

  学习分享,在公司里,你开始学习了一门新技术,很新鲜,很有成就感,心里窃喜“看他们都不会”。这样下去有一天你会失落的发现,同事们开始对你的新技术不感兴趣,因为他们不理解,你提倡的技术思想因为无人认同而无法执行下去。与同行交流,你想炫耀一下刚学习来的“探索性测试”思想,她给你来一句“和自由测试有啥区别?我早就知道这个”,你想推广一下敏捷,她给你说“敏捷就是没有文档吗?好啊,终于不用写文档了。”你哭笑不得。

  这时才会发现,个人的发展和进步,需要团队的共同进步,需要行业的共同发展。这一切都来源每一个你这样的测试工程师的进步与分享。

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------

2018软件测试行业发展前景分析

很多刚入行的朋友可能会遇到的一个问题,也是很多想要入行的朋友所关心的一个问题,就是: 这个行业前景怎么样,我入行的话会出现什么样的问题,遇到题主这样的问题怎么办?遇到瓶颈怎么破? 

关于软件测试行业前景的问题,是很多在行业外观望的同学甚至是刚刚入行的朋友都密切关注的一个问题,毕竟这个问题关系到自己未来的收入,甚至是决定自己的职业发展方向。

那么当真正思考这个大问题的时候,内心是会冒出很多细分的小问题的,比如:

 

01、现在学习软件测试,将来的发展潜力怎么样呢?

软件测试行业真正开始兴起的时间,大概是在2008年左右。因为在那之前,使用的最智能的手机还只是诺基亚的那种,那时移动端并不需要专门的软件测试。再后来,智能手机开始普及,社交、游戏、电商等各类网站和APP开始兴起,当时的IT行业里,测试领域和开发领域以及产品领域都是空白,再后来赶上互联网浪潮,大大小小的公司都开始重视软件测试了。

目前的一个现状是,这个行业大学还没有专门的课程,不像开发。想要进去这个行业无非自学和培训两种途径。发展到2018年初来说,这个行业已经比较稳定,但是并没有饱和,缺口依然很大。产生这样的现象主要是两方面原因:

1.软件测试在未来的5~10年内发展会很快,人才缺口很大,因为软件企业要靠软件产品的质量去占领市场,,不再是以前说的那样“没有测试人员、产品的BUG可能比较多;但是如果没有研发和产品人员这个产品都不可能做出来。”测试人员可谓是一个软件企业生存的命脉,测试这关过不了,产品做出来也是死掉。

2.造成人才缺口大的另外一个原因就是很多测试人员的技术水平因为知识不成体系或者学的不够扎实的原因,只能做一下简单的工作,其实企业更多的需要一些技术层级稍微高一点的人才。

那么对于2018年这个行业有一个什么样的趋势呢?

1.纯功能测试,需求量会越来越低;

2.接口自动化测试,比重会明显增加;

3.性能测试,还是一样,人才稀缺;

4.软件测试人才的需求量会越来越大;

5.企业招人,综合技能要求会越来越高;

6.测试人员的薪资差距会越来越大;

7.自学测试,就业机会越来越少。

 

 

02、测试是不是比不上开发行业啊?

 

以前测试行业不受重视的时候确实之这样。

但是

 

 

如果要是单纯的靠薪酬去衡量的话,基本上现在已经达到持平的标准了,而且和开发一样,对于一线城市,像北上广深,薪资始终是最好的。近两年西安的软件测试行业发展很好,那边的同学可以留意一下。

除了简单的薪资对比,还有很多对比反面可能会让你更加青睐于这个行业。比如说:

这个行业不像开发那么累,而且入门比较简单,比较适合女生之类的。总体来说,两者对比,测试入门容易,精进比较难,开发是入门难,精进更难。

03、会不会很难,学了之后还是不能胜任工作呢?

 

首先说,不难,但是要有人带,千万不要盲目自学,即使要自学,也是在有明确而清晰的脉络之后再进行自学,否则就是浪费时间。如果方向错了,每一次努力都是在倒退。

有人问学后能不能胜任工作,也是完全可以的,一般培训机构都是有实际的项目去操作的,其实自学的也最怕的是这个,找不到项目去练手。而且遇到问题会蒙圈。一般来说,一本说,找个有经验的老师,3节课讲完一本书足以,3节课教会一个工具也足以了,最后再结合实际的项目去操作,全部都是按照工作的流程来的,有为何不能胜任工作呢?

 

04、测试是不是只需要写写用例,点点功能页面呢?

 

我想说的是,想要让公司给你多开钱,得先让自己值钱。

1.认为软件测试就是写写测试用例,执行一下,汇总一下bug的,趁早清醒,否则只能一辈子点点点。你不主宰你自己,那就让别人主宰你;

2.所有身边一开始认为测试容易,钱好混的,再过几年看他,还是老样子;

3.学无止境,你工作别人也在工作,你发呆别人在学习,然后你就被超越了;

4.工作中不要只有想象力,没有执行力,咱们还没有成长到公司离不开自己的地步;

5.主观能动性,主动去接触技术性的内容,成年人不要指望别人把东西嚼碎了喂你;

6.2018年靠点点点去混工资已经越来越难了,持续学习+主动探索+分析总结,缺一不可。

 

05、测试学几个月就能找到6-9千的工作,这可能吗?

 

这已经是一线的初级测试的基本标准了,达不到这个标准就跳,总会找到合适的。

我担心的不是你们入行之后起始拿不到这样的薪酬,而是担心一直处于这个阶段。见过太多的人卡在这个瓶颈期,一去分析,要么是说自己的学历限制、要么是说自己的年龄限制、要么是说自己的技术水平限制。可是这些都是在找一些客观条件。

基本上坐上1-2年,薪酬过万是没有问题的,以前的一个朋友,刚去找工作的时候是8.5k,隔了一年,也就是上个月,拿到百度的offer,14k,可以说是很励志了!

总结一下:

1.这个行业的发展已经比较成熟,但是缺口巨大,具有系统知识技能体系的,会使用一些工具的缺口更大;

2.入门比较容易,相比女孩子稍微比男孩子多一些

3.就业机会多,因为公司产品迭代快,个人技术能力增长也快

4.转行成本不是很大,相比来说,时间和资金相比开发都要少很多。

5.我有一个专门的交流学习群:706315665。群里每天都有新视频资料更新,每天晚上大牛直播讲课。

下面的软件测试工程师发展方向知识架构体系图,会告诉你该往哪里努力:

一、必学基础专题

linux作为越来越多使用的服务器搭配的系统,成为了不管是测试还是运维还是开发,都需要会的内容。通过一系列常规的Linux系统的使用和操作,强化该系统的实战操作,未测试功底打下坚实的基础。Mysql作为最具有代表性的数据库之一,掌握一系列测试所需要的数据库知识不管是功能测试,性能测试,都是必要的技能。

二、接口测试技术

接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系。作为目前最火的技术之一,且内容满足行业当前甚至几年内的需求,从初级攀升至高级的必经之路,让BUG无处可藏。

三、自动化技术

自动化测试作为测试行业需求最大的技术点,招聘要求随处可见,进阶高级测试工程师必会点之一。什么?你不会代码?学!什么?你代码基础薄弱?学!一句话,如果你连自动化都不会,那么你敢说自己是高级测试工程师?

四、性能测试技术

性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,两者可以结合进行。通过负载测试,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。性能测试需要掌握的知识有哪些呢!上图给你答案

五、TestOps架构技术

 

揭开TestOps的神秘面纱,持续集成Jenkins框架烂熟于心。

如果能将测试,自动化测试融入到整个开发,运维的整体流水线中,达到完整的过程自动化构建,部署并快速得到测试验证结果,那么这将是完美的测试形态。

 

要想有机会,首先你得从人群中冒出来,要想冒出来,你就必须做到与众不同,要做到与众不同,你就要做得更多! 成为技术大牛梦想虽然很美好,但是要付出很多,不管是Do more还是Do better还是Do exercise,都需要花费时间和精力,这个过程中可能很苦逼,也可能很枯燥,这里我想特别强调一下:前面我讲的都是一些方法论的东西,但真正起决定作用的,其实还是我们对技术的热情和兴趣!
 

没有更多推荐了,返回首页