博主在2021年拿到了字节测开实习的offer,实习时长4个月,并于2023年秋招拿到了字节测开的校招offer,仅以本专栏记录对该岗位的所思所想。
目录
- 1. 测试开发需要做什么工作
- 2. 为什么选择测试开发
- 3. 测试开发不如开发吗
- 4. 如何准备测试开发
1. 测试开发需要做什么工作
对于不同的公司,测试开发工程师的工作内容相差很大,同一个公司的测开工程师同样也有偏测试和偏开发的区别,这边只介绍我在字节了解到的一些工作内容,具体的和岗位理解相关的面试问题会另外开一篇博客进行总结。
测试工程师也叫作QA,Quality Assurance (质量保证),是产品上线前的最后一道把关。测试工程师的工作主要有三个方面:
- 分析产品需求,参考技术方案,指定合理高效的测试方案,编写清晰的测试用例
- 发现、定位、跟踪产品缺陷,协同开发解决问题
- 开发高效的自动化测试工具
有点抽象,那来看一下我的实习期间的工作内容吧:
- 参与需求评审和代码评审,根据需求文档编写测试用例,并主持测试用例评审
- 根据测试用例完成功能测试,使用Charles、Postman等工具完成接口测试
- 根据接口文档和代码,编写Go Test单元测试代码,实现自动化测试
- 回放流量进行Diff测试,防止重构的接口在不同版本下返回结果不一致
- 对bug进行管理,依据bug标准文档对bug进行评级,定位开发责任人,并跟踪bug的修复
- 根据代码覆盖率报告,补充测试用例,代码覆盖率合格后推进项目的上线工作
除此之外还有一些其他工作:开发自动化测试工具,观察监控等。在我看来工作内容是相对丰富的,代码压力也相对较小。不过这只是实习生的工作,当时身边的同事们还有我的mentor工作内容会更加复杂,更有挑战。
2. 为什么选择测试开发
秋招时,我和同样找测开的求职者们有过一些交流,在这里整理一下我们选择测开的理由。
计算机相关专业的学生去向基本可以分为互联网、国企央企、银行、考公这四个去向。除了在互联网,其他几个选择都存在一些我们无法接受的地方,例如:只能处理非技术性的工作、分配的工作内容与所学专业无关、没有技术难点无法获得进步等。当然了,要说互联网就不能不说它的工作压力,测开作为一个代码压力相对较小的技术岗,对我们来说是个不二之选。
除了主观的意愿,我们也考虑到了客观的求职难度。互联网公司的非硬件技术岗可以考虑算法岗、开发岗、测试开发岗。接下来仅以我的条件为例,分析一下我在这几个岗位的竞争力。
- 学历:211本,国科大硕
- 科研:已发表两篇C和一篇B,但是科研方向冷门,和搜广推、大模型等热门算法方向完全不沾边,无法拿到算法岗的入场券。
- 项目:我们研究组属于学术组,读研期间除了上课就是在写论文,自己跟教程做了两个小项目,只能满足国企或者小厂的开发要求。
- 实习:研究所不允许实习,在研究生入学之前有过一段字节测开的实习经历
一般而言,能够拿到大厂算法岗和开发岗的同学有以下条件:
- 算法岗:一篇方向匹配的CCF-B是入场券。
- 开发岗:2-3个已上线且有实际用户的项目开发经历 + 1-2段大厂的实习。
由此看来,我最有优势的就是测开了。分析了这么多,总结成一句残酷的话:测试开发适合要项目没项目,要实习没实习,但是学历以及学习能力还不错的朋友们,有点伤人,但是提前意识到秋招的残酷是一件好事(拥抱+安慰💗)
疫情之后,似乎很多人的求职选择趋向于国企和考公等稳定的工作,包括我身边的同学,至少一半以上都去了国企。我曾经几度动摇,国企意味着大概率轻松的工作,足够过好生活的薪资以及稳定的生活,我很理解大家为什么会这么选。只是我每次想到,一眼望到头的生活也意味着我会逐渐失去改变现状的能力,在国企待两年,我现在所掌握的不多的技术,也算是毫无保留地扔进了这一湾死水中了。我清醒地知道,我是一个要强,但是本身没多少能力,并且非常容易焦虑的一个人。国企的工作环境对我来说也许不是安全感,而是一天比一天落后的焦虑。(说的有点多了,总之因人而异吧。
3. 测试开发不如开发吗
在牛客上经常看到一些求帮忙选offer的帖子,“30w的华为开发和40w的大厂测开”怎么选,评论中大多的建议是能开发不测试。这确实有一定道理,开发的求职要求本就高于测试,意味着工作内容比测试难,工作压力比测试大,自然也就意味着更大的发展空间。这是我们在做决定之前需要正视的问题,但其实也不至于把测开贬得太低。
在大厂中,测开和开发始终是相互协助的关系,不存在开发瞧不起测试这一说,甚至很多的bug反而是测开来提出解决方案。最直接的,我们从薪资待遇也能看出一些内容,以字节为例,校招生普通测开薪资是24k * 15,SP是26k * 15,SSP是28k * 15,这是什么概念呢,相当于字节的测开小SP和很多公司的算法岗同价(没错就是你,百度😂),即使是白菜的24k,总包也在35w+以上,和很多公司的开发岗同价。
其次,更多人考虑的一定是职业发展空间的问题。其实我也有过这方面的顾虑,但是想一想,硕士毕业我已经26岁了,以我这身体状态,最多在互联网干个10年,10年真的够我发展了,工作个5年也许能从小白混个mentor,带个10人的小组,再来五年也不够我爬到leader的位置啊(实习的时候所在部门leader基本都是40岁+)。况且,10年995的高压工作,我真的能顶住吗?发展空间这个问题,实在是多虑了,大部分的人可能是在互联网赚几年钱,回老家找一个国企养老,测试开发跳到国企是很容易的,不需要考虑能不能跳过去,只需要考虑薪资砍到原来的1/3甚至1/4你能不能接受了。
4. 如何准备测试开发
我的建议是按照小厂的开发水平并补充测试相关知识来进行准备。
- 实习:能实习尽量实习。实习真的很重要,甚至每每成为面试过程中的考察重点,但是实际上,实习并不容易找,而且校招生的时间都很紧迫,如果没有实习,建议在网上充分了解测开的工作内容。
- 项目:保底两个项目。我的两个项目都是自己跟着视频自学的,然后在简历中进行适当的包装。推荐B站的鱼皮,我购买了他的知识星球,经常会在里面向一些大厂的测试大佬提问。
- 八股文:完全按照开发的要求去准备,每次面试完及时总结,以下是我整理的面试题。
- 算法题:相对来说可以比开发岗的要求低一些,我是按照CodeTop列表刷的热门题。在这里需要纠正一个误区,很多人认为刷的题越多越好,其实是完全掌握的题越多越好。面试中,一个算法题就15分钟,只有看到题目,立刻有一个大概得思路才能解出来,最糟糕的就是“这个题目我做过,但是现在想不起来了”,这真的很难受。所以前几十个热门题,至少刷个三四遍,保证一眼就能解。
【测开求职】面试题:JAVA 吐血整理
【测开求职】面试题:MySQL 吐血整理
【测开求职】面试题:Redis 吐血整理
【测开求职】面试题:操作系统 吐血整理
【测开求职】面试题:计算机网络 详细版整理
【测开求职】面试题:计算机网络 精简版整理
【测开求职】面试题:数据结构 吐血整理
【测开求职】面试题:HR面相关的开放性问题
如果时间充足,建议按照408的标准来,背八股对很多面试官说根本不管用,真正有水平的面试官是能够一眼识破的。不得不说,在考研期间掌握好408真的很重要,我印象很深的是,字节三面时,面试官给我了一个路由器的转发表和一个IP地址,问这个IP地址经过路由器之后,向哪个端口转发。只能说是如果没有复习408,我可能当场懵逼的状态。