2022年暑期实习互联网大厂测开 offer 经验贴
整个过程
1.准备过程
我的情况是12月底开题结束之后开始准备实习的事情,然后通过看牛客、脉脉等平台上的经验贴,大致了解了开发岗和测开岗的面试内容,然后开始进行准备。因为感觉两三个月从0准备Java不太现实,所以刷题和面试都以Python为主,建议面试的同学最好还是以Java那一套为主,Python为辅。
整个寒假的学习主要分为三部分,第一个是基础知识,采用网课+背八股的方式,系统地学了Python、Django、MySql、Linux、计网操作系统等。第二部分是刷Leetcode,通过后面的面试经验发现测开的话把Hot100和剑指offer中的简单和中等题刷熟就行。第三部分是在b站找了一个Django的后端项目,跟着做了一遍。暑期实习基本三月就开始了,这个时候一定要达到一个看牛客测开实习面经,里面80%的问题都能回答的程度。
2.面试过程
百度 【暑期实习】开发测试 没去笔试
字节 【暑期实习】测试开发工程师-视频架构 一面挂
美团 【暑期实习】开发测试 OC
腾讯 【暑期实习】开发测试 二面挂
京东 【暑期实习】开发测试 二面鸽了没去
蚂蚁金服 【暑期实习】开发测试 OC
华为 【暑期实习】通用软件开发(实习生) 笔试翻车
快手 【暑期实习】开发测试 二面挂
网易 【暑期实习】开发测试 笔试没去
OPPO 【暑期实习】开发测试 鸽了没去
面试经验
腾讯
没想到第一次面试直接给了腾讯,三月初刚回学校,很多公司暑期实习都没开,稀里糊涂地投了腾讯的日常实习,并且base地还是深圳,然后就稀里糊涂地开始面试,说实话对自己表现很不满意,但是也算是破冰行动,对大厂面试的状态也有了基本的了解,虽然第二面挂了,但是还是给腾讯面试官点赞,很耐心地引导,挖掘你的闪光点。
一面
1. 自我介绍
2.聊项目
3.因为项目是Django写的,所以被问了什么是MTV模式
语言基础
1.Python中的lambda函数
2.leetcode155 最小栈(不是手撕,只是让说思路)
3.OOM(一开始没理解,面试官提示是out of memory)
4.C++中的纯虚函数和虚函数的区别(直接说记不清了)
5.Java中的反射(直接说记不清了)
6.Python和Java的垃圾回收机制
7.用过哪些装饰器(说了@property)
数据结构
1.散列表熟悉吗?Hash冲突怎么解决?
2.堆和栈的区别
3.操作系统中的堆栈呢?
数据库
1.按照数据结构来分的话,有哪些索引类型呢?
2.如果需要范围查询,应该选哪种索引结构(在Innodb引擎中)
计算机网络(基本就是经典八股文)
1.TCP和UDP的区别
2.HTTPS
3.DNS查询的方式
操作系统
1.虚拟内存
2.局部性原理
3.LRU(利用了空间局部性还是时间局部性)
开放性思考题:
1.如何对服务器的响应速度和吞吐量进行优化
2.你最近有了解到什么新技术吗?(说了slowfast,面试官说好像挺早就有了,然后最近确实在准备八股文什么的,就没再说了,然后就跳过了)
总结:比较偏基础,都会顺着你的简历来,不会的话也会继续引导你
简历上写了了解C++和Java,但是研究生之后基本在用Python,太久没用C++和Java了,所以关于这两个的问题回答的不是很好。对我的总体评价:基础还不错,工程实践不足。
二面
聊了半小时简历上的项目,每一个点都在深入挖掘,感觉答得很不好,聊了半个小时,面试官应该是没兴趣了,也没出算法题,就到了反问环节,过一会就看到挂了。
总结:对写在简历上的项目一定要了如指掌,不然翻车概率极大
字节
先说一下,字节这次的体验真的非常非常差,面试官到了之后全程不开摄像头,让我自我介绍了一下,直接开始写题,写了两道题,开始问八股,然后她完全不接我的话,我说完一个,她会延迟几秒,然后继续问另外一个,就这样尬聊了二十分钟,她看时间到了,就告诉我时间到了,也没让我反问。总之字节这次体验真的太差了,应该是整个三月面试体验最差的一次。
具体内容没什么好说的了,手撕算法:前序遍历二叉树(非递归),然后就是很常规的八股。
京东
快手
一面
自我介绍
聊项目
写题:
统计单词数量,比如给你“Im a student”, 输出3,Python一句完成
手写快排,刻在DNA里了属于是,大概四五分钟A了
比如给你一个字典{"a":2, "b":1, "c":3},根据value来排序,我知道转化为元组列表用sorted+lambda,但是字典的items()方法忘记了,面试官提示了一下,想起来了
项目提到了mysql,用过索引没有,如何设置索引,把最左前缀法则说了一遍
Linux用过没有,查看文件内容的命令有什么?比如在find一个文件的时候,会出现一些warning,我不想看到这些,怎么处理(管道和grep过滤)
测试相关,如何设计登录界面测试用例
二面
面试官虽然迟到了几分钟,但是整个过程很温柔
自我介绍开场,没有问项目,直接告诉我面试将从三个方面展开,测试相关、基础知识和逻辑考察
测试部分
首先问了为什么选测开,对测试的了解,接口测试,黑白盒测试
基础知识
问平时用什么语言,我说主要是Python,然后问了字典遍历有几种方法,深拷贝和浅拷贝以及Python和Java的区别,手撕代码,lt46全排列(用了五分钟)
接着问我会不会数据库,我说会Mysql,问了事务和事务特性,mysql的日志了解吗,说了redo、undo和bin log,问了垂直切分和水平切分(这个不会,有点尴尬,但面试官安慰说不会就不会,没事),问了解Redis吗,我说了解,但没实操过。
逻辑题
然后是所谓的逻辑部分,就是出了一个场景题,A模块有一个数据库,有一个获取数据的接口A1,B模块有一个数据库,有一个获取数据的接口B2,现在让B通过A1接口将A的数据库的数据进行复制,然后有一个模块C,分别调用A1接口和B1接口,发现获取到的数据不一致,请问怎么测试,或者说定位bug
然后问了实习的时间,面试官介绍自己部门日常工作的时候透露他们组这次要招3个实习生
反问
美团
一面
整体感觉美团这边更看重对测试知识的了解
前半部分在问测试相关的,问我对测试有了解吗,我回答了测试的流程,单元测试到验证测试,然后问具体的测试方法,讲了黑盒白盒,白盒中的各种覆盖,黑盒中的等价类划分和边界值两种方法
然后开始问项目,项目问的比较细,从背景,具体的实现,表的设计,索引的设计与优化等角度一直在追问,中间会加入一些八股,比如索引的优缺点等
这部分大概有接近30分钟吧,然后手撕二分查找,讲解代码并设计测试用例
最后问了一点Python相关的,什么是匿名函数,然后用匿名函数实现列表的排序
最后是反问
二面
蚂蚁金服
一面
电话面试,准时接到阿里那边面试官的电话,开始面试,总共面了1小时20分钟,可能有半小时都在聊项目,然后基础知识感觉问的很发散,需要思维一直跳跃
常规开局,自我介绍+介绍项目,首先问了熟悉的语言,所以首先开始问了
1.Python正则相关的,re模块中match和search方法的区别
2.深拷贝和浅拷贝
3.匿名函数
4.Python面向对象中__new()__和__init()__的区别
5.如何调转一个句子中的单词(如Im a student 调转为student am Im)
6.在不使用额外空间的情况下交换两个整型变量的值
数据结构:
1.二叉树类的遍历
2.排序算法了解吗?说下冒泡排序的原理,如何对冒泡排序进行优化
3.说一下桶排序的原理
4.堆和栈的区别,一个队列链表应该是头插还是尾插
数据库
1.SQL语句的执行顺序
2.介绍一下delete,drop,truncate,是否发生回滚
3.关系型数据库和非关系型数据库的区别
操作系统
1.进程和线程的去呗,有没有使用过多线程
2.描述LRU算法
智力题
1.有100本书,你和同学轮流取书,每个人一次可以拿1-5本,如何保证你最后一次拿,并且可以把剩下的书都拿走
2. 1000块钱喝饮料,3个瓶子换一瓶饮料,最多可以多喝多少瓶
测试相关
如何测试一个自行车的轮胎
二面
中午一点突然打电话过来要面试,约了下午四点,然后聊了半小时深度学习的项目,面试官貌似不是很满意,总结就是问题还是出在对项目的深入理解上
三面
- 自我介绍
- 手里有哪些 Offer,为什么选择来我司
- 最近在学习什么技术
- 你认为自己的优缺点分别是什么
- 了解测开这个岗位的工作吗,对工作有什么想法
总结
感觉大厂测开岗面试主要问的基本包括四个部分:八股、手撕、测试相关、项目或实习经历
八股:和后端差不多,语言、计网、数据库、框架这些,主要取决于他们的技术栈和你在简历上写的东西
手撕:感觉测开的手撕算法还是比较简单的,leetcode的hot100和剑指里的简单中等题就够用了,还有快排,二分查找这种基础的,千万不要跟着答案敲一遍觉得有思路就是会了,一定要达到看到题就能敲出来的程度,最好是背会不卡壳的状态。
测试相关:会问测试相关的内容,一般都是基本的测试理论+如何测试xxx等,这种网上经验贴很多,多背就好