首页 > 字节朝夕光年游戏测开一二面
头像
azedplayer
编辑于 2020-10-13 21:20
+ 关注

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

朝夕光年-游戏测试开发

测试开发,开头问玩什么游戏,遇到哪些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的整数数组,怎么做压缩,压缩比是多少

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

更多模拟面试

全部评论

(2) 回帖
加载中...
话题 回帖

相关热帖

近期热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