相信有很多测试小伙伴们在刚工作不久之后,会迷茫自己以后应该怎么发展。这里有我在工作时接触到的,也有在网上看到的整理了一下,希望能帮到大家。
软件测试在职业发展上,概括说来可以分为“管理”和“技术”两大类。除此之外,软件测试还可以在质量领域发展。
一、软件测试在管理上的发展
软件测试管理是大家比较熟悉的软件测试职业发展路线之一,比较流行的设置包括测试组长、测试经理、测试代表、测试主管、测试总监、测试部长等。不同的公司中相同职位的工作范围可能略有不同,按照管理级别的高低,大致又可分为以下三级。
1、初级软件测试管理者:测试组长
测试组长一般由有两年左右工作经验的测试工程师担当。
由于企业的规模和产品复杂度存在差异,测试组长可能会管理2~5名软件测试工程师。一般来说,测试组长不会负责整个产品,只是负责其中的一个或多个特性。
测试组长并不是完全的管理者。他们从事的管理工作大多仅集中在测试计划的制订和执行上;在产品测试上,他们常会负责产品重点、难点的测试;除此之外,他们还要负责带新员工,让测试工作可以顺利进行下去。
2、中级软件测试管理者:测试经理、测试代表、测试主管
测试经理、测试代表、测试主管排名不分先后,都属于中级软件测试管理者,一般由有4年左右工作经验的测试工程师担当。
中级软件测试管理者负责的对象为产品,可能会管理10~20名软件测试工程师(其中包括测试组长)。
中级软件测试管理者最重要的工作还是运作测试项目,制订并执行测试计划,测试结束后还需要对产品质量进行评估,给出产品发布建议。要做好这些,需要他们掌握更多的项目管理知识,深入理解项目价值,做好项目范围管理、质量管理、成本管理、时间管理、风险管理和人力管理。除此之外,他们还要和开发人员、市场人员、服务人员等密切配合、紧密合作,其间,沟通协调能力必不可少。
他们依然是产品测试的骨干,还是会负责产品测试的重点、难点工作,所以他们也不是纯粹的管理者。
3、高级软件测试管理者:测试总监、测试部长
测试总监、测试部长是软件测试的高级管理者,一般都有10年以上软件测试工作经验,负责的对象是产品线或公司。
高级软件测试管理者需要理解产品的商业目标,直接对产品成功负责。他们需要对测试团队的发展负责,进行人员招聘和培养,留住关键人才,提高或更新不合格人员,提升团队的胜任力和职业能力;负责项目财务管理(预算和控制);负责资源的计划与分配;持续改进测试能力,提升效率和产品质量,从测试的角度对交付产品的成本、周期和质量负责。
我认为,即使是高级软件测试管理者,也不可能是纯粹的管理者。他们依然需要保持对软件测试各种技术的领先性,因为软件测试技术是上述工作能够顺利开展的基础。
二、软件测试在技术上的发展
软件测试在技术上的发展方向,似乎不像软件测试在管理上的发展方向那么明确。一种观点是按照测试资历和能力分为助理软件测试工程师(或者是实习软件测试工程师)、初级软件测试工程师、中级软件测试工程师、高级软件测试工程师和主任软件测试工程师(或是资深软件测试工程师)。但是我认为这种分类方式并没有突出“软件测试技术”,所以我个人更倾向于一种简单的分法——产品测试技术和专项测试技术。
产品测试技术是指把某个具体(或一类)产品测试得更好的技术;专项测试技术并不是针对具体的产品,而是测试领域普遍适用的技术。
1、产品测试专家:软件测试架构师
软件测试在技术上可以向产品测试技术专家方向发展。
有些公司称产品测试技术专家为软件测试系统架构师(简称为测试架构师),我认为这个称谓是非常贴切的。
测试架构师和系统架构师在职责上是有一定对应关系的。
系统架构师在业务(需求)向开发技术转换的过程中起到了桥梁作用,负责产品开发的整体架构设计;测试架构师是在业务(需求)向测试技术转换的过程中起桥梁作用,负责产品测试的整体架构设计。
系统架构师负责对产品开发中的技术重点和难点进行研究与攻关;测试架构师负责对产品测试中的测试重点和难点进行研究与攻关,为测试组织提供最优的测试方法。
系统架构师协助开发项目经理制订项目计划和控制项目进度;测试架构师负责协助测试经理制订测试项目计划和控制测试项目进度。
系统架构师负责组织开发项目团队内部的技术培训工作;测试架构师负责组织测试团队内部的技术培训工作。
系统架构师需要有一定的战略规划能力、业务建模能力、数据分析处理能力、面向产品生命周期的质量保证和持续改进能力;测试架构师同样需要这些能力。
有人评价系统架构师是产品开发的“灵魂”,那么测试架构师就是产品测试的“灵魂”。
2、专项测试工程师
软件测试在技术上,还可以向专项测试工程师方向发展,成为软件测试某领域的专家。
从测试体系的角度来看,软件测试发展至今,已经形成了一套完整的测试体系。测试体系中的任何一个环节,测试策略、测试分析设计、测试执行、测试评估、测试流程等每个领域的内涵都很丰富,包含了很多可以深入发展研究的技术,比如自动化测试技术、测试工具(包括产品测试模拟工具和测试流程管理工具)开发、缺陷分析和测试评估技术等。
从产品质量属性的角度来看,专项测试技术还可以包含性能测试技术、可靠性测试技术、安全性测试技术等。
实际上,产品测试专家(软件测试架构师)也需要精通上文提到的各项测试技术,如测试分析和设计、自动化测试技术、性能测试技术。但是,产品测试专家使用的任何技术都是为产品服务的,他需要针对当前测试的特定产品选择最合适的测试技术,并针对不同的产品对测试技术进行适配调整。而专项测试技术专家并不关注具体产品,而是偏向技术共性方面的研究。
表2-1和表2-2概括了一些常见的专项测试技术发展方向,供大家参考。