字节朝夕光年游戏测开一二面

朝夕光年-游戏测试开发

测试开发,开头问玩什么游戏,遇到哪些bug,你认为是怎么引起的

  • lol商城bug
  • 塞拉斯(11级R)

游戏中网络同步的机制

  • 状态同步(State Synchronization)
  • 锁步同步(Lockstep)

问项目

一次http请求过程

http请求返回内容加载的比较慢,是哪些方面的问题

  1. js性能太差,阻塞页面
  2. 某个请求慢阻塞页面的加载
  3. 同域名下的请求数过多导致Queueing

跨域同源 CORS

同源策略是一个重要的安全策略,它用于限制一个origin的文档或者它加载的脚本如何能与另一个源的资源进行交互。它能帮助阻隔恶意文档,减少可能被攻击的媒介。

非同源

  1. 协议不同
  2. 端口不同
  3. 主机不同

闭包

闭包,顾名思义,就是一个封闭的包裹,里面包裹着自由变量,就像在类里面定义的属性值一样,自由变量的可见范围随同包裹,哪里可以访问到这个包裹,哪里就可以访问到这个自由变量。

session 和 cookie区别

1,session 在服务器端,cookie 在客户端(浏览器)
2,session 默认被存在在服务器的一个文件里(不是内存)
3,session 的运行依赖 session id,而 session id 是存在 cookie 中的,也就是说,如果浏览器禁用了 cookie ,同时 session 也会失效(但是可以通过其它方式实现,比如在 url 中传递 session_id)
4,session 可以放在 文件、数据库、或内存中都可以。
5,用户验证这种场合一般会用 session

因此,维持一个会话的核心就是客户端的唯一标识,即 session id

知道哪些网络协议,分别在哪些层

各种网络设备分别在哪些层工作

TCP和UDP区别

流量控制和拥塞控制 (重点)

拥塞控制对游戏的影响,会更卡还是会好一点,是协议本身控制还是应用程序控制 (重点)

  • 更卡,协议本身导致的;由于TCP协议的拥塞控制机制严重影响发包速度,市面上绝大多数网络游戏采用私有的、可靠的UDP协议

拥塞控制会更卡怎么解决 (重点)

  • 私有的、可靠的UDP协议

如何用UDP实现可靠传输 (重点)

  • 1、添加seq/ack机制,确保数据发送到对端
  • 2、添加发送和接收缓冲区,主要是用户超时重传。
  • 3、添加超时重传机制。

粘包

遇到粘包时,如何下个包不完整,把后面包的内容先缓存,再次接收完成时判断是否完整,以便确定解析或者继续接收

linux:

如何查看端口被谁占用 :

lsof -i:端口号

用户态转内核态

问用哪个语言多,答python

python中pyc文件

.pyc文件是一个可执行的字节码文件,目的是节省Python解析器翻译时间,提高运行效率。其实性能只会提高那么一丢丢,大型项目.py文件很多的话,猿人学Python测试过节省的时间就多一点

GIL

列表和元组区别,列表怎么实现的

深拷贝,浅拷贝

所谓“浅拷贝”,是指创建一个新的对象,其内容是原对象中元素的引用。(拷贝组合对象,不拷贝子对象)

所谓“深拷贝”,是指创建一个新的对象,然后递归的拷贝原对象所包含的子对象。深拷贝出来的对象与原对象没有任何关联。

编程,输出列表所有子集

一面

面试时长:62min

平时玩哪些游戏,遇到的游戏bug,你会怎么测试(讲到Jekins)

简单讲了下项目

实习的工作和学的一些东西

为什么不寻找大数据相关的工作

  • 内容多,版本不兼容,学习成本高
  • 岗位要求高,基本需要硕士学历(明确自己不会读研),岗位也不多

TCP和UDP的区别

  • 是否面向连接
  • 报文头部长度
  • 拥塞控制
  • 流量控制
  • 超时重传
  • 三次握手、四次挥手
  • 传输的数据格式
  • 应用场景

