今天在整理电脑的时候发现这样一篇文章、已经想不起来是从哪里弄来的。仔细读来很有一番收获、再次贡献给你们、愿你们在软件测试的道路上取得一席之地、实现本身的财务自由之路。
软件测试职业发展方向,大致上能够分为管理路线、技术路线、管理+技术路线。
软件测试,是技术主导的职业;无论选择哪条发展路线,都是须要必定的技术沉淀,只是相对来讲,管理路线对技术方面要求不高而已。那么咱们就先挑重头的技术 路线展开讨论。通常来讲,一个普通的测试工程师刚入行,3个月左右熟悉企业的工做流程和模式,那么从此的工做内容趋于平稳。
然而社会是残酷的!若是单单停留在测试工程师的阶段,若干年后,相信你再也竞争不过那个时候的应届毕业生,当你的工做技能和职业素质趋于与那些朝气蓬勃的 年轻人至关时,企业会绝不留情的选择他们,而release你,由于你的成本消耗要比他们高,这是大实话!然而现实又是公平的!由于软件开发技术的不断日 新月异,软件功能需求的不断丰富多样,决定软件开发这一系统工程的错综复杂,所以为了保证软件的质量,就要提升测试的水平,这也就为软件测试职业的细化起 到先决因素,也是目前社会上出现招聘专项测试工程师的必然趋势!
所以,这个趋势给了咱们这些常规测试工程师一个空前的好机会!所谓“以毒攻毒”,软件开发靠的是技术,为了测试软件,也必须用技术;那么咱们就来看一下从技术路线,软件测试职业发展有哪些方向。
测试初级阶段:
测试工程师,属于软件测试职业生涯的初级域,其适用范围是入行软件测试3年内的常规测试从业者,其主要工做内容是按照测试组长、测试主管(即直接上司)分配的任务计划,编写测试用例、执行测试用例、提交软件缺陷,包括提交阶段性测试报告、参与阶段性评审等
管理+技术路线:
首先是常规路线,这条发展路线要求管理与技术并重,由于软件测试的行业特色决定了这个因素:测试工程师向上晋升到测试组长、测试主管、测试经理、测试总监,直至咨询域的更高方向!
测试组长是企业项目级主管,对于中小型软件公司也能够是企业级主管,属于中级发展域,适用范围是3到5年职业经验的测试从业者。其工做内容是根据项目经理 或测试经理的计划安排,调配测试工程师执行模块级或项目级测试工做,并控制与监督软件缺陷的追踪,保证每一个测试环节与阶段的顺利进行。严格来讲,这个级别 更多属于测试的设计者,由于企业的测试流程搭建是由更高级别的测试经理或相关管理者来作的,测试主管负责该流程的具体实施;而更多的工做,是思考如何对软 件进行更加深刻、全面的测试。测试主管比较有创造性的工做内容就是测试设计,而偏偏不少公司忽略了或没有精力来执行此工做内容!应该说,在一个企业里作了 3年左右测试工做的人员,可以晋升到该职位,而之因此晋升,是与我的测试技术的过硬、测试方法的丰富,加上对测试流程的监控力与执行力的职业素质息息相 关!
测试经理是更高级别的测试管理者,属于高级测试方向域。对于大中型软件公司,该职位尤其重要,而且对其职业要求也比较高,通常适合5到8年的测试从业者, 在管理与技术能力双双比较成熟的状况下,能够结合具体环境晋升到该级别。测试经理负责企业级或大型项目级整体测试工做的策划与实施。测试经理除了须要统筹 整个企业级或项目级测试流程外,还要对于不一样软件架构、不一样开发技术下的测试方法进行研究与探索,为企业的测试团队成员提供指导与解决思路,同时还要合理 调配不一样专项测试的人力资源(如业务测试工程师、自动化测试工程师、白盒测试工程师、性能测试工程师),对软件进行全面的测试;另外,一些企业里,测试经 理还须要与客户交流与沟通,负责部分的销售性或技术支持性工做。
测试总监,属于常规发展路线的最高域,该职位通常在大型或跨国型软件企业,或者专向于测试服务型企业有所设立,通常设立测试总监的企业,该职位都至关于 CTO或副总的级别,是企业级或集团级测试工做的最高领导者,驾驭着企业所有的测试与测试相关资源,管理着企业的所有测试及质量类工做。而其职业要求,也 是技术与管理双结合。
技术路线:
技术路线中级域:
技术路线,划分为三个半方向,分别是自动化测试工程师、白盒测试工程师、性能测试工程师和认证测试工程师;前三者适用于通用软件测试领域,认证测试工程师乃嵌入式测试领域职位,至少目前仅出如今嵌入式领域。
自动化测试工程师,定义在功能测试范畴,指一般所说的依靠自动化测试工具进行软件黑盒测试的工程师。从大环境讲,自动化测试是软件测试执行阶段的必然趋势,社会对于软件测试的承认度以及对自动化测试人才的需求必将日益增长。
白盒测试工程师,定位于在软件测试周期的单元测试阶段对软件进行的代码级测试的人,包括代码走读、代码功能与逻辑测试、代码内存泄漏检查、代码运行效率检 查、代码测试覆盖率分析等。若是说,自动化测试只是依靠脚本语言完成测试脚本编写与调试的过程(由于自动化测试工程师的工做重点不在编写脚本),对于自动 化测试工程师的技术要求要相对偏低的话,那么白盒测试工程师就要对大型程序开发语言的彻底掌握,所以其技术要求相对偏高!
性能测试工程师,即在系统测试阶段、功能测试后对软件系统性能指标进行采集分析和运行效率检测的人。在一个尽可能压缩的测试流程里,功能测试能够手工进行, 白盒测试能够不作,可是性能测试必需要作,除非该软件非网络类软件即单机版软件!软件测试,从宏观上能够划分为三个大方面:功能测试、性能测试、安全性测 试,功能测试说明软件作对了,功能测试+性能测试说明软件作好了,三者结合起来讲明软件作的很是好!安全测试暂且抛之不提,这是下一个发展域的内容,可是 为了把软件作好,为了真正保证软件的质量,性能测试毫不容忽视;只因目前不少企业因为时间、成本、人力条件的限制,暂且不作性能测试。性能测试工程师相对 来讲,是三个技术路线里技术要求最高的,由于软件的性能瓶颈归根结底落实到代码的运行效率这个问题上,所以性能测试要作好,性能测试工程师起码要懂开发; 而为了发现性能问题,要懂软件开发架构;为了定位性能问题,要懂操做系统、网络协议、应用服务器乃至数据库的原理与使用;为了最终解决性能问题,要根据定 位的问题有针对性的对代码、操做系统、网络架构、服务器、数据库进行优化!固然性能测试是一个系统工程师,绝对不是一两我的的事情,对于常规性能测试工程 师,具有定位性能问题的能力便可。
技术路线高级域:
进入技术路线的高级域,根据中级域的四个路线,能够细分红五个路线,分别是资深自动化测试工程师、资深白盒测试工程师、资深性能测试工程师、安全性测试工程师、标准化工程师,这些高级技术类人才彻底与常规测试经理平齐,属于软件测试职业发展高级域。
资深自动化测试工程师由自动化测试工程师晋升而来。若是说常规自动化测试工程师只是负责自动化测试脚本自己的设计与开发,那么资深自动化测试工程师的工做 内容就是自动化测试这项工做的实施!也就是说,录制脚本-添加验证点-回放脚本只是最初始的自动化阶段,要在企业实施自动化测试,要有资深自动化测试工程 师来设计数据驱动,开发测试框架,甚至一些企业内部自主开发小型测试工具(而非商业工具)的先例,这些也都是创建在资深自动化测试工程师具备深厚的技术底 蕴后,主导其余人员协调完成的事情。
资深白盒测试工程师,其工做内容包含常规白盒测试工程师的内容,除此以外,要协助测试经理或测试总监攻关测试方法与技术性难题,所以其技术水平更加雄厚。 若是常规白盒测试工程师是停留在某种程序设计语言类型的代码级测试,那么资深白盒测试工程师就要脱离程序设计语言自己,结合不一样架构、多种开发技术交互的 状况下,寻找代码测试方法,并具备对代码优化的能力。
资深性能测试工程师,来源于常规性能测试工程师,按照常规性能测试工程师的技术要求,资深性能测试工程师应该具有性能测试总体方案的设计能力,以及软件系统性能问题定位和性能优化的能力!除此以外,也要对主流的软件开发模式下的应用系统具备敏锐的洞察意识和感知意识。
安全性测试工程师,其实从性能测试工程师衍生出来,由于只有具有性能测试经验的人,才对软件的开发模式、实现架构和技术自己充分了解,才会感知和预见软件 系统存在的安全漏洞,加上其本人是测试出身,才知道如何经过系统漏洞尝试攻击软件系统,达到测试的目的。目前国内软件行业对于安全性测试的认识还没有清晰, 该职业也更没有普及,通常只限于军事类、机密类、防病毒类或其余高安全性软件的测试工做中。
技术路线专家域:
在技术路线,向上继续提高的方向,咱们称之为“技术专家”;若是说前面描述的技术职位的所涉范围都定位在企业内部,即企业级资深性能测试工程师,那么技术 专家,咱们能够看做是领域级专项人才!随着软件测试行业的职位不断细化,每一个人在本身擅长的领域走向深刻,均可以成为该领域的技术专家,技术专家在自已经 营的领域里,具备我的独到的看法和深厚的技术实力,而这类人才能够再也不从事具体的测试工做,而是提供行业性测试技术咨询、培训等,为软件测试总体行业的发 展,起到了鲜明的带头做用。
管理方面:
管理方面中级域:
从事了1到3年左右的常规测试工程师,在通过对我的性格特色剖析后,若是认为本身是一个倾向于“高管理-低技能”的类型,那么想要实现本身的职业提高,能够向中级发展域的配置管理工程师、质量保证工程师、业务测试工程师转型。
配置管理(SCM)与质量保证(SQA)同是CMM中的关键过程域(KPA),也同是现代软件工程里的必要角色,与软件测试同属软件开发团队的重要组成部 分。只因这两个角色在软件工程里的人员配比数量相对较少,还不如软件测试这样规模化乃至于造成行业,而最可能是一个职业;另一个社会现象是,企业不多直接 从社会直接招聘配置管理工程师和质量保证工程师,而一般的作法是从企业内部的现有测试员工队伍里选拔,而转型后的测试工程师,就成为SCM或SQA。分析 其缘由,咱们能够感知,SCM、SQA与软件测试工程师都是关注于软件质量的类似职位,社会对于配置管理、质量保证的定义和工做内容并未普及,与其直接从 社会招聘“0”基础的人来培养,倒不如从软件测试人员里升华!通常来讲,这两种职位的上报对象是项目经理或相同级别管理者。
转型后的配置管理与质量保证工程师,必定要转变一个意识,那就是常规测试工程师的工做范围很大一部分(不是所有)只限于测试流程,而配置管理和质量保证的 工做范围是面向整个软件开发流程,两者的职业要求都很是重视软件工程知识体系的创建和软件开发整体流程的实施能力。因为配置管理工程师除了企业配置管理流 程的搭建与实施外,通常会涉及配置管理工具的管理与维护,而质量保证工程师更多的工做是软件开发流程的控制与维护,故而配置管理对技术的要求稍高于质量保 证。
业务测试工程师,定义为面向行业类软件业务逻辑与工做流测试的人员。当前软件开发类型,很大一部分是行业类软件的应用,如ERP、SCM、CRM、OA、 电信、金融、财务、嵌入式、通讯、手机、游戏……这就要求从事行业类软件测试的人员具有行业背景、业务知识,熟练该行业工做流程。从社会上出现的不少对此 类经验要求的测试工程师招聘信息中,咱们更加确定这种趋势;所谓存在便是道理,既然社会上有了需求,那么就能够做为我的发展的方向。而另一个特色是,业 务测试工程师的工做内容主要是黑盒测试,属于功能范畴,所以对技术要求不大,设置一些大型行业类软件公司的业务测试工程师薪资丰厚,可是彻底能够不懂技 术,由于它的工做性质决定了不须要懂不少的技术!他们甚至连软件的界面测试都不作——交给常规测试工程师实施,而彻底关注软件的业务性和易用性,因为其深 厚的行业背景,能够为软件的在正式发布前提出不少建设性的意见,而这些建议正是软件开发商提升产品易用性、增长用户满意度、开拓市场、创造利润的关键因素 之一!
管理方面高级域:
当管理路线的中级域方向继续上升至高级域,就分别到达配置管理经理、质量保证经理、产品经理、业务专家。
若是说配置管理工程师、质量保证工程师更加侧重于配置管理流程、质量保证流程的实施与平常管理维护,那么配置管理经理、质量保证经理就是更侧重于配置管理 流程、质量保证流程的创建与改进。通常在中小软件企业,可能没有这两个角色,而所有的配置管理或质量保证工做都由工程师担当;可是大中型软件企业对资深配 置管理经理、资深质保经理求贤若渴。软件系统越庞大,软件开发团队规模就越庞大,软件开发流程中出现问题的概率就越高,高效管理软件开发流程,不断改进软 件质量,是每一个软件公司在技术上没有顾虑后的下一个急需攻破的难关!
业务专家,属于行业内咨询、顾问的角色,已经几乎脱离了测试工做自己,而更多为企业的产品需求分析、设计、开发、测试等各个环节提供指导工做,其目的也是提升软件的易用性和稳定性,减小后期没必要要的需求变动。该职位也一样在目前热点行业的大中型软件企业有所设立。
产品经理,这个职位在不少企业有所设立,能够说它是质保经理的派生,只是它更侧重于软件在产品化以前的质量监控工做,包括软件开发流程、软件测试等技术与管理的各个方面。
管理方面咨询域域:
管理路线的最高发展域是咨询域,与技术路线的专家域相似,在配置管理、质量保证、软件产品化、行业领域达到高深造诣的人才,他们有丰富的从业经验、深厚的 管理底蕴,具备对软件工程高瞻远瞩的慧眼和胆识,每每供职在专业的咨询与培训公司,提供IT业管理类咨询与培训的服务,推进着软件行业的前进。国内外不少 为软件企业进行CMM咨询和实施的公司里,就是这些人才的大本营之一!
因为国内软件测试行业目前的发展迅速、需求旺盛,在国内的软件测试职位晋升通常要比国外快,但因行业自己太年轻,你们对软件测试中软件测试职业的发展了解 不够,从而致使许多有志在此发展的年轻人举步不前。因此下面介绍一下海外公司成熟的软件测试行业职位分布状况,我国一些在软件测试行业中处于前端的公司与 之也相仿,这能够做为软件测试 职业规划 的参考,给新人一个导向。
各个职业阶段所需技能
第一阶段:(测试员)初级测试工程师
自身条件:初入行具有计算机专业学位或一些手工测试经验的我的。
具体工做:执行测试用例,记录bug,并回归测试,经过qtp等测试工具录制回归测试脚本,并执行回归测试脚本。
学习方向:开发测试脚本而且开始熟悉测试生存周期和测试技术。
第二阶段:(测试工程师)程序分析员
自身条件:有1~3年工做经验的测试工程师或程序员。具备初步的自动化测试能力,完善自动化测试脚本。
具体工做:设计和编写测试用例,编写自动测试脚本程序且担任测试编程初期的领导工做。
学习方向:拓展编程语言、操做系统、网络与数据库方面的技能 。
第三阶段:(中级测试工程师)程序分析员
自身条件:有3~5年经验的测试工程师或程序员。负责管理1~3名测试工程师或程序员,具备必定的行业业务知识,储备系统分析员的能力。
具体工做:帮助开发或维护测试或编程标准与过程,分析软件需求,得到测试需求。肯定测试需求相应的测试方法,得到测试策略方案。参与同行的评审(软件需求,软件测试计划等),并为其它初级的测试工程师或程序员充当顾问。
学习方向:继续拓展编程语言、操做系统、网络与数据库方面的技能。
第四阶段:(高级测试工程师)测试组负责人
自身条件:有5~8年经验的测试工程师或程序员。具备丰富的行业业务知识,具备系统分析员的能力,专长性能测试等。
具体工做:负责管理5~8名测试工程师或程序员。集中于技能方面,担负一些进度安排和工做规模/成本估算职责。分析性能瓶颈的缘由,为开发团队提供bug解决策略。
学习方向:性能测试,测试技能
第五阶段:(资深安全或性能测试工程师)测试/编程高级负责人
自身条件:有8~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年)
此时的你,即将步入中年,不管是曾经专一技术仍是偏心管理的,都面临着家庭和社会的双重压力,你不可能像年轻人同样成天拼搏了,你须要稳定,所以,不能频繁的跳槽,建议考虑比较正规且有潜力的企业,要考虑给本身一个长远的发展规划。
html
来自IT公司面试手册 前端