测试工程师职业规划
测试工程师职业规划(一)
一、背景分析:软件开发测试工程师
根据有关职位统计资料显示,在国外大多数软件公司, 1 个软件开发工程师就需要辅有 2 个软件测试工程师。目前,软件测试自动化技术在我国则刚刚被少数业内专家所认知,而这方面的专业技术人员在国内更是凤毛麟角。根据对近期网络招聘 IT 人才情况的了解,许多正在招聘软件测试工程师的企业很少能够在招聘会上顺利招到合适的人才。
随着中国 IT 行业的发展,产品的质量控制与质量管理 正逐渐成为企业生存与发展的核心。从软件、硬件到系统集成,几乎每个中大型 IT 企业的产品在发布前都需要大量的质量控制、测试和文档工作,而这些工作必须依靠拥有娴熟技术的专业软件人才来完成。而软件测试工程师就是其中之一,目前已成为各类科技企业紧急征召的重要对象。
据了解,由于软件测试工程师处于重要岗位,所以必须具有电子、电机类相关专业知识背景,并且还应有两年以上的实际操作经验。他们应熟悉中国和国际软件测试标准,熟练掌握和操作国际流行的系列软件测试工具,能够承担比较复杂的软件分析、测试、品质管理等任务,并能独立担任测试、品质管理部门的负责人。一般情况,软件测试工程师可分为测试工程师、高级测试工程师和资深测试工程师三个等级。
在具体工作过程中,测试工程师的工作是利用测试工具按照测试方案和流程对产品进行功能和性能测试 ,甚至根据需要编写不同的测试工具,设计和维护测试系统,对测试方案可能出现的问题进行分析和评估。对软件测试工程师而言,必须具有高度的工作责任心和自信心。任何严格的测试必须是一种实事求是的测试,因为它关系到一个产品的质量问题,而测试工程师则是产品出货前的把关人,所以,没有专业的技术水准是无法胜任这项工作的。同时,由于测试工作一般由多个测试工程师共同完成,并且测试部门一般要与 其他 部门的人员进行较多的沟通,所以要求测试工程师不但要有较强的技术能力而且要有较强的沟通能力。
因此,在企业内部,软件测试工程师基本处于 “ 双高 ” 地位,即地位高、待遇高,有的人月薪可高达 8000 元。可以说他们的职业前景非常广阔,从近期的企业人才需求和薪金水平来看,软件测试工程师的年工资有逐年上升的明显迹象。测试工程师这个职位必将成为 IT 就业的新亮点。
二、做软件测试至少要有四种能力
曾经在方正研究院担任测试工程师的肖先生分析说,能胜任软件测试工程师的人,至少需要以下几个能力。
一、缜密的逻辑思维能力。为应对软件使用者千差万别的使用习惯和软件在使用过程中出现的各种现象,软件测试工程师应具有逆向思维能力,能够以用户角度出发,捕获一切可能性,对细节有不同寻常的关注能力。
二、出色的沟通能力。优秀的软件测试工程师,应具备出色的沟通和表达能力。既能和技术开发人员沟通,又能简洁明了地向客户、管理者等这些非技术人员阐述系统在哪方面有缺失。当发现软件有问题时,不仅需要跟开发人员沟通,找到问题出在哪儿,阐述自己挑错的理由,有时候甚至要提出解决方案,直接参与前期需求和代码的修改。
三、全面的技术能力。作为软件测试工程师,虽然无须精通各种语言各类技术,但必须全面理解被测软件系统,明白该使用何种工具进行测试。
四、耐得住性子。软件测试工作是枯燥的,甚至是重复性的,有时需要花费惊人的时间去分离、识别和分派一个错误,因此需要测试人员能静得下心、耐得住性子,心浮气躁是做不好的。
三、职业规划:
第一阶段:( 测试员) 初级测试工程师( 初出校门)
自身条件:初入具备计算机专业学位,有一些手工测试经验。
具体工作:执行测试用例,记录bug ,并回归测试,通过qtp 等测试工具录制回归测试脚本,并执行回归测试脚本。
学习方向:开发测试脚本并且开始熟悉测试生存周期和测试技术。
第二阶段:( 测试工程师) 程序分析员(1-2 年)
自身条件:有1~2 年工作经验。具有初步的自动化测试能力,完善自动化测试脚本。
具体工作:设计和编写测试用例,编写自动测试脚本程序且担任测试编程初期的领导工作。
学习方向:拓展编程语言、操作系统、网络与数据库方面的技能。
第三阶段:( 高级测试工程师) 程序分析员(3 —4 )
自身条件:有3~4 年经验。具有一定的行业业务知识,储备系统分析员的能力。
具体工作:帮助开发或维护测试或编程标准与过程,分析软件需求,获得测试需求。确定测试需求相应的测试方法,获得测试策略方案。参与同行的评审 ( 软件需求,软件测试计划等) ,并为其它初级的测试工程师或程序员充当顾问。
学习方向: 继续拓展编程语言、操作系统、网络与数据库方面的技能。
第四阶段:测试组负责人(4-6 )
自身条件:有4~6 年经验。具有丰富的行业业务知识,具有系统分析员的能力,专长性能测试。
具体工作:负责管理1~3 名测试工程师或程序员。集中于技能方面,担负一些进度安排和工作规模/ 成本估算职责。分析性能瓶颈的原因,为开发团队 提供bug 解决策略。
学习方向:性能测试,测试技能。
第五阶段:( 资深安全或性能测试工程师) 测试/ 编程高级负责人(6-10 )
自身条件:有6~10 年经验的测试工程师或程序员。
具体工作:负责管理8~10 名技术人员。性能测试整体方案设计,软件系统性能问题定位和性能优化,内存优化及分析数据溢出等,分析系统的安全漏洞等。负责进度安排、工作规模/ 成本估算、按进度表和预算目标交付产品。负责开发项目的技术方法。为一些用户提供支持与演示。
学习方向:开发一些特定领域的技术专长。
第六阶段:测试/ 质量保证/ 开发项目经理。
自身条件:有 10 多年的工作经验。 (10 年及之后 )
具体工作:管理8 名或更多的人员参加的1 个或多个项目。负责这一领域( 测试/ 质量保证/ 开发) 内的整个开发生存周期业务。为一些用户提供交互和 大量演示。负责项目成本、进度安排、计划和人员分工
第七阶段:( 公司级质量总监) 计划经理。
自身条件:有10 年以上开发与支持( 测试/ 质量保证) 活动方面的经验。
具体工作:管理从事若干项目的人员以及整个开发生存周期。负责把握项目方向与盈亏责任。
四、测试工程师的等级
等级:职责内容
初级测试工程师:按照测试方案和流程对产品进行功能测试;检查产品是否有缺陷;编写简单测试方案,提交项目组长。
中级测试工程师:能够编写测试方案、测试文档、与项目组一齐制定测试阶段的工作计划;能够在项目中合理利用测试工具来完成测试任务。
高级测试工程师:掌握测试与开发技术;对所测试软件对口的行业非常了解;能够对测试方案可能出现的问题能够进行分析和评估。
“软件测试人员一般有三大发展方向。”微软公司的陈宏刚博士介绍说,一是走软件测试的技术路线,成长为高级软件测试工程师。二是向管理方向发展,从测试工程师到组长,再到测试经理,以至更高的职位。三是可以换职业,做项目管理或做开发人员。经过软件测试岗位洗礼的人才往往是行业中的多面手,在技术、管理、市场甚至其他非 IT 领域都能得到良好的发展。当然这首先要取决于从业者是否具备长远眼光,对自己的职业生涯进行合理规划。
五、从业者说
HiAll 求职社区,大学生求职第一社区,是广大应届生毕业生或在校生求职、交流、互动的论坛。 http://fanwen.
更多时候要反向思维 贺伊娜 方正软件测试工程师 从业六年
我是在从事软件开发工作一年多后,转向软件质量工作。软件开发工作和软件测试工作在工作上都有一定的压力,只是阶段不同。软件开发工作的压力集中在前期编码,而软件测试工作是在后期验证测试的时候比较紧张繁忙。
这两项工作是有所不同的,软件开发工作被公认为是一种创造性的工作,运用的是正向思维的方式。而软件测试工作其实也不是不需要创造性,只是它要根据原始需求,验证编码,在思维上更多使用的是逆向方式,根据已知的方向进行发挥,从中找出并预见到软件开发中的不完善之处,因而,相比之下,软件测试人员更需要具有独特的反向思维能力。
发现故障时特别兴奋 马尔丹 雅虎中国测试工程师 从业三年
做软件测试这个工作要有耐心、责任心,而且还要经常加班,不过好在已经习惯了。有时候很枯燥,每天对着两台电脑不停地工作,但是一旦发现bug(故障)的时候就特别兴奋,特别有成就感。产品就好像自己的孩子,没发布前总是提心吊胆的,生怕出些纰漏,一旦这个产品发布出去,在一段时间里没有出现质量问题反馈,心里感觉还是比较踏实的。
觉得自己越来越被重视 杨银辉 雅虎中国测试工程师 从业五年
测试工作最大的体会就是—— 累!发现软件有问题的时候心里特别庆幸。随着软件测试工程师的地位逐步提高而且越来越被重视,自己对工作也越来越有干劲。现在资深的软件测试工程师不多,今后在这方面人才的培训要多发展。以前觉得只有女孩子才适合做这种细致的工作,现在男孩子不再仅限于做开发,很多人都在向测试方面转移。但是,不论在什么工作岗位上,认真是最关键的。
测试工程师职业规划(二)
软件测试工程师职业生涯阶段发展方向分析:
由于新时代下国内软件测试行业目前的发展迅速、需求旺盛,在国内的软件测试职位晋升一般要比国外快,但因行业本身太年轻,大家对软件测试中软件测试职业的发展了解不够,从而导致许多有志在此发展的年轻人举步不前。所以下面介绍一下海外公司成熟的软件测试行业职位分布情况,我国一些在软件测试行业中处于前端的公司与之也相仿,这可以作为软件测试 职业规划 的参考,给新人一个导向。
第一阶段:(测试员) 初级测试工程师
自身条件:初入行具备计算机专业学位或一些手工测试经验的个人。
具体工作:执行测试用例,记录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年)
此时的你,即将步入中年,不论是曾经专注技术还是偏爱管理的,都面临着家庭和社会的双重压力,你不可能像年轻人一样整天拼搏了,你需要稳定,因此,不能频繁的跳槽,建议考虑比较正规且有潜力的企业,要考虑给自己一个长远的发展规划 。
正因为有前期的细节的背景的支撑,此时,你需要努力提升自己的宏观把握能力。哪怕做技术的,也要考虑适当的转型管理(中国特色