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
决定走测开路线之后,我开始了系统性的准备。
测开面试跟开发面试差不多,考察的内容包括:
-
数据结构与算法:数组、链表、树、图、动态规划……这是基本功,必须刷。
-
计算机基础:操作系统、网络、数据库……这些也要复习。
-
测试专业知识:测试方法论、测试用例设计、测试工具、自动化框架……
-
项目经历:这个比较弱,我就把自己做过的几个小项目好好梳理了一遍。
其中,最重要也是最费时间的,是刷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……这些都要会。数据结构、算法、计算机基础……这些都要扎实。
第三,测试理论要系统。
测试不是”点点点”,而是一门系统化的学科。测试方法论、测试用例设计、测试策略、缺陷管理……这些知识要系统地学习。
第四,持续学习,不能躺平。
互联网行业变化很快,新的技术、新的框架、新的工具层出不穷。只有持续学习,才能不被淘汰。
第五,沟通能力也很重要。
测试要跟开发、产品、运维打交道,沟通能力必不可少。能把问题讲清楚、把方案说明白、把关系维护好,这些都是软实力。
有时候我会想,当初如果选了开发,现在会怎么样?
也许薪资更高一点,也许技术栈更”主流”一点。
但我不后悔。
测开让我找到了自己的位置,也让我感受到了技术带来的成就感。
适合自己的路,才是最好的路。
关联阅读
- 大厂就业参考 4.【直接就业】高价值信息差
- 专业参考 软件工程.md
- 案例索引 0000_1001案例总索引
- 知识库总索引 0000浪尖大学四年知识库_总索引
字节跳动2026年薪资标准可能有所调整,仅供参考。