DDOS攻击

三次握手的过程,两次可以吗,四次可以吗

拥塞控制、拥塞控制

游戏用TCP还是UDP,如何设计一个可靠传输的的UDP(根据TCP的可靠机制实现)

进程和线程的区别

进程通信的方式

Python的多线程和GIL

保证线程安全的手段

悲观锁和乐观锁

说一下你常用的Linux命令

chmod 777(r=4,w=2,x=1),为什么是三个七(当前用户、当前用户组、其他用户)

对哪种语言比较熟悉(Python)

讲一下Python字典的底层实现

hash冲突的解决方法

分离链接法 为每个哈希槽维护一个链表,所有哈希到同一槽位的键保存到对应的链表中

Python 采用 开放地址法 ( open addressing ),将数据直接保存于哈希槽位中,如果槽位已被占用,则尝试另一个。常见的方法有 线性探测 ( linear probing )以及 平方探测 ( quadratic probing )。

图了解吗,图的存储方式,自己设计一个来存储

手撕算法:后缀表达式输出结果(用栈存操作数,遇到操作符进行计算)

二面

面试时间:63min

自我介绍

两个项目

爬虫学习过程中遇到的所有反爬问题

玩过哪些游戏,遇到哪些bug,bug可能产生的原因,你会怎么去做测试

HTTPS的加密过程,CA证书

拥塞控制对游戏的影响

粘包问题,怎么解决

list和dict的底层数据结构

列表和元组区别

python中pyc文件

深拷贝和浅拷贝

Python和Java的垃圾回收机制

HashMap和TreeMap的区别

Java注射

Java多线程怎么实现

JVM模型中哪块容易内存泄露

GIL,多线程,多线程的应用场景

只含有0-10的整数数组,怎么做压缩,压缩比是多少

手撕算法:整数数组中非出现的最小正整数,并设计测试用例

#字节跳动##测试开发工程师##面经##校招#
测试开发面经 文章被收录于专栏

test

全部评论
我是测开面试挂、转测试面试又挂,现在又被转到测开面试了,誓要七进七出😓
1 回复 分享
发布于 2020-10-17 23:32
楼主现在去哪了啊
点赞 回复 分享
发布于 2021-03-28 15:41

相关推荐

