211软件工程-大厂测开

你有没有发现,很多程序员都不愿意干测试?

觉得测试low、测试没技术含量、测试是给开发打下手……这种偏见,让测试岗位的竞争远不如开发激烈。

但我偏偏选了测试开发。

我叫张天策,211软件工程专业毕业,现在在字节跳动当测试开发工程师,年薪40万出头。

不是因为我找不到开发的offer,而是我主动选择的。

高考选专业:软件工程

我老家在成都,我爸是程序员,我妈是护士。

从小在程序员爸爸的熏陶下,我接触电脑比较早。高中的时候,已经能写一些简单的程序了——计算器、记事本、扫雷小游戏……都是我自己琢磨出来的。

高考那年,我考了610分,可以上几所不错的211。我爸说:“学软件工程吧,以后当程序员,赚钱多。”

我想了想,说行。

说实话,选软件工程没有太多情怀,就是觉得”这行好就业”。那时候AI还没这么火,程序员的工资虽然比不上金融,但比起大多数专业,已经算是高的了。

大学四年,我过得比较”技术宅”。

上课、写代码、泡实验室、参加ACM竞赛……室友们都在打游戏的时候,我在刷LeetCode;他们逃课睡觉的时候,我在图书馆看书。

成绩还不错,绩点3.7,排专业前15%。拿了两次校级ACM竞赛二等奖,一次省级程序设计大赛三等奖。

大三的时候,我开始思考未来的方向。

开发or测试?

这个问题我想了很久。

开发 vs 测试:我的选择

开发岗的竞争太激烈了。

大厂开发岗的hc(headcount)越来越少,而投递的人越来越多。2025届秋招,某个头部大厂的后端开发岗,报录比超过500:1。我一个211的本科生,在学历上没有优势,在项目经验上也不如研究生,想拿到offer难度很大。

但我发现了一个”捷径”——测试开发。

测试开发(Test Development),简称测开,是软件测试岗位中偏”技术”的那一类。相比于手动测试点点点,测开需要写自动化脚本、开发测试工具、参与产品设计阶段的质量把控。

这个岗位的竞争没那么激烈,但技术含量不低,薪资也不比开发低多少。

我分析了一下自己的情况:

优势:代码能力强,有ACM背景,编程基础扎实。

劣势:学历一般,项目经验不足。

测开更看重的是”能不能写代码”,而不是”项目经历有多丰富”。对于我这种项目经验不多但编程能力强的人来说,测开是一个很好的切入点。

我决定主攻测开。

准备秋招:两个月刷穿LeetCode

决定走测开路线之后,我开始了系统性的准备。

测开面试跟开发面试差不多,考察的内容包括:

  1. 数据结构与算法:数组、链表、树、图、动态规划……这是基本功,必须刷。

  2. 计算机基础:操作系统、网络、数据库……这些也要复习。

  3. 测试专业知识:测试方法论、测试用例设计、测试工具、自动化框架……

  4. 项目经历:这个比较弱,我就把自己做过的几个小项目好好梳理了一遍。

其中,最重要也是最费时间的,是刷LeetCode。

我给自己定了计划:每天刷5道题,周末刷10道题。两个多月时间,我把Hot 100刷完了,又刷了200道高频题。

刷题的过程很痛苦。

有些题看答案都看不懂,只能反复看、反复思考。有时候一道hard级别的题目,我要花两三个小时才能想出解法。有时候想出来了,写出来的代码却跑不通,要反复调试才能AC。

但我没有放弃。

因为我知道,刷题不是目的��是手段。每刷一道题,我就在巩固一种思想方法、一种数据结构、一种算法思路。这些东西,会内化成我的”编程直觉”,在面试的时候发挥作用。

两个月后,我自信地走进了秋招战场。

字节面试:从笔试到HR面

字节跳动的招聘流程是:笔试→技术面×2→HR面→offer。

笔试是线上进行的,题目是算法题,三道,90分钟。我做了两道半,感觉还行。

一周后,收到面试通知。

一面:技术面

面试官是个三十岁左右的技术leader,看起来挺和善的。寒暄了几句之后,他开始在白板上写题。

“给定一个数组,找出其中第K大的元素。要求时间复杂度O(n)。”

这道题我见过,用快速选择算法(Quick Select)可以做到。我稍微整理了一下思路,开始在白板上写代码。

写了大概40行,一次过。他说:“好的,我再问一个。”

“实现一个LRU Cache,要求get和put的时间复杂度都是O(1)。”

这道题也不难,用哈希表+双向链表可以实现。我画了个图,解释了数据结构的思路,然后开始写代码。

写了大概60行,他看了一会儿,说:“好,你讲讲你写的代码。”

我从头到尾讲了一遍,他点点头,说:“没什么问题。基础挺扎实的。”

然后开始问测试相关的知识。

“你会怎么测试一个电梯?”

我愣了一下,没想到会问这种”软问题”。我整理了一下思路,开始回答:

“首先,我会了解需求——电梯的基本功能是什么?有哪些楼层?有哪些使用场景?”

“然后,我会设计测试用例——正常场景(正常上下楼)、边界场景(最高层、最底层)、异常场景(电梯故障、超载)……”

“最后,我会考虑非功能测试——性能、安全、易用性、兼容性……”

他听完,点点头,说:“回答得不错,思路很清晰。”

然后问了一些其他问题——你最项目里遇到的最大的技术挑战是什么?你怎么保证代码质量的?你用过哪些测试工具?……

我一一回答,感觉还行。

面试结束的时候,他说:“今天就到这里,回去等通知。”

二面:技术面

二面是另一轮技术面,难度比一面高一些。

