网易游戏测试面经

自我介绍,游戏测试的自我介绍

1
2
3
4
5
6
7
8
9
10
11
12
面试官您好,我叫方圆,目前是杭州电子科技大学通信工程研三的学生
在学校的学习期间呢,对通信和计算机的知识都有所了解
然后呢我个人呢是比较熟悉Java语言,对web的开发有一定的实践

读研呢参与了老师的一个横向课题,是数梦工厂消息中心项目的开发
然后呢暑期实习是在华信咨询设计院参与的中国移动浙江公司的科研数字化管理平台项目
其实在开发中呢,包括自己做的一些开源项目,对测试的工作也有所涉及

今天面试的是游戏测试这样的一个岗位
我本人呢也是一个游戏玩家
然后我认为在开发领域的经验和作为一个游戏玩家
能够快速适应游戏测试岗位的需求

为什么学的开发,但是投游戏测试岗位

1
2
3
4
5
6
首先呢,作为一名游戏玩家
对游戏是很感兴趣的
自己学的开发的技能算是工作的保证
游戏是兴趣的所在,更希望能够在自己感兴趣的地方工作
其次呢,自己在开发领域对测试有过一定的实践
能够快速适应游戏测试岗位的需求

你觉得你学的什么技能能够快速迁移

1
2
3
4
5
6
后端开发与游戏测试虽然是不同的领域
但是我在后端开发的学习能力,和测试
能让我更快的适应游戏测试开发
比如说,在开发中调试和排查问题的能力
发现bug,可以定位反馈给直接负责人,省去中间的流程
还有就是测试过程这些

1.玩过什么游戏

1
2
3
4
5
我个人的话呢,除了fps游戏不完,因为会头晕
然后其他各种类型的游戏其实都有所涉及
像多人竞技的moba类:王者
开放世界3A:艾尔登法环,黑悟空,只狼。原神等
还有一些多人休闲单机:双人成行,植物大战僵尸等

哪儿些游戏的优点吸引了你?比较细致的谈一谈这款游戏的特点?

1
2
3
4
5
6
7
8
9
10
11
12
13
我觉得能够吸引我的游戏有两类
第一种是,精美的画面,丰富的剧情和世界观,丰富的战斗系统
比较类似于3A游戏,黑悟空这些

还有就是社交游戏
我玩的比较多的,可能就是王者
首先他就是带着强烈的社交属性
高中的时候开始
不论在哪儿个阶段,都能找到一起玩的搭子

我觉得人才游戏的核心
普通的3A可能玩玩就不会再碰了
能够和别人一起玩的才能持久

2.玩游戏中遇到的bug?怎么解决的?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
其实我接触的游戏的bug是非常多的
不知道您知不知道社区的一些游戏会有玩家速通anyway榜单
快速打通一款游戏,就是利用bug
有的时候开发是注意不到这种bug的,这就需要测试来做

其实之前在玩黑悟空的时候,会有特别多的空气墙
当我的角色碰到特定的地形,就卡在里面,动不了
然后这可能就是碰撞检测算法出了问题吧
在某些特定的地形没有处理好与墙壁的交互
我左边有空气墙,右边还是有空气墙,
导致觉得陷入了无解的状态
这个可能是不同的两个开发人员开发的地形,并凑在一起的
所以测试要重点测试这种场景下的bug
后来自己传送解决的

怎么解决的?
因为我们作为游戏的玩家
有时候的反馈是很无力的
然后就发送到社区
让之变的有影响力,才能有机会修复

软件测试和游戏测试的区别

1
2
3
4
5
6
7
8
9
软件测试更注重功能,性能和安全的测试吧
可能会用到jemeter,postman等这样的测试工具
用于性能测试,自动化测试
游戏测试不仅要保证功能,还要关注游戏的娱乐性、视觉效果、平衡性以及用户体验。
他测试的地方就比较多
游戏帧率,游戏在不同平台的兼容性,比如pc,手机,ps5等
还有手柄,键鼠适配性等
很多未知的bug
跟多的依赖于手动测试和探索性测试

游戏用户和测试用户,关注点的区别

1
2
3
4
5
6
游戏用户点关注的是:游戏的可玩性,游戏难度,游戏的沉浸感
以及角色之间的平衡性
游戏测试关注的点在于:
游戏功能的正常性,bug和异常
性能稳定性,以及不同设备的兼容性
但是我觉得,游戏测试也应该多在玩家的群体思考

游戏角色太强,怎么判断?

1
2
3
4
首先就是,数据分析嘛
分析该角色的胜率,使用率等判断
其次,看玩家的反馈,社区有没有太强的评价
还有就是:自己做实战测试,去判断是不是强

拿到测试任务,怎么去分配?

1
2
3
4
5
6
1,理解需求,了解测试范围、目标和优先级。
2.评估测试范围:将整个系统或产品划分为多个功能模块,确定各模块的复杂性和优先级。
3.任务分配:将测试任务细化为具体的子任务,如功能测试、性能测试、兼容性测试等。
4,指定测试计划,编写测试计划,包含测试目标、测试方法、任务分配、时间安排等信息。
5.监控进展
6.评估调整,总结反馈

