25.0325 春招字节绿洲工作室游戏测开三面凉经
个人背景:双非本大四,字节是校招第一个给面的,有一段网易游戏测开寒假实习,官网投递的字节,无笔试,3.17收到电话直接约面
📍面试公司:字节绿洲工作室,北京
👜面试岗位:游戏测试开发春招补录岗
📖面试问题:
技术面一面3.25-1h17min
(面试官说这个岗位是安全方向的测试开发,一面考察我安全+测开的知识)
- 语言相关
- lua 代码了解吗?讲下有哪些数据类型?(这part我一问三不知,语言相关只对java熟悉些,所以在努力转话题了)
- 讲下表?主要用途?元表学过吗?
- 闭包了解过吗?Python 的闭包是什么?
- Java 的类加载机制?(面试官对java不太熟,所以我说啥是啥了)
- JVM 的内存结构?
- Java 的垃圾回收机制?分代收集?
- 实习相关
- 压测的指标是什么?
- 自动化测试脚本是做什么的?
- 网络安全相关
- TCP 的拥塞控制?流量控制?
- 你对安全知识有哪些了解?
- 讲下比如说 XSS?跨站脚本攻击的原理?这个漏洞是怎么出现的?
- DDoS 攻击?它具体怎么做的?如何预防?主要原理?
- 二进制安全有了解过吗?脏牛漏洞 知道是啥吗?(没听说过,没做过渗透测试)
- 知道哪些网络扫描的工具?它的实现原理?
- 常见的 端口 知道那些?
- 游戏相关
- 平时玩游戏吗?这个岗位是你自己投的?
- 平时玩的游戏有遇到过什么 bug 吗?崩溃问题你猜想它可能在哪个地方出现的吗?
- 你复现bug或者崩溃的思路是什么?
- 你的意思是一个是按流程来一遍,然后是根据不同的配置看变化,还有就是找那种高消耗的地方?还有吗?比如是否有和开发沟通过呢?
- MySQL 相关
- 哪些数据结构可以提高查询的速度?
- MySQL 的索引是通过什么方式实现的?
- 除了 B 树和 B+ 树,还有呢?
- 哈希可以用来做什么查询?=> 等值
- 算法手撕:lc556 下一个更大的数 (我不会,面试官给换了一道)
- lc5 最长回文串
- 平时有刷题不?(很委婉了哈哈,确实算法这块很拉跨)
- 反问
技术面二面3.26-2h10min
(也不知道为啥能过二面,二面来了个会Java的面试官,一直拷打,但是人很好,也一直在引导我,引导能力很强)
- 实习拷打:
- 网易实习主要做什么?
- 测试脚本为什么要使用 Lua?我看网易应该有自己的一套 AirTest 的?
- 你们采用这个自动化脚本,因为自动化如果你像 Airtest,它也有两套机制,一套是采用这个图像识别,识别里面的UI,另外一个就是把它接入到游戏里面,直接获取到他游戏的一个控件,你们的这一套实现方式是什么呢?
- 如果是坐标点击,那如果这个按钮发生了变化?存在这个问题,那让你去实现一套,你大概会有什么想法?
- 你们自动化的过程中有没有遇到过卡死的状态?例如网络波动的突然弹个窗出来,导致你的后续的流程都走不通了?
- 如果在你的测试流程中突然间弹了一个你意料之外的窗?你怎么解决?假设这个异常是完全不知道?
- Java
- Java 是解释型还是编译型?Java 跨平台的核心原因?
- 你提到的 JIT?你觉得它的设计的基本原则是什么?它怎么知道哪块是热点代码?采用 JIT 后的好处?
- 那你觉得 Python 有没有 JIT 的功能?或者能不能做这个功能?从理论上来讲?
- Java 里面的多态?举个例子?
- 那你知道多态大概是怎么实现出来的吗?机器在解析运行的时候,怎么知道运行的类型的?原理了解过吗?如果没有了解过,你猜测它大概怎么做的?
- 反射的原理?反射如何获取到对象的元信息?从哪里获取到?这个类型的信息是存储在哪里能够被虚拟机识别得到?还是说通过地址去找到?还是说直接就存在对象的内部?
- 那也就是说可以在对象的内部加一个引用,这个引用指向类型信息?那你觉得在对象的一个生命周期中,这个类型信息是什么时候被添加进去这个对象?
- int 类型 和 Integer 类型的区别?它们可以互相转换?
- 有想过为什么 list 容器能放 Integer 而不能放 int 类型吗?有到 ArrayList 源码去看过吗?
- 刚刚提到包装类型有拆包解包这个过程,那么这个过程是会有一定损耗的,你有没有什么办法可以避免掉这个拆包解包的过程?
- 泛型的缺点?
- 如何避免死锁?
- 怎么判断是死锁还是死循环?
- 原子操作是啥?CAS 听说过吗?让你用 CAS 实现一个锁,你的大概思路是什么?
- 计网
- HTTPS 如何保证安全性?为什么要用非对称方式交换密钥?
- 假设你的客户端被植入了木马或者病毒,那你采用 HTTPS 还会安全吗?
- TCP 和 UDP 的区别?
- 你刚刚提到连接,如何理解这个连接二字,你觉得它是物理上的连接还是逻辑上的?
- 粘包的问题知道是啥吗?如何解决?
- 那你觉得 UDP 有粘包吗?(酷!确实没思考过这个问题)
- 算法手撕:(面试官估计知道我算法一般,铺垫了好一会,先问了几个问题)
- Java 的 ArrayList 和 LinkedList 的区别?
- 两个单向链表你怎么判断是否有交点?(讲思路就行)
- 算法手撕:二叉树最近公共祖先 (变形题,改简单了点,类似链表操作了,只要我写核心思路)
三面3.31-1h-挂
(猜测是总监面,应该是职级比较高的,没咋问技术,不出意外的挂了)
- 简单介绍下两段实习的主要工作内容
- 自动化这块你认为怎么样?你们做的东西在提效方面有什么结果吗?你怎么评估这件事情做的是否有价值?
- 在你所有自动化里头做的工作里,它解决了一个实质上的一个比较对于业务或者项目比较重要的一个问题是哪一个?
- 那你在网易实习了几个月,为什么没有考虑留在网易呢?(绷不住了,,何不食肉糜)
- 那你为什么投递这个岗位测试开发?你为什么会选择做这个岗位?比如说有开发岗、有测试岗,有各种其他的岗位,你为什么会选择游戏的这个测试开发岗位呢?以及为什么选择北京这边,比如我们?(这块我回答的不是很好)
- 你平时玩的游戏?这几个游戏玩到什么程度?
- 测试用例:
- 给一个按钮和一个文本框,功能是在文本框里输入一个字符串,点击按钮后能告知输入字符串中大写字母A的数量
- (让我直接在飞书上的代码页面编写测试用例)
- 给了一段算法题和对应的Java代码,题目是最大的连续子数组和,让我检查给定Java代码中的问题(比如越界啥的)
- 优缺点?
- 职业规划?两三年的?
- 家是哪的?为什么没有更多考虑南方的机会呢?(这块可能也回答的不是很好。。)
- 那你对我们的这个部门有什么了解?
- 反问
🙌面试体验:
- 面完两天后也就是4.2号官网看到流程结束了,想问hr原因来着,结果hr说她已经离职了(应该是个实习生,清明节前离职啥的)
- 一面二面体验良好,特别是二面,面试官非常会引导,提出很多我之前没思考到的问题,当时面完觉得挂了也不亏
- 虽然不知道为啥能挺到三面,但是感觉不如前两面就给我挂了,问题不大,毕竟是个经验
- 本来以为三面也是技术面,结果问了一堆开放性问题,准备的不够充分,有时候嘴比脑子快,反思下害