首先谈谈我在软件测试行业的亲身经历:我的一位同事曾经很认真地问过我一个问题,他说他现在从事软件测试工作已经4年了,但是他不知道现在的工作和自己在工作3年时有什么不同,他想旁观者清,也许我能回答他的问题。此外他还想知道他做软件测试工作到第5年或第6年会怎么样。后来他在工作到第5年的时候转岗了。虽然他已经转岗了,但是最近联系时,他依然问我这个问题,似乎这个问题困惑他很深、很久了。
这件事情对我的触动很大,我相信这个问题是带有一定普遍性的,我也开始系统思考这个问题。
软件测试是一个缺乏发展空间、做到一定阶段后只能通过“转岗”来寻找发展机会的职业吗?
肯定不是。
Martin Pol,欧洲业界公认的“Test Guru”(大佬,精神领袖),1998年欧洲第一届杰出测试贡献奖获得者,并获得英国骑士勋章。Martin在测试领域已经几十年,最后在测试工作上名利双收。而且,据说他的大女儿和小女儿都是做测试的,这是名副其实的“测试世家”。
但是Martin的例子并不能解决“软件测试本身有哪些发展”这个问题。作为“精神领袖”,Martin只能让我们看到最美好的结果,让我们知道这条路是能走通的。有人已经成功了,这给了我们信心和希望。
那么软件测试的职业发展方向有哪些?作为软件测试工程师,又该如何为自己制订职业发展规划?
软件测试职业生涯主要分为七个发展阶段,如下:
· 第一阶段:初级测试工程师
初级测试工程师基本上是初入行具备计算机专业学位或一些手工测试经验的个人。具体做一些执行测试用例,记录bug,并回归测试,通过测试工具录制回归测试脚本,并执行回归测试脚本的工作。如果此阶段的测试工程师向发展到下一个阶段的话就需要学习开发测试脚本并且开始熟悉测试生存周期和测试技术。
· 第二阶段:程序分析员或者测试工程师
此阶段的测试人员基本有了1~2年工作经验。具有初步的自动化测试能力,完善自动化测试脚本。主要工作是设计和编写测试用例,编写自动测试脚本程序且担任测试编程初期的领导工作。此阶段的测试人员想发展的下一阶段必须拓展编程语言、操作系统、网络与数据库方面的技能 。
· 第三阶段:程序分析员或者高级测试工程师
此阶段的测试人员基本有了3~4年经验的测试工程师或程序员。具有一定的行业业务知识,储备系统分析员的能力。此阶段工作主要是帮助开发或维护测试或编程标准与过程,分析软件需求,获得测试需求。确定测试需求相应的测试方法,获得测试策略方案。参与同行的评审(软件需求,软件测试计划等),并为其它初级的测试工程师或程序员充当顾问。如果想继续往上发展必须继续拓展编程语言、操作系统、网络与数据库方面的技能。
· 第四阶段:测试组负责人
此阶段的测试工程师有了4~6年经验的测试工程师或程序员。具有丰富的行业业务知识,具有系统分析员的能力,专长性能测试。工作中主要负责管理1~3名测试工程师或程序员。集中于技能方面,担负一些进度安排和工作规模/成本估算职责。分析性能瓶颈的原因,为开发团队提供bug解决策略。如果想往上晋升需要深度学习性能测试等测试技能。
· 第五阶段:资深安全或性能测试工程或测试高级负责人
此阶段的测试工程师有了6~10年经验的测试工程师或程序员。工作中主要负责负责管理8~10名技术人员。性能测试整体方案设计,软件系统性能问题定位和性 能优化内存及分析数据溢出等,分析系统的安全漏洞等,负责进度安排、工作规模/成本估算、按进度表和预算目标交付产品。负责开发项目的技术方法。为一些用户提供支持与演示。如果想再往上发展,需要开发自己一些特定领域的技术专长。
· 第六阶段:测试/质量保证/开发(项目)、经理
此阶段的工程师已经有了10多年的工作经验。工作中主要负责管理8名或更多的人员参加的1个或多个项目。负责这一领域(测试/质量保证/开发)内的整个开发生存周期业务。为一些用户提供交互和大量演示。负责项目成本、进度安排、计划和人员分工。
· 第七个阶段:(公司级质量总监)计划经理
此阶段的工程师至少有15年以上开发与支持(测试/质量保证)活动方面的经验。主要负责管理从事若干项目的人员以及整个开发生存周期。负责把握项目方向与盈亏责任。
想学习却无从下手,该如何学习?
这里我准备了对应上面的每个知识点的学习资料、可以自学神器,已经项目练手。
世界的模样取决于你凝视它的目光,自己的价值取决于你的追求和心态,一切美好的愿望,不在等待中拥有,而是在奋斗中争取。
如果我的博客对你有帮助、如果你喜欢我的文章内容,请 “点赞” “评论” “收藏” 一键三连哦!