面试官是个四十岁左右的大叔,看起来更严肃一点。问的问题也更深入。

算法题是:“给定一个字符串,找出其中最长的回文子串。“我写了Manacher算法,这个算法比较复杂,我解释了很久。面试官听完,问了几个细节问题,我都回答上了。

然后开始聊项目。

他问我做过的项目,让我详细介绍。我挑了三个项目——一个是课程设计做了一个聊天软件,一个是参加竞赛做的OJ系统,一个是自己写的一个博客网站。

每个项目他都问了一些细节问题:为什么这么设计?遇到过什么技术难点?怎么解决的?

我觉得这些问题不算难,因为我确实认真做过这些项目,知道每个细节。

最后,他问了一个开放性问题:

“你为什么想做测开,而不是开发?”

我想了想,说:

“测开的技术含量不比开发低,需要写自动化框架、开发测试工具、优化测试流程……这些都是技术活。但测开更关注质量保障,需要从全局视角看待一个产品,这种视角是我感兴趣的。”

他点点头,没有再追问。

HR面

二面结束后两天,收到HR面的通知。

HR是个年轻的女生,说话很温柔。她问了一些常规问题——为什么选字节?为什么做测开?你的职业规划是什么?你对加班怎么看?你有什么想问我的?

我都一一回答了。

关于加班的问题,我说了实话:“我知道互联网公司加班多,但我能接受。前提是有成长空间。”

HR笑了笑,说:“我们确实加班多一些,但加班有加班费,也有调休。”

最后轮到我问问题。我问了团队氛围、培养机制、技术成长路径……她都耐心解答了。

面试结束后,我走出字节大楼,深深地呼了一口气。

不管结果怎么样,我已经尽力了。

入职字节:真实的测开生活

一周后,收到offer。

薪资是年薪40万,包含base+年终奖+股票。这在测开岗位里算是不错的水平。

入职那天,我穿了一件白衬衫,提前半小时到了公司。

HR带我们办入职手续,然后分配到了各自部门。我被分到了”抖音-增长-测试”团队,负责抖音App的质量保障工作。

测开的工作内容,比我想象的要丰富。

自动化测试:这是最核心的工作。我要写自动化测试脚本,覆盖App的核心功能,确保每次发版前都能快速验证。用的技术栈主要是Python+Pytest,还有Appium做移动端自动化。

测试工具开发:有时候,现有的测试工具不好用,我需要自己开发工具。比如,我写了一个日志分析工具,可以自动提取错误日志、生成报告,大大提高了工作效率。

质量把控:测试不只是”找bug”,更重要的是”��防bug”。我会参与需求评审、代码review、测试用例评审……从源头把控质量。

性能测试:App的启动速度、卡顿率、内存占用……这些指标都需要测试。我用PerfDog、Argus等工具做性能测试,输出报告给开发优化。

工作强度确实不小。

刚入职那段时间,我每天加班到九点,周末也偶尔来公司。业务迭代很快,每两周发一个版本,测试时间被压缩得很紧,经常要在短时间内完成大量的测试任务。

但我觉得能学到东西。

字节的技术氛围很好,大家都很愿意分享。我跟着团队里的前辈学到了很多——怎么设计自动化框架、怎么做性能分析、怎么处理复杂的测试场景……这些都是学校里学不到的。

成长与收获

入职两年了,我从一个”新人”变成了”老人”。

从最初只能做一些边边角角的工作,到现在能独立负责整个模块的质量保障;从最初写自动化脚本还要查文档,到现在闭着眼睛都能写出来;从最初跟开发battle还要紧张半天,到现在能从容应对各种技术讨论……

每一步都在进步。

我带的自动化测试框架,从最初的几百行代码,变成了现在几万行的”大家伙”,覆盖了App 80%的核心功能。每次发版前,运行一遍自动化测试,就能快速定位问题,大大节省了人力。

有一次,我开发的日志分析工具被团队其他组借鉴使用,他们专门发了一条消息感谢我。那一刻,我真的很开心。

原来测试开发也可以有”技术成就感”。

很多人觉得测试没技术含量,那是因为他们没见过厉害的测开。一个好的测试开发,不仅要懂测试、懂代码、懂架构,还要懂产品、懂业务、懂用户。只有把这些都融会贯通,才能真正做好质量保障。

写给想走这条路的人

如果你也想做测开,或者正在犹豫要不要选这条路,我有几点建议:

第一,测开是个好方向。

相比纯开发,测开的竞争没那么激烈,但技术含量不低、薪资也不差。对于学历一般但技术扎实的人来说,这是一个很好的切入点。

第二,编程能力是核心。

测开虽然偏”测试”,但编程是必备技能。Python、Java、Shell……这些都要会。数据结构、算法、计算机基础……这些都要扎实。

第三,测试理论要系统。

测试不是”点点点”,而是一门系统化的学科。测试方法论、测试用例设计、测试策略、缺陷管理……这些知识要系统地学习。

第四,持续学习,不能躺平。

互联网行业变化很快,新的技术、新的框架、新的工具层出不穷。只有持续学习,才能不被淘汰。

第五,沟通能力也很重要。

测试要跟开发、产品、运维打交道,沟通能力必不可少。能把问题讲清楚、把方案说明白、把关系维护好,这些都是软实力。


有时候我会想,当初如果选了开发,现在会怎么样?

也许薪资更高一点,也许技术栈更”主流”一点。

但我不后悔。

测开让我找到了自己的位置,也让我感受到了技术带来的成就感。

适合自己的路,才是最好的路。



关联阅读

字节跳动2026年薪资标准可能有所调整,仅供参考。