首页 存档 技术 查看内容

测试行业也有危机,压力与日俱增我该何去何从?

2018-3-30 13:00 |来自: 互联网 368 0

摘要: 点击标题下「人邮异步社区」可快速关注 市场上有各式各样的IT培训,其中门槛低易上手的就是软件测试。就业的学员通常都以功能手工测试为切入点,掌握一些基本测试理论,学会设计测试用例,能够操作缺陷管理工具,熟 ...

点击标题下「人邮异步社区」可快速关注


市场上有各式各样的IT培训,其中门槛低易上手的就是软件测试。就业的学员通常都以功能手工测试为切入点,掌握一些基本测试理论,学会设计测试用例,能够操作缺陷管理工具,熟悉一些业务就可以开始测试工作了。大家觉得这样有技术含量吗?没有技术含量就容易被替代,你的职业就会有危机,有想过如何改变这种困境吗?下面先说说为什么要选择测试行业。 


为什么选择软件测试


首要原因是薪水还不错,IT互联网快速发展增长了很多的测试工作岗位,相对其他实体经济行业薪水要高不少,拿一线城市的制造业来说,2 年工作经验技术从业人员在相同的体力和脑力的工作强度下,制造业的薪水一般在 3000~8000 元,而软件测试在 6000~18000 元,2 倍不止。工资回报不错,进入门槛又低,所以越来越多的人涌入这个行业。


其次大量的IT从业人员并不善长做研发或者说没有人聘用你做研发,或者并不想赚研发的辛苦钱,退而求其次选择更轻松点的测试工作。


另外还有一部分来自于开发团队,大女员工由开发转测试的不在少数,随着年龄的增加,结婚生子后没有过多的精力集中在研发工作上,转向工作强度轻一点,待遇还不错的测试行业。


当然也有一部分就是工作岗位需要而从事测试工作的,久而久之就停留在这个行业。


软件测试痛处


就目前国内情况来看,大多数的测试人员并没有开发和运维的技术功底,选择测试这个行业仅仅是因为高薪和入门门槛低。近年来互联网和P2P的神话,快速抬高了测试平均工资,却没能快速提高这个行业的技术水平。在北上广深这些一线城市,从事测试特别是手工测试的从业者长期处在测试职业发展的初期阶段,容易被替代,薪资水平固定。职业生涯基本到尽头。


时常我们也能听到许多测试同学的抱怨:


(1)地位低,不受重视;


(2)待遇差,成就感低;


(3)压力大,加班,提升难;


(4)不稳定。


地位高低在任何行业都是由所掌握的技能或资源的核心价值决定,易替代、无技术含量的职位自然地位低。对于不受重视,大家不妨换位思考下,如果你是餐厅老板,你会重视大厨还是餐厅服务员更多一些呢?


相对于开发来说,测试职位的薪资水平较低,这是由工作产出决定的,工作价值高,自然收获多。但相对于传统产业来说,这个薪水已经不低。由于测试是开发后的附加工作,并没有方便量化可见的产出,自然关注者少;自己也不能左右一个项目或者产品的方向、技术、工期,在项目中并没有里程碑式的贡献,自然成绩很难突出,成就感自然不强。除非你掌握复杂的业务知识,如SAP,如财务知识,能够为项目进程提供有力支持;或者你找到了一些重大的直接影响项目上线进度的缺陷,将会避免一些损失。


工作压力大,经常加班多通常有下面几个原因:


(1)需求难以驾驭


信息社会,唯快不破,产品经理或需求人员需要高超技能与悟性来快速把握用户与客户的需求,但往往并不是这样,所以需求的朝定夕改常有发生,不仅测试工作浪费,开发工作同样浪费。时间压缩,测试无法全覆盖,迫切需要加班赶工,长时间的加班工作效率低,身体也会撑不住,还会担心问题逃逸,自然压力大。


(2)岗位处在工作流末端


