# 测试领域还有发展空间吗？


今天看到一篇讨论测试职业发展的文章，[原文](https://automationhacks.io/2024-10-12-is-there-growth-in-testing)比较中肯，我结合自己的经历，稍微发展一下，供大家参考。

## 常见的困惑

下面一些问题是测试人员的常见困惑。

- "我听说测试工作 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 工程师等。

正如你所见，这个世界没有终点，总有无尽的挑战在等待着你，同时也伴随着丰厚的回报。

你能做的就是：

努力工作，享受乐趣，创造历史

这是亚马逊的座右铭，也是总结这篇博客的绝佳方式。

继续为你的客户提供卓越的价值，因为这才是真正重要的。

如果你的公司做得好，你也会做得好，你周围的领导也会很乐意分享更多的责任。

成长会自然而然地发生。

去努力吧，干得漂亮！

