【字节】平台质量工程师一面二面三面(凉)
一面
- 问项目。
- 数据库。关系型数据库和非关系型数据库?表一:name, id,表二: address, id 。根据name查找address有什么方法?答了左连接然后问为什么。怎么优化查询?可以加索引吗?对索引的理解?索引必须唯一吗?索引是怎么优化查询的?
- 根据场景设计测试用例。场景:前端输入名字,点击查询按钮,返回;后端根据输入从接口返回数据;数据库。PS:答了一堆黑盒,然后问怎么对后端白盒。
- tensorflow的同步和异步
- 手撕:给定一个数组,返回数组中的不重复元素,并将其升序排序。PS:我真的好蠢啊,面试官给的提示用哈希表,再让我写也写不出来TT
- 为什么选择c++作为编程语言而不是python或者其他语言
【注】本来是投的质量工程简历挂了,但是测开的笔试过了,然后面试官测试和开发都问了。
【更】隔天下午约的二面。面试官把我捞起来了,感谢TT
二面
- 还是先问项目(简历有的都会问,建议提前准备好)
- 平时用什么语言,然后会问语言相关问题。
- 手撕:给一个整型n,返回不超过n(不包括n)的最大质数。我的思路:从n-1开始往回逐个判断质数。走读代码,分析算法的复杂度,还能从哪些方面改进。(后面反问了思路,面试官提供了三个:判断质数可以只遍历到sqrt(n);从n-1开始往回遍历时可以 i-=2,但是比较鸡肋;维护一个从1到n的质数数组,每次判断一个数是否为质数时,可以直接根据质数数组判断,空间复杂度增大,查找时间增加)
- 计网。http响应,主要问响应头;DNS域名解析的过程;
- 数据库。乐观锁和悲观锁的概念和区别,应用场景。
- 测试用例设计。场景:限时抽奖,奖品有1000份,每个注册用户只能抽一次,前端:点击转盘中间指针旋转,开始抽奖,后端:采用redis处理高并发。会用什么框架来实现你的测试,如果用普通缓存代替redis会有什么后果(破坏了事务的一致性和隔离性,导致脏读幻读等)
- 反问。聊了很多业务相关。最后问了大概什么时候能知道面试结果,说最快几个小时,一般几天不超过一周。
【PS:面试官依旧很奈斯。半个小时后就通知三面了】
三面
- 为什么选这个岗位。
- 最大的优点或特性是什么?举例说明。
- c++。(因为我用的c++所以问了)c++常用的容器及其方法,应用场景。unordered_map的底层实现。红黑树。c++11/14的新特性。auto的使用,强制类型转换会有什么后果。
- 手撕:手里有n张牌,放一张在桌上,下一张放到手里牌的最后位置,以此类推直到牌全都放在桌子上;(没思路换一个)三人斗地主一个人拿到两张王的概率。
- 计网。视频通话的网络通信过程,具体涉及了哪些层。
- 是否有其他offer。
- 反问。
(只面了45分钟,要凉TT)求一个过
【更】好吧凉了。隔天能在官网看到流程终止。
#面经##质量工程师#