软件项目研发的流程:需求调研分析-概要设计-详细设计-编码-测试-软件交付准备-验收。测试流程处在末端,工期会因为需求频繁变动而延误,也会因为开发技术问题或者态度问题而导致缺陷过多,修改过程或多或少占用了测试时间,所以测试时一般很少有充足的时间,在不增加测试资源的情况下加班赶工在所难免,学习自然成为一种奢望,还谈什么提升呢?


软件测试发展路线


前面我们谈到了测试职业的一些困境,其实大可不必悲观,因为测试的可塑性很强,还有很多其他方向可以发展,同样能够创造更高的价值,下面我们谈谈软件测试职业的发展路线。


我们暂且把软件测试职业路线分为 3 个方向,分别为业务路线,技术路线,管理路线;4 个象限,分别为执行层、中层、中高层过渡、高层。


1.业务路线


常见业务路线的职位有QA经理、业务专家、产品经理、产品总监、行业咨询顾问等。


2.技术路线


掌握编程技术,拥有业务经验,成为自动化测试工程师、性能测试工程师、软件开发工程师、安全测试工程师、系统分析师、测试总监、研发总监等。


3.管理路线


积累业务知识或者提高技术储备,能够出色地完成本职工作,负责带领团队;岗位一般有测试Leader、测试主管、测试经理及测试总监。


执行层:


(1)软件测试功能(初级专职过渡阶段)

(2)软件测试性能(专职)

(3)软件测试自动化(专职)

(4)软件测试安全(专职)

(5)软件测试白盒(专职)

(6)软件测试业务(专职)

(7)软件测试小组长、主管(管理路线)

(8)软件开发(专职)

(9)质量保证工程师SQA(专职业务线)


中层,中级执行管理领导:


(1)测试分析师(专职领导过渡阶段)

(2)测试架构师初级(专职领导过渡阶段)

(3)测试经理(执行领导管理路线)

(4)QA经理(执行领导业务路线)

(5)产品经理(执行领导业务线)

(6)项目经理(执行领导技术路线)

(7)系统分析师

(8)测试培训师


中高层过渡:


(1)测试总监(执行领导高级领导)

(2)产品总监(业务路线)

(3)行业咨询顾问(业务路线)

(4)研发总监(技术路线)

(5)项目总监(技术路线)


高层:


(1)CQO首席质量官

(2)CTO首席技术官

(3)CIO首席信息官

(4)CEO首席执行官


不仅仅是性能测试


随着国内软件质量体系的健全,企业逐渐意识到软件测试质量不单单是满足功能流程顺畅就行,测试效率和用人成本的降低也是趋势,更要为软件的稳定和易用性等质量保障来提高产品黏性留住用户。可以这么说,一个成熟的大型产品必须有过关的性能测试把关,这不是一个简单的事情,从需求、架构、硬件、数据库、代码等层面都需要精心设计和测试。


那么如何提高职业技能和核心价值从而赚取更多的劳动报酬?后续测试的职业发展会碰到哪些问题,测试的捷径在哪里?


全栈一般是技术方面的领导者,需要涉猎广、懂得如何解决问题以及对应所需的技术和工具。但具体的细节掌握比不上某个学科精专的。但是他们有强大的学习能力,会较多依赖搜索或即时学习,会根据需求,依托自己扎实的基础功底,把某一项或者二项技能达到接近于专科人员的能力。全栈是学习能力强,总结能力强、不断总结和融会贯通提高实战能力,善于分析因果并找到原因和解决方案的复合人才。


我个人认为全栈测试比纯测试更有未来,因为测试很多时候就是个“万油精”。虽然全栈要掌握的知识点很多,精力不够是其弊端。想要某一项做到专业级,花费的精力更多了。但是顶尖的优秀人员永远是少数,市场的高薪也是为那些 20% 的人员所留。更为重要的是目前是一个复合人才,跨界人才当家的年代。越来越多从软件测试走到测试总监、技术总监、CTO等高级技术管理类复合人才的比例越来越多。


我们看看除了测试还需要掌握哪些基本功。


1.需求


我们的行业存在的根本在于实现用户的业务需求,客户或者产品的需求变化引起的系统需求的频繁变更,在项目周期本就不宽裕的情况下,间接导致测试人员工作量的增加从而导致测试人员加班现象越来越严重。


