软件测试的职业发展方向

软件测试的职业发展方向

我的一位同事曾经很认真地问过我一个问题。他说他现在从事软件测试工作已经4年了,但是他不知道现在的工作和自己在工作3年时有什么不同,他想旁观者清,也许我能回答他的问题。此外他还想知道他做软件测试工作到第5年或第6年会怎么样。后来他在工作到第5年的时候转岗了。虽然他已经转岗了,但是最近联系时,他依然问我这个问题,似乎这个问题困惑他很深、很久了。

  这件事情对我的触动很大,我相信这个问题是带有一定普遍性的,我也开始系统思考这个问题。

  软件测试是一个缺乏发展空间、做到一定阶段后只能通过“转岗”来寻找发展机会的职业吗?

肯定不是。

  Martin Pol,欧洲业界公认的“Test Guru”(大佬,精神领袖),1998年欧洲第一届杰出测试贡献奖获得者,并获得英国骑士勋章。Martin在测试领域已经几十年,最后在测试工作上名利双收。而且,据说他的大女儿和小女儿都是做测试的,这是名副其实的“测试世家”。

但是Martin的例子并不能解决“软件测试本身有哪些发展”这个问题。作为“精神领袖”,Martin只能让我们看到最美好的结果,让我们知道这条路是能走通的。有人已经成功了,这给了我们信心和希望。

那么软件测试的职业发展方向有哪些?作为软件测试工程师,又该如何为自己制订职业发展规划?

软件测试的职业发展方向

软件测试的职业发展方向

软件测试在职业发展上,概括说来可以分为“管理”和“技术”两大类。除此之外,软件测试还可以在质量领域发展。

软件测试的职业发展方向

一、软件测试在管理上的发展

软件测试管理是大家比较熟悉的软件测试职业发展路线之一,比较流行的设置包括测试组长、测试经理、测试代表、测试主管、测试总监、测试部长等。不同的公司中相同职位的工作范围可能略有不同,按照管理级别的高低,大致又可分为以下三级。

  1、初级软件测试管理者:测试组长

  测试组长一般由有两年左右工作经验的测试工程师担当。

  由于企业的规模和产品复杂度存在差异,测试组长可能会管理2~5名软件测试工程师。一般来说,测试组长不会负责整个产品,只是负责其中的一个或多个特性。

测试组长并不是完全的管理者。他们从事的管理工作大多仅集中在测试计划的制订和执行上;在产品测试上,他们常会负责产品重点、难点的测试;除此之外,他们还要负责带新员工,让测试工作可以顺利进行下去。

  2、中级软件测试管理者:测试经理、测试代表、测试主管

  测试经理、测试代表、测试主管排名不分先后,都属于中级软件测试管理者,一般由有4年左右工作经验的测试工程师担当。

  中级软件测试管理者负责的对象为产品,可能会管理10~20名软件测试工程师(其中包括测试组长)。

  中级软件测试管理者最重要的工作还是运作测试项目,制订并执行测试计划,测试结束后还需要对产品质量进行评估,给出产品发布建议。要做好这些,需要他们掌握更多的项目管理知识,深入理解项目价值,做好项目范围管理、质量管理、成本管理、时间管理、风险管理和人力管理。除此之外,他们还要和开发人员、市场人员、服务人员等密切配合、紧密合作,其间,沟通协调能力必不可少。

他们依然是产品测试的骨干,还是会负责产品测试的重点、难点工作,所以他们也不是纯粹的管理者。

  3、高级软件测试管理者:测试总监、测试部长

  测试总监、测试部长是软件测试的高级管理者,一般都有10年以上软件测试工作经验,负责的对象是产品线或公司。

  高级软件测试管理者需要理解产品的商业目标,直接对产品成功负责。他们需要对测试团队的发展负责,进行人员招聘和培养,留住关键人才,提高或更新不合格人员,提升团队的胜任力和职业能力;负责项目财务管理(预算和控制);负责资源的计划与分配;持续改进测试能力,提升效率和产品质量,从测试的角度对交付产品的成本、周期和质量负责。

我认为,即使是高级软件测试管理者,也不可能是纯粹的管理者。他们依然需要保持对软件测试各种技术的领先性,因为软件测试技术是上述工作能够顺利开展的基础。

软件测试的职业发展方向

二、软件测试在技术上的发展

  软件测试在技术上的发展方向,似乎不像软件测试在管理上的发展方向那么明确。一种观点是按照测试资历和能力分为助理软件测试工程师(或者是实习软件测试工程师)、初级软件测试工程师、中级软件测试工程师、高级软件测试工程师和主任软件测试工程师(或是资深软件测试工程师)。但是我认为这种分类方式并没有突出“软件测试技术”,所以我个人更倾向于一种简单的分法——产品测试技术和专项测试技术。

产品测试技术是指把某个具体(或一类)产品测试得更好的技术;专项测试技术并不是针对具体的产品,而是测试领域普遍适用的技术。

  1、产品测试专家:软件测试架构师

  软件测试在技术上可以向产品测试技术专家方向发展。

  有些公司称产品测试技术专家为软件测试系统架构师(简称为测试架构师),我认为这个称谓是非常贴切的。

  测试架构师和系统架构师在职责上是有一定对应关系的。

  系统架构师在业务(需求)向开发技术转换的过程中起到了桥梁作用,负责产品开发的整体架构设计;测试架构师是在业务(需求)向测试技术转换的过程中起桥梁作用,负责产品测试的整体架构设计。

  系统架构师负责对产品开发中的技术重点和难点进行研究与攻关;测试架构师负责对产品测试中的测试重点和难点进行研究与攻关,为测试组织提供最优的测试方法。

  系统架构师协助开发项目经理制订项目计划和控制项目进度;测试架构师负责协助测试经理制订测试项目计划和控制测试项目进度。

  系统架构师负责组织开发项目团队内部的技术培训工作;测试架构师负责组织测试团队内部的技术培训工作。

  系统架构师需要有一定的战略规划能力、业务建模能力、数据分析处理能力、面向产品生命周期的质量保证和持续改进能力;测试架构师同样需要这些能力。

有人评价系统架构师是产品开发的“灵魂”,那么测试架构师就是产品测试的“灵魂”。

  2、专项测试工程师

  软件测试在技术上,还可以向专项测试工程师方向发展,成为软件测试某领域的专家。

  从测试体系的角度来看,软件测试发展至今,已经形成了一套完整的测试体系。测试体系中的任何一个环节,测试策略、测试分析设计、测试执行、测试评估、测试流程等每个领域的内涵都很丰富,包含了很多可以深入发展研究的技术,比如自动化测试技术、测试工具(包括产品测试模拟工具和测试流程管理工具)开发、缺陷分析和测试评估技术等。

  从产品质量属性的角度来看,专项测试技术还可以包含性能测试技术、可靠性测试技术、安全性测试技术等。

  实际上,产品测试专家(软件测试架构师)也需要精通上文提到的各项测试技术,如测试分析和设计、自动化测试技术、性能测试技术。但是,产品测试专家使用的任何技术都是为产品服务的,他需要针对当前测试的特定产品选择最合适的测试技术,并针对不同的产品对测试技术进行适配调整。而专项测试技术专家并不关注具体产品,而是偏向技术共性方面的研究。

  表2-1和表2-2概括了一些常见的专项测试技术发展方向,供大家参考。

软件测试的职业发展方向


软件测试的职业发展方向
阅读原文,学习更多测试知识~