那你最常玩的游戏举例,要测试哪儿方面?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
王者
功能测试
游戏基本功能:测试游戏的基本功能,如登录、注册、好友添加、组队、匹配、游戏开始等。
角色和技能:验证各个英雄的技能是否按预期工作,包括技能效果、冷却时间、施法范围等。
道具和装备:检查游戏中的道具、装备的功能,确保其描述与实际效果一致。
游戏性测试
平衡性测试:评估不同角色、技能和道具的强度,确保没有过强或过弱的角色影响游戏公平性。
游戏进程:检查游戏中任务、目标的合理性,确保游戏的进展是平滑且富有挑战性的。
性能测试
帧率和流畅性:在不同设备上测试游戏的帧率,确保游戏运行流畅,特别是在高负载的情况下。
响应时间:测量游戏操作的响应时间,确保玩家的输入能够即时反应。
4. 兼容性测试
设备兼容性:测试游戏在不同型号的手机、平板上运行的稳定性和性能,确保不同硬件环境下的兼容性。
操作系统:验证游戏在不同操作系统(如Android、iOS)上的表现和兼容性。
5. 网络测试
延迟和稳定性:测试网络延迟,确保在不同网络环境下游戏的稳定性,尤其是在多人对战时。
断线重连:验证在网络中断情况下,游戏的断线重连功能是否正常,是否能保持游戏进度。
6. 安全性测试
数据安全:检查用户数据的安全性,确保用户信息不被泄露。
作弊检测:评估游戏中是否存在漏洞,防止作弊行为影响游戏公平性。

游戏大厅聊天场景,如何测试?如何设计测试用例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
1.首先理解需求和测试的额类型
聊天窗口的UI设计、消息显示区域和输入框。
消息的发送、接收、显示规则。
消息的长度限制、格式支持(如表情、图片、文字)。
消息过滤(如敏感词过滤、广告检测)。
多用户并发聊天支持。
相关的用户权限(是否有禁言、举报功能)。
2.确定测试类型
功能测试:验证聊天功能的基本操作,如发送、接收消息等。
性能测试:评估多用户同时聊天时的响应速度和系统负载。
兼容性测试:测试不同设备、分辨率、网络状况下聊天功能的表现。
安全性测试:检查聊天记录的隐私和防止恶意内容(如敏感词、攻击性语言、广告)传播。
3.设计测试用例
实际测试用例设计
功能测试
发送消息

测试用户输入消息后点击发送按钮,消息能否成功发送并显示在聊天窗口中。
测试按下回车键是否也能发送消息。
接收消息

验证当其他玩家发送消息时,本地客户端是否能够正确接收并显示。
测试多名玩家同时发送消息时,消息能否按时间顺序显示。
消息长度

测试发送超长文本消息,验证是否有限制(如限制100字符),并确保有提示信息。
发送极短消息(如1个字符),验证能否成功发送。
消息格式

测试发送消息中包含表情符号,验证能否正确显示。
测试是否支持发送URL链接、图片(如聊天表情、游戏图片)。
敏感词过滤

发送包含敏感词的消息,验证是否有敏感词过滤功能,并正确屏蔽或替换为“*”号。

一般设计测试用例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
确定测试输入和预期输出
输入条件:根据需求确定每个用例的输入数据和前置条件,如用户输入、系统配置、环境设置等。
预期输出:确定系统在给定输入条件下的正确输出,包括返回值、UI显示、数据库状态等。
5. 编写测试用例模板
测试用例一般使用模板编写,确保结构化和清晰。常见的测试用例模板包含以下几个关键字段:

测试用例编号:每个测试用例的唯一标识。
测试标题:简要描述测试的目的。
前置条件:执行该测试所需的初始条件(如用户已登录、页面已加载等)。
测试步骤:具体操作步骤,描述如何执行该用例。
测试数据:提供测试需要的输入数据。
预期结果:每个测试步骤的预期结果,确保测试人员能够判断测试是否通过。
实际结果:测试执行后的实际表现。
优先级:标识测试用例的重要性(如高、中、低)。
测试环境:描述该测试用例执行的环境(如浏览器类型、操作系统等)。

image-20241016101236396

场景题

5.场景题。
5.1 n+1个用户登录只收到了n个id,哪里出问题了

1
2
3
1.出现了并发问题,导致其中一个的请求并为处理
2.生成了,在传输的过程中,由于网络问题,请求丢失
3.

5.2 n+1的id里有两个id重复了,怎么查出来(应该是问算法)

1
2
3
4
5
去重嘛,使用哈希表去重
或者将问题抽象为链表找环
用快慢指针,快指针走两步,慢指针走一步,
然后重新定义一个指针指向起点,两个指针每次走一步,
最终相遇的位置即为重复的 ID。

3.1 100个玩家,随机分布在一个圆形竞技场里。玩家坐标、圆心坐标、圆的半径已知,问如何生成一条线,将玩家对半分开(场地一分为二,两边各50)。

1
2
3
4
啊?测试问算法?
我觉得可以将,玩家的坐标之类的通过一定的算法,抽象为一个数
然后对100个数进行排序
排序后取中间的,就是