在实际的性能需求分析过程中,系统分析师必须清醒地认识到客户很难区分业务需求和用户需求的差别,搞清楚客户背后的真正的业务需求。可以说,软件工程中的“需求分析”就是确定要计算机“做什么”,要达到什么样的效果。可以说性能需求分析是做系统性能测试前必做的,不然就没有方向。


2.代码


在测试过程中懂程序的人更能够深入地把程序测试好,通过走读代码发现逻辑上的缺陷、写法上的繁琐带来的性能问题等,达到事半功倍。系统难免会与数据库打交道,数据库知识也不可少;程序部署在中间件上,中间件知识也是必备的;中间件运行在操作系统上,操作系统及硬件知识也不可少。


3.运维


测试自动化是一个趋势,不仅包括功能测试自动化,也包括性能测试自动化及测试环境自动化(持续集成),掌握运维手段也变成必要。另外,对于系统涉及的中间件、数据库、缓存等产品也要熟练运维。


所以要想在测试行业中脱颖而出的关键还是技术,流行的一句话:测试人员懂开发最好,开发人员懂测试最好,自然更受欢迎,价值更高;也就是技术不错,能够跨界。而测试的各种岗位尤以性能测试涉及的知识面最广,涉及程序开发、数据库、中间件、操作系统、硬件知识等内容,基本是照着全栈测试的模板在培养,突破手工测试选择性能测试是一个好的方向,有了这个技术积累就不仅仅是做性能测试,亦开发,亦测试开发(自动化),亦架构,亦性能测试。


从招聘要求看岗位价值


下面我们看一下性能测试及性能架构师/专家的招聘要求就可以知道职位对技术的要求范围与层次。


1.金融行业


案例一 上海 某金融平台性能安全工程师


  • 熟悉数据库编程,能熟练操作至少一种数据库,如Oracle或MySQL;

  • 精通LoadRunner、Jmeter等主流性能测试工具之一,熟练编写相应测试脚本,测试过复杂应用者尤佳;

  • 深入了解HTTP、TCP/IP等网络协议,熟悉J2EE Web系统,熟练掌握多种中间件(Tomcat、Apache、Nginx、MQ等)各项性能参数设置、监控及优化;

  • 精通各类常见的安全问题、测试方法及解决方案,对业界安全动态保持较高的敏感度;

  • 精通渗透测试,熟悉安全测试方法,熟练掌握各种安全测试工具,精通常见安全攻防技术;

  • 具备编码能力,会使用JavaBean Shell等各类脚本语言中的一种或几种进行脚本开发;

  • 优秀的分析问题和解决问题的能力,对解决具有挑战性问题充满激情。


案例二 深圳某银行支付业务初级性能


  • 计算机相关专业,3 年以上工作经验,至少 1 年B/S性能测试经验;

  • 熟悉主流性能测试工具的使用,如LoadRunner、Jmeter等;

  • 熟悉Linux操作系统,掌握至少一种主流数据库的使用;

  • 精通Java/Python/Scala等其中一门开发/脚本语言,能够参与开源工具的二次开发或独立研发部分测试工具。


案例三 某银行性能测试专家(深圳)技能要求


  • 具有扎实的Java或Python语言基础;

  • 具有 2 年以上性能测试的经验,承担过大型系统的性能测试和调优者优先;

  • 能独立开发性能测试框架、工具和脚本;

  • 熟练使用主流的性能测试工具,至少精通一种工具,如LoadRunner、Jmeter;

  • 具备性能测试需求分析、设计规划能力和分析性能测试数据的能力;

  • 熟悉各种常见的系统和数据库性能监控工具;

  • 熟悉Linux操作系统;

  • 熟悉常见的网络协议,熟悉各种中间件服务器;

  • 熟悉MySQL和Oracle等数据库的知识及操作。


