今天看到一篇讨论测试职业发展的文章,原文比较中肯,我结合自己的经历,稍微发展一下,供大家参考。

常见的困惑

下面一些问题是测试人员的常见困惑。

  • “我听说测试工作 10 年就到头了,我是不是应该转向开发或管理?”
  • “我的经理建议说,成为管理者是测试职业发展的必经之路”
  • “我感到困惑,不知道如何从 QA 自动化转型为 SDET”
  • “测试是不是一个死胡同工作?这个领域真的有职业发展前景吗?”

职业阶梯

在国外,测试领域主要有 3 种角色。

  • 测试工程师
  • 测试开发工程师(SDET)
  • 工程经理(EM)

其中测试和测试开发被定义为个人贡献者。

通常对个人贡献者有以下级别划分:

  • 实习生、新手、入门级(0-2 年)
  • 中级(2-6 年)
  • 高级(6-9 年)
  • Staff/主管级(8-12 年)(可能有直接下属)
  • 架构师/首席(12 年以上)(可能有直接下属)
  • …更高级别如高级首席/架构师、杰出工程师(比较罕见)

工程经理或者技术经理大概包含下面的级别。

  • 工程经理(5-8 年)
  • 高级工程经理(8-12 年)
  • 总监(12-15 年)
  • VP(副总裁)(15 年以上)
  • SVP(高级副总裁)(15 年以上)
  • GM(总经理)(15 年以上)

VP 及以上的职级通常只在大公司才有,但直到总监级别的职位却很常见。很多公司可能会根据职位需求和公司规模来设置职级上限。

在国内情况也差不多,无非就是个人贡献者的天花板可能是技术专家,技术经理的潜力可能更大一点。

晋升方式

大致来说,一般的晋升方式如下:

  • 学习:在你的领域成为深度专家,确保你具备完成工作所需的技术能力,这可能涉及学习新技术、技术栈、编程语言或人际交往技能。
  • 出色执行:你应该清楚理解自己在组织中的角色,与主管沟通确保双方对此有共识,然后去执行、执行、再执行。持续完成一个又一个项目,始终把客户放在心上,做到最好。确保你是团队中最优秀的 5%,努力在各个方面创造价值,成为团队的力量倍增器。
  • 提前表现:关注你的下一级别职位的期望,并确保承担其中的一些职责。持续完成这些任务,展现出持续强劲的表现记录。绩效评估通常是滞后的,如果你已经在以更高级别的标准在工作,而且你的主管也不错,那么你很可能很快就会得到晋升。
  • 寻求指导与传授:找到公司内部、本地区或全球最优秀的人,跟随他们。向他们学习,吸收他们的智慧。寻找导师,与他们讨论想法,然后回去实践并展示实际价值。你也应该把所学传授给身边的人,帮助他们提升。

在国内,可能还包含

  • 运气。这里体现的是选择大于努力,加入一个业务好并且高速发展的团队,晋升的机会远远大于业务一般而且走下坡路的团队。
  • 创新能力。国内其实非常卷创新的,测试需要晋升可能需要周期性的“搞事情”,落地一些高概念或者新技术就可能给管理者留下深刻的印象。
  • 指标落地能力。能定指标,落地指标以及提升指标。其实就是换种方式去卷。

拓展领域

打怪升级不是职业生涯的全部。

你会发现,仅仅把薪酬、职称和职级作为成长的标准,最终可能会显得很肤浅。

请不要误解我的意思,这些确实很重要,你需要在这方面做得好。

✅ 你的生活和家庭都需要你这样做。我会鼓励你继续为此努力,确保你的付出得到应有的回报。

❌ 但这并不是唯一重要的事。

当人们说测试工作在 X 年后就到头了时,他们实际上是用职级阶梯作为唯一的成长指标,这种观点过于肤浅。

测试不仅仅是关于你的工作年限。

它是软件开发生命周期中的关键环节,没有它,任何软件都不应该上线。

忽视这一点将是愚蠢的。

这个领域有大量的广度需要探索,如果你想成为这个领域的大师,年轻的武士啊,你还有很多要学习和体验的。

让我试着给你展示一下我是如何思考这个问题的:

探索领域

我们可以将软件工程世界分为 6 个广泛的领域:

  • 移动端
  • Web 端
  • 后端
  • 基础设施
  • 数据
  • 机器学习/人工智能

每个领域都有机会在不同层次编写测试:

  • 测试金字塔
  • 单元测试
  • 集成测试
  • 端到端测试

更广泛的应用领域

  • 工程效率
  • 代码覆盖率
  • 探索性测试
  • 建设志同道合的同行社区
  • 测试框架
  • 测试基础设施
  • 测试工具
  • CI/CD
  • 安全性
  • 性能
  • 可访问性
  • 混沌/韧性工程

你可以将这三个方面进行组合,每种组合都是一个值得深入探索的独特方向。

例如:移动端测试基础设施、数据安全、数据性能、后端混沌/韧性等。

这是一个广阔的天地,等待你去探索。

工程技术能力

除了在上面的领域做排列组合之外,我们还可以探索更深层次的软件技能。

  • 阅读代码
  • 编写代码
  • 理解编程原则
  • 理解系统设计:数据库、队列、缓存、CDN 和网关是如何工作和扩展的,如何测试它们
  • 构建解决方案
  • 等等…

软技能

要成长为一个成熟的领导者,你还需要精炼的人际交往能力。

如果你是管理者或像架构师这样的领导者,这些都是基本要求:

  • 与同事建立信任
  • 推动跨职能项目
  • 项目管理
  • 强大的书面和口头沟通能力
  • 同理心
  • 服务型领导
  • 通过一对一指导来培养他人
  • 帮助他人的职业成长
  • 在内部演讲、全体会议、聚会或会议上进行公开演讲
  • 谈判能力
  • 冲突解决
  • 继任计划和消除团队中的单点故障
  • 制定方向和战略
  • 等等

未来展望

假设你已经在上述大多数领域都有所涉猎,但仍然感到困惑。

那么如何继续成长呢?

首先,恭喜你!🎊

我相信你已经进入了一个拥有这些全面经验的精英群体。

那么,

软件工程是一个庞大的领域。

如果垂直成长遇到了瓶颈,你可以考虑横向发展,转向不同的技能领域,比如开发工程师、产品经理、数据科学家、AI/ML 工程师等。

正如你所见,这个世界没有终点,总有无尽的挑战在等待着你,同时也伴随着丰厚的回报。

你能做的就是:

努力工作,享受乐趣,创造历史

这是亚马逊的座右铭,也是总结这篇博客的绝佳方式。

继续为你的客户提供卓越的价值,因为这才是真正重要的。

如果你的公司做得好,你也会做得好,你周围的领导也会很乐意分享更多的责任。

成长会自然而然地发生。

去努力吧,干得漂亮!