曾经的互联网是PC的时代,随着智能手机的普及,移动互联网开始飞速崛起。而字节跳动抓住了这波机遇,2015年,字节跳动全面加码短视频,从那以后,抖音成为了字节跳动用户、收入和估值的最大增长引擎。
自从字节逐步壮大之后,也成了IT行业人才除了BAT之外的第一选择。在字节跳动越优秀越值钱,而且远比一般公司挣得多得多。这也是为什么字节跳动员工工作这么拼。
岗位职级
字节跳动的职级研发序列一共10级:
字节跳动创始人张一鸣是 5-1 级,应届生一般是 1-1 级,中级工程师是 1-2 级,2-2 属于资深研发人才,3-1 属于初级领导, 3-2 属于高级领导层,4-1、4-2、5-1、5-2 都属于不同阶段的高层。
为了弱化爬格子带来的攀比,字节要求员工职级严格保密,内部不讲 title 层级。
一种是淡化头衔概念,只有当他们需要对外发声时,才能见到一般意义上的管理 Title;另一种完全打乱工号,避免排资论排辈氛围滋生。
岗位薪酬
不同序列间月薪 base 差异较大,技术 base 整体偏高。
比如 2-1 月薪会在 20k+,2-2 的 package会在 60w-100w 左右(算上期权,大概会占 30%左右)。
T2-2 级别的薪资约 40k,500 股票/每年。
就同学们反馈:目前 20 届校招给的是 14、15 薪,19 届校招很多能拿到 18 薪。
前端开发 20k左右,产品是 14-18,运营 10 左右。字节跳动的现金薪酬要比 BAT 们高出 25%-40%。
年终奖一般 0-6 个月,会在每年 3 月发放,例如 9 月入职会发 18.9-19.3 这段的年终奖。
一般中等大多数是 15 薪,如果年中绩效超预期多 2 个月年中奖,年末再超出预期差不多至少7-8 个月,比例较少,
对应结果分别为:
头条半年一次调薪,每次只有30%参与头条每个月 1500 的房补,只要地铁/单车 20 分钟以内的距离都可以头条从成立至今始终保留了大小周的传统,即每个月有两个周日需要固定加班。
加班,公司会按 120%的工资给你结算加班费。可以请假。关于期权,期权是比较好的 2-1 才会有期权,一般 2-2 才有期权,关于期权:回购价格为市场价 8 折。已归属的期权员工可以带走。
绩效考核与晋升
字节跳动内部的绩效考核一共有八级,从低到高为 F、I、M-、M、M+、E、E+、O,并会进行强制分布,对应年终奖和月薪百分比的涨薪。
M 就有涨薪机会。晋升面试也是主要还是看绩效考核。
每年两次考核,一般在三月和九月。考核方式借鉴了 google 的 OKR+360 模式:
头条是双月 OKR,可以在 lark 上看到所有人的 OKR,知道大家在做什么,你对齐的大目标是什么,支持对齐你的人在做什么。
360 评估:每个人都可以评估别人同样也会被别人评估,无论是领导还是普通员工。
如何像字节跳动一样能够做好薪酬体系?在有限的预算下,如何更合理的支配薪酬、有效的激励核心骨干员工?
这个问题恐怕七八年工作经验的HR也不一定答得上。
由此可见,字节跳动待遇在行业内可以说相当高,高薪资意味着高门槛,很多人说想去字节做JAVA架构师,一般人想要进入字节并不是那么容易的。即使你是一流大学毕业,与你同样水平的竞争者也层出不穷,在众多的竞争者中脱颖而出没有必然成功的方法,但努力过,肯定几率会更大。
软件测试人员需要掌握什么技能才能进字节跳动
作为软件测试人员想要进入字节跳动,需要具备以下几个方面的技能和能力:
扎实的软件测试基础知识:
- 作为软件测试人员,首先要具备扎实的测试基础知识。这包括测试方法、测试流程、测试用例设计、缺陷管理等方面的掌握。我们需要了解各种测试类型和级别,如单元测试、集成测试、系统测试、验收测试等,在测试过程中选择合适的测试方法和策略,提高测试效率和质量。
具备自动化测试经验和技能:
-
自动化测试在现代软件开发中越来越重要。它可以提高测试效率和质量,并减少手动测试的工作量。因此,是否具备自动化测试经验和技能已经成为衡量软件测试人员水平的重要指标之一。
为了具备自动化测试的经验和技能,我们需要学习至少一种编程语言,如Java、Python等,并掌握相关的测试框架和工具,例如JUnit、TestNG、Robot Framework等。此外,还需要了解Web自动化测试和移动端自动化测试的原理和方法,并熟悉Selenium、Appium等自动化测试工具的使用。
熟练掌握编程语言:
-
熟练掌握至少一种编程语言也是成为一名优秀软件测试人员的必要条件。在实际测试工作中,我们需要编写自动化测试脚本、测试工具和插件等,这都需要良好的编程基础和技能。
目前,Java和Python是最受欢迎的编程语言之一。Java在企业级开发中应用广泛,可以用于编写后台服务和自动化测试脚本;Python则被广泛用于数据分析和科学计算、自动化测试等领域。同时,字节跳动也非常注重AI技术相关的研究和开发,因此对于机器学习和深度学习等方向有所涉猎也有帮助。
具备性能测试、安全测试、全链路压测等方面的经验与技能:
-
随着互联网的普及和信息化的发展,软件系统的性能、安全和可靠性等方面的要求越来越高。因此,作为一名优秀的软件测试人员,需要具备性能测试、安全测试、全链路压测等方面的经验与技能。
性能测试是指对软件系统在不同负载情况下的性能进行测试和评估,以保证系统在高并发环境下稳定可靠;安全测试则是通过对软件系统的漏洞和风险进行测试和评估,保障系统的安全性;全链路压测则是模拟真实用户场景,对整个系统的可用性、可靠性、并发量等方面进行测试和评估。
具备团队合作精神:
- 软件测试人员需要与开发团队、运营团队等密切配合,不断协作和解决问题,确保项目顺利进行。因此,具备团队合作精神也是成为一名优秀软件测试人员必备的
下面我也整理了一份【软件测试核心技术笔记】内容包含了:测试理论、Linux基础、MySQL基础、Web测试、接口测试、App测试、管理工具、Python基础、Selenium相关、性能测试、LordRunner相关等,希望能帮助到有心在技术这条道路上一路走到黑的朋友!
通过大数据总结发现,其实软件测试岗的面试都是差不多的。常问的有下面这几块知识点:
- 测试理论(测试基础+需求分析+测试模型+测试计划+测试策略+测试案例等等)
- Linux( Linux基础+Linux练习题)
- MySQL(基础知识+查询练习+万年学生表经典面试题汇总+数据库企业真题)
- Web测试
- API测试
- App测试
- 管理工具
- Python基础(Python基础+编程题+集合+函数+Python特性等等)
- Selenium相关
- 性能测试
- LordRunner相关
- 计算机网络
- 组成原理
- 数据结构与算法
- 逻辑题
- 人力资源
一、软件测试基础
- 软件测试的步骤是什么?
- 如何录制测试脚本?
- 应该考虑进行如何测试的测试方法
- 怎样估计测试工作量?
- 测试设计的问题
- 当测试过程发生错误时,有哪几种解决办法?
- 测试执行的问题
- 测试评估的目标
- 如何提高测试?
- C/S模式的优点和缺点
- B/S模式的优点和缺点
- …
二、Linux
- grep和find的区别? grep 都有哪些用法?
- 查看IP地址?
- 创建和删除一个多级目录?
- 在当前用户家目录中查找haha.txt文件?
- 如何查询出tomcat的进程并杀掉这个进程,写出linux命令?
- 动态查看日志文件?
- 查看系統硬盘空间的命令?
- 查看当前机器listen 的所有端口?
- …
三、Python
- 统计python源代码文件中代码行数,去除注释,空行,进行输出?
- python调用cmd并返回结果?
- 冒泡排序
- 1,2,3,4 这4个数字,能组成多少个互不相同的且无重复的三位数,都是多少?
- 请用 python 打印出 10000 以内的对称数(对称数特点:数字左右对称,如:1,2,11,121,1221 等)
- 给定一个整数 N,和一个 0-9 的数 K,要求返回 0-N 中数字 K 出现的次数
- 判断 101-200 之间有多少个素数,并输出所有的素数
- 一个输入三角形的函数,输入后输出是否能组成三角形,三角形类型,请用等价类- 划分法设计测试用例
- …
四、MySQL
- 你用的Mysql是哪个引擎,各引擎之间有什么区别?
- 如何对查询命令进行优化?
- 数据库的优化?
- Sql注入是如何产“生的,如何防止?
- NoSQL和关系数据库的区别?
- MySQL与MongoDB本质之间最基本的差别是什么
- Mysql数据库中怎么实现分页?
- Mysql数据库的操作?
- 优化数据库?提高数据库的性能?
- 什么是数据的完整性?
- …
五、Web
- Web测试和app测试区别?
- WEB测试环境搭建和测试方法
- WEB测试教程
- WEB测试要点及基本方法
- Web测试页面总结
- …
六、接口测试
- 什么是接口
- 如果模块请求http改为了https,测试方案应该如何制定,修改?
- 常用HTTP 协议调试代理I具有什么?详细说明抓取HTTPS协议的设置过程?
- 描述TCP/IP协议的层次结构,以及每一-层中重要协议
- jmeter,一个接口的响应结果如下:
- 接口产生的垃圾数据如何清理
- 依赖第三方的接口如何处理
- 测试的数据你放在哪?
- 什么是数据驱动,如何参数化?
- …
七、性能测试
- 你认为性能测试的目的是什么?做好性能测试的工作的关键是什么?
- 服务端性能分析都从哪些角度来进行?
- 如何理解压力测试,负裁测试以及性能测试?
- 如何判断是否有内存泄漏及关注的指标?
- 描述软件产“生内存泄露的原因以及检查方式。(可以结合- 种开发语言进行描述)
- 简述什么是值传递,什么是地址传递,两者区别是什么?
- 什么是系统瓶颈?
- …
八、selenium
- 如何开展自动化测试框架的构建?
- 如何设计自动化测试用例:
- webdriver如何开启和退出一个浏览器?
- 什么是自动化测试框架?
- Selenium是什么,流行的版本有哪些?
- 你如何从命令行启动Selenium RC?
- 在我的机器端口4444不是免费的。我怎样才能使用另一个端口?
- 什么是Selenium Server,它与Selenium Hub有什么不同?
- 你如何从Selenium连接到数据库?
- 你如何验证多个页面上存在的一个对象?
- XPath中使用单斜杠和双斜杠有什么区别?
- 如何编写SeleniumIDE/ RC的用户扩展?
- 如何在页面加载成功后验证元素的存在?
- 你对Selenium Grid有什么了解?它提供了什么功能?
- 如何从你的Java Class启动Selenium服务器?
- Selenium中有哪些验证点?
- 什么是XPath?什么时候应该在Selenium中使用XPath?
- …
九、计算机与网络
- 一台计算机的IP是192.168.10.71子网掩码255.255.255.64与192.168.10.201 …
- 请简述DNS、活动目录、域的概念。
- 10M兆宽带是什么意思?理论下载速度是多少?
- 什么是IP地址?
- OSI七层网络模型的划分?
- TCP和UDP有什么不同?
- HTTP属于哪一层的协议?
- HTTP和HTTPS的区别?
- cookies和session的区别?
- HTTP的get请求和post请求的区别?
- HTTP1.0和HTTP1.1有什么区别
- TCP的连接建立过程,以及断开过程?
- 客户端使用DHCP获取IP的过程?
- 写出某个网段的网络地址和广播地址?
- …
十、人力资源
- 你的测试职业发展是什么?你自认为做测试的优势在哪里?
- 你找工作时,最重要的考虑因素为何?
- 为什么我们应该录取你?
- 请谈谈你个人的最大特色。
- 一个测试工程师应具备那些素质和技能?
- 还有问一下你是怎样保证软件质量的,也就是说你觉得怎样才能最大限度地保证软件质量?
- 为什么选择测试这行?
- 如果我雇用你,你能给部门带来什么贡献?
- …
最后
整份文档一共有将近 200 页,全部为大家展示出来肯定是不太现实的,为了不影响大家的阅读体验就只展示了部分内容,还望大家海涵,希望能帮助到您面试前的复习且找到一个好的工作,也节省大家在网上搜索资料的时间来学习!