案例四 证券公司性能测试技能资格要求


  • 能够搭建性能测试平台;

  • 能够独立完成性能测试工作;

  • 能够分析数据,并编写实际有效的性能测试报告;

  • 善于发现性能瓶颈,并给出指导意见,协助完成性能调优;

  • 能够独立编写SQL、数据库脚本,并分析、优化数据库脚本;

  • 精通测试理论,流程与方法,熟练使用主流的性能测试工具,如LoadRunner/JMeter等;

  • 具备Java、PHP等编程经验,并具备Python等脚本开发经验。


2.其他行业


案例五 通信公司性能测试技能要求


  • 具有扎实的Java或Python语言基础;

  • 承担过大型系统的性能测试和调优者优先;

  • 能独立开发性能测试框架、工具和脚本;

  • 熟练使用主流的性能测试工具,至少精通一种,如LoadRunner、JMeter;

  • 具备性能测试需求分析、设计规划能力和分析性能测试数据的能力;

  • 熟悉各种常见的系统和数据库性能监控工具;

  • 熟悉Linux操作系统;

  • 熟悉常见的网络协议,熟悉各种中间件服务器;

  • 熟悉MySQL和Oracle等数据库的知识及操作。


案例六 旅游行业某知名旅游公司测试技能资格要求


  • 熟练掌握LoadRunner / Jmeter 等至少一种主流性能测试工具,有丰富的HTTP/Web Service/Java User协议经验;

  • 熟悉Oracle / MySQL / SQL Server等至少一种数据库,能够使用工具观察数据库性能;

  • 熟练使用Linux系统;

  • 优秀的分析问题和解决问题的能力,沟通表达顺畅,能够承受较大的工作压力,有大型网站性能监控经验者优先。


案例七 某著名游戏公司技能资格要求


  • 熟练使用常见性能测试工具,如LoadRunner、JMeter;

  • 熟悉HTTP、Web Service、TCP等常用协议;

  • 具备良好沟通能力;

  • 具备团队精神、富有工作热情和责任感;

  • 有游戏行业从业经验者优先。


案例八 某影视平台测试技能资格要求


  • 熟练使用LoadRunner/JMeter/Ngrinder等性能测试工具,有二次开发经验优先;

  • 掌握业内常用的监控工具,例如Nmon、Nagios等,能够通过脚本实现特殊指标采集监控;

  • 熟练使用Linux系统;

  • 熟悉Nginx、Redis等应用服务器配置与管理;

  • 熟练掌握MySQL、mongodb等常用数据库系统的操作,能熟练编写复杂SQL语句;

  • 能够独立完成工作,有很强的责任心,做事严谨,良好的书面表达和工作总结能力;

  • 较强的沟通、协调能力、分析问题和解决问题能力;

  • 有大型网站性能测试经验者优先。

  • 从上面的招聘条件可以看到,作为一个高级的性能测试工程师,我们需要掌握的基本技能很多,需要掌握如下知识:

  • 精通测试理论;

  • 熟练使用性能测试工具;

  • 熟悉Linux操作系统及相关服务器的监控工具及配置管理;

  • 具备Java 、Python开发经验,最好能开发性能框架、工具等;

  • 熟悉数据库SQL或者ETL,能够进行SQL调优,能熟练操作至少一种数据库(Oracle、MySQL等);有NoSQL数据库(Redis Hadoop等)经验优先;

  • 熟悉常见的网络协议;

  • 熟悉各种中间件服务器;

  • 熟悉数据分析、善于发现性能瓶颈,并给出指导意见,协助完成性能调优;

  • 有UI自动化、接口自动化、App自动化测试经验的优先。


至此,对于未来的职业规划相信大家也有了自己的判断,总之一句话,想要在测试行业有所发展,技术才是硬道理。


本文节选自ROAD_TESTING软件测试组 组稿 陈志勇,马利伟,万龙全栈性能测试修炼宝典 JMeter实战》)

(点击图片,立即阅读)

作者:ROAD_TESTING软件测试组 组稿

陈志勇 , 马利伟 , 万龙

本书由权威专家撰写、上万名学员亲身实践。

众多一线专拣推荐,是一本看得懂、学得全面的、帮助读者尽快精通软件性能测试的图书。
相关文章


声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

相关分类

返回顶部