字节跳动测试开发实习面经一二三技术面+HR面

本人面试的岗位是测试开发岗,工作地点在深圳。很多人可能都会误解测开岗,一开始我也不太了解,以为就是跟软测差不多,但其实这个岗位更偏向于开发,除了有测试理论知识外,也是需要掌握很多开发的知识,测开岗主要是开发一些工具与平台提升测试的效率,涉及一些自动化测试的设计之类。
字节跳动的测开实习面试一共是3轮技术面+1轮HR面,目前我已经完成前三轮面试,约了4.14号HR面,希望能顺利吧!
以下是本人面试时间线,跨越的时间是比较长,其实字节的效率还是挺高的,面完第二天就会给结果,主要是我个人的时间问题,期间还改了一次面试时间,所以就比较久了。
3.21——笔试
3.31——一面(本来约了3.29)
4.06——二面(本来4.2号可以面的,碰巧有别的安排了)
4.11——三面(本来4.8可以面,刚好碰上了组会):joy:
一面:主要问基础知识和考察代码能力,大约1个小时
1.自我介绍
2.你觉得最有成就感的一件事
3.实习时间
4.你学过哪些计算机课程
5.进程与线程的区别
6.进程的调度 算法有哪些,进程的状态有哪些
7.怎么判断进程的切换
8.程序中内存的分配,堆区和栈区,比如成员变量放在哪里?
9.手撕代码:最小覆盖子串(没写出来)大概讲了一下用滑动窗口的方法
10.手撕代码:把字符串转化为整数(没有处理好溢出问题)

二面:同样也很注重基础知识的掌握,还有解题思路也是很重要的,就算不会做也可以跟面试官讲讲自己的大概想法,整个过程约1个小时15分钟
1.自我介绍
2.谈了一下项目,比如有什么功能,用了什么框架,因为这个项目比较简单,所以面试官就没有继续问了
3.TreeMap和HashMap的区别以及底层实现,分别用在什么场景
4.HashMap的底层为什么要这样实现,有什么优缺点?
5.数组和链表的区别
6.有哪些排序算法,复杂度分别是?
7.快速排序算法的思想
8.Java底层的排序算法用的是什么算法?
9.多线程怎么保证同步?
10.synchronize和retranklock的区别?
11.什么是公平锁和非公平锁,非公平锁是怎么决定的?
12.了解哪些设计模式?
13.代码题:写一个单例模式,懒汉式和饿汉式,怎么解决饿汉式的线程安全问题?如果用lock()怎么加锁?
14.代码题:写一个大数相加
的 算法,面试官降低了一下难度,说只考虑正整数吧。写完后问假如要测试你写的这个代码对不对,你怎么设计测试用例?

三面:深挖了一下我在研究生期间的课题项目,基础知识依然也是会问,主要还是根据我在简历上写的技能问吧,约1小时

  1. 自我介绍
  2. 聊了研究生阶段的课题项目,难点和挑战在哪里?用了什么方法解决?因为我这个项目是通信项目,还问了我5G比4G有什么性能提升?
  3. final关键字的作用
    4.怎么优化java代码,比如字符串拼接
    5.了解哪些数据结构,HashMap怎么解决冲突
    6.http和https的区别,https的运作过程,SSL协议在中间起了什么作用
    7.了解CDN吗
    8.为什么要进行分页和分段,分页和分段有什么好处啊?分段在代码中怎么体现,能举个例子吗
    9.关系型数据库和非关系型数据库的对比,有哪些是关系型数据库,哪些是非关系型数据
    其他闲聊
    1.在本科期间学了哪些课程?我说通信原理,信息论等,结果还问我奈奎斯特采样定理?
    2.你觉得最失败的一件事
    3.你的优缺点
    4.一周能安排几天实习时间
    5.最近在看什么书籍
  4. 职业规划,未来想做哪方面的工作

HR面15分钟左右

  1. 确认实习时间,导师是否放实习的问题(HR说之前有好些同学因为导师不放实习结果没来,所以希望我下去好好跟导师沟通)
  2. 你对测试开发这个岗位的了解?为什么选择测试开发?
  3. 你有转正留用的想法吗?
  4. 你觉得自己前几次的面试表现如何?
  5. 你还面试了哪些公司?目前进度如何了?
  6. 你觉得字节的面试跟别的公司的面试有什么不同?
  7. 你希望在实习期间收获什么?
  8. 你的优缺点?
  9. 你平时的时间是怎么安排的?怎么对时间进行规划?
  10. 你的业余爱好?
  11. 你的职业规划?

总结:
从这几轮面试来看,字节的面试还是很注重基础的,要掌握很扎实,然后也会考察算法和编码能力,本人在这方面是比较弱的,比如第一轮面试的最小覆盖子串
我就没有做出来,其实之前在leetcode上刷过这道题,可是太久了不记得了,其实就是自己没掌握好思想,还好面试官给我换了道题,不过也没百分百做出来 :pensive:所以还是得多刷leetcode,多总结解题思路。

转发自:字节跳动测试开发实习面经一二三技术面+HR面_牛客网

1 Like