学院本双非硕有一段ai初创实习经历,找暑期太难了,没有约面的,只有小红书约面了,明天面。金山的offer先接了,然后骑驴找马了。下面是面经,发出来攒人品了。1. 自我介绍,尤其是对你的项目内容,就是你的项目经历,或者是你自己比较擅长的领域,可以展开去聊一聊。2. 对于你这个实习或者是项目里面,你觉得哪一个点或者是你印象比较深的,你可以直接展开聊一下。说了 tab 补全那里的链路重构,面试官说我思路很清晰3.  Google Adsign 接入唯一ID,这个唯一 ID 是自我自己生成的吗?【实习】4. 使用 Redis 加 Lua 分布式限流保障邮件发送治理的这个,工作内容可以展开这个聊一下吗?【实习】5. Redis + lua 有什么优势?6. 我们要实现一个微信抢红包这样的功能,你会去怎么实现这个,这个能力?回答用 redis setnx+延迟队列+mq7. 那你这种业务这个方案的话怎么去实现高并发呢?比如说同时有 100 个人抢这一个红包。我:不太会,就回答了加锁,然后说 Redis 的 decr 和 incr只会扣减一,没法保证红包金额(这里一通乱答)面试官:那有没有一种更优化的方案?因为我们按刚刚的方案来说,比如说一个抢红包的一个请求过来,或者是多个抢红包请求过来,那我们一定是要用锁的形式先抢占,所以我先相当于是我抢占了这个锁,我才能去执行抢红包这个逻辑,对不对?那执行抢红包这个逻辑,这会就涉及到一个问题,如果这个逻辑比较复杂,或者是它里面计算时间比较久,就是计算 IO 比较久的话,所有大家都会去等待,有没有方案让我提前去,或者是有没有方案是来减少我这个计算相关的一个时延?我:不太会,回答了线程池(依旧乱答)面试官说:线程池,它也是因为你线程池,无所谓,你创建新线程,还是你拿新的,还是用线程池里面已有的线程来去做执行,它都会要等待,对吧,比如说同时我有 100 个人请求都来了,那你可能就得有 100 个线程,对吧,大家都得去等待,谁拿到这个锁,谁再去执行抢红包这个操作。我说:不太会,不了解 cpu 计算场景怎么优化,只知道 io 密集场景可以用虚拟线程面试官说:比如说我刚刚提到了一个点,就是能不能把 CPU 计算前置。因为我们现在这个业务场景是什么?就比如说一个红包有 100 个 100 元,我要分 10 份。所以说他其实对于第几个人来他其实不在意,就是说现在有或者是有抢没抢?或者是这个现在当突然有多少人来抢?其实对于红包,发红包这个事情来说,或者抢红包这个概念来说,它其实是可以预先知道每个红包分成多少钱,是不是这个事情?我:用 Redis 先做预热。面试官:对,那你比如说这个方案的话,我们要怎么去做呢?有一些哪些实现的细节,或者哪些数据结构呢?我:提前写死金额存在 Redis 里,但每份红包的金额写死不公平(此处省略一堆)面试官:涉及到公平,那你觉得怎么不公平?写死的不公平的原因是什么?======= 后面都是对这个场景设计的探讨,此处省略跳过========8. 了解微服务吗不了解,面试官就跳过了9. 那我们聊一下本地事务加任务补偿怎么去?当时是怎么去实现的?【项目】10. 发散聊一聊对于 vibe coding 相关的一些理解,或者是对于大语言模型,你最近有哪些参与度?或者是有哪些去研究的点吗?我脑子一热回答了 openclaw11. 你觉得它用 Openclaw 或者是龙虾这个东西和我们直接去使用大语言模型最直接的区别有哪些?答了 Agent 和大模型的区别,补充了 skill、mcp、Function call12. 那你自己又玩龙虾,主要是做了哪些?帮你辅助了哪些功能呢?回答写定时任务每天帮我拉 github 的热榜和股票(抄群友 maple 的)13. 那其实在于你实际工作过程中,这个龙虾其实也没有发挥更多的一个所谓的私人助理这个的作用啊?我说想实现在飞书接入龙虾,然后实现 AI 办公14. 你认为的在使用 AI 来进行办公的主要的一个业务场景有哪些呢?我说开周会,可以用龙虾去发通知啥的15. 公司用 golang 进行开发,除了会 Java 还会啥语言我说学习了 go 的语法 和 gorm,但没学完 grpc16. 那你现在的学习路径是怎么样?通过什么样的方式来去学习的?我说看官方文档还有字节和七牛云的开源文档17. 我看你这边游戏经历里面主要是玩 MOBA 类的,然后你还比较有感兴趣的就是他怎么支持百万人同时在线这个问题,那你自己是怎么去考虑的?我说实习的时候调研过将单机设计成联机,用 supabase 的 real time机制18. 对于传统的像英雄联盟也好,王者荣耀也好,它除了在局内对战,它其实还会有更多的一个游戏养成,还有一个社交的一个游戏场景。那它们两个同时支持百万在线,可能它们的一个实现模式会不太一样,这个里面有去有考虑过它们之间的不同吗?我说没考虑过19. 那考虑到同时在百万同时在线的,除了说你刚刚有一个 real time 来实时通信,那还有一个点就是在于它同样的一个单机肯定是不可能支持这么大的一个的用户量了,它一定涉及到一个集群。你对于分布式部署有过相关的一些经验吗?我说没有,只知道 k8s20. 你可以理解为 K8S 作为一个编排容器,它就是来去做动态缩扩容的,但是我们在考虑的是为什么要分布式部署,或者是它主要能应对哪些应用场景?这个事情有了解过吗?我不会,就答了扛流量,通过负载均衡的轮询或者随机策略去访问实例之类的。然后面试官给我讲解了分布式部署,比如垂直分布和纵向分布....(此处省略一百字)反问阶段:1. 表现面试官说:表达很好,准备很充分,思路很清晰,不用太过担心2. 业务面试官说:组内不做鹅鸭杀,做的是小游戏品类,比如说像最近广告特别多的无尽东日,还有之前比较火的什么冒险大作战、寻道大千这一类的游戏,其实它的游戏载体是在微信或者是抖音这样的一个平台去进行一个游玩。(因为我游戏经历里写了 moba 类游戏,面试官又给我讲了和 moba 类游戏的区别)面试官说:对于我们这边的服务器开发的话,就是说从客户端的所有的链路,比如说 Websocket 的建立, Websocket 的一个连接管理,以及所有的客户端的请求的分发处理,以及对于不同的业务模块,比如说它的排行榜模块,它的商城模块,它的匹配模块,还有一些它的所有的养成模块都需要去我们进行一个开发的和介入。面试官说:我们会以项目组的形式来进行开发,对于我们当前的组内的话,主要是人员是在 10 人左右,程序员是目前是在职有4位程序员, 3 位客户端,一位服务器开发。然后除了刚刚提到的我们要开发游戏项目内的业务功能外,同时还要去考虑到对于我们最终的服务的部署,服务的上线以及最终线上的一个问题的定位和快速的修复,就是我们现对于当前的程序员来说,他不仅仅是不会像早些年一样会区分你是一个开发,你还是一个测试,你还是一个所谓的运维。因为现在的话大部分运维就是给你直接提供云服务。给你提供云服务机器,然后对于服务内如何去搭建,如何部署,都是由我们项目内的开发人员来去完成的,所以说在我们这个游戏的或者是项目组内,如果要参与的话,其实你可以认为是从基础到上线运维到问题修复这块,其实是会有一个全面甚至是一个全方位的一个参与度的。面完两分钟后,hr 说下午谈 offer(史上最快.....)
查看18道真题和解析
点赞 评论 收藏
分享
03-17 21:50
已编辑
郑州大学 Java
部门:公众号和小程序部门(是wxg吧)45分钟三道算法1.字符串可交换,输入几个pair可交换       几个联通图dfs遍历打标记(没输出,思路感觉ok)2.链表删重复元素    感觉没问题但是吧while(cin >> n)跳不出来啊(没输出,思路我觉得行)3.数n的阶乘后面几个0     (来不及做了状态很差)实习部分  :有个点没答好现在突然明白面试官问的啥意思了项目:你咋会问短连接的,我真没想到,好久没复习了1.架构    我答的网关和服务,我哪知道中间件也算2.布隆过滤器a.满了咋办b.不过对业务场景有影响吗c.分布式下有考虑吗   单体项目3.修改场景怎么保持一致性的这么简单(但是我说了方法啊,你又重复问我给我问蒙了,我还以为我忘了,扯到别的上了毫无价值)4.消息队列幂等(说了一大半差一点就要忘了,还好下一个了)5.分布式锁这边锁什么,那你要求key访问多少呢?没说答案直接答到本地锁了,又问用本地锁没考虑过redis充分发挥性能吗?我直接给爆了,二次开发的没考虑过机器(真神志不清了)八股:https底层(磕磕绊绊讲了下,讲的不好,过程都没讲清)无反问感觉挂了反思:好多地方我都讲太差了,他妈我还爆了,真复习了一天晚上神志不清有点,我昨晚俩小时过了一遍hot100,复习了一下午八股,面完感觉累的相似,整体来说就是好多真是答的不到点上吧(我真有点累),不然的话还凑合复盘了一下爆哭,我必须意识到这是否是我此生仅有的机会半小时出结果挂我适合互联网吗?面过三家大厂,虾皮字节腾讯全部一面挂,感觉是不是应该随便找个公司一月几千混混得了(苦笑)
查看12道真题和解析
点赞 评论 收藏
分享
评论
13
59
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务