网易测试开发面经(按一二三面拆分 · 可背诵标准回答版)
注:网易分为「网易互联网」(有道/云音乐/严选等)和「网易互娱」(游戏),测开面试内容有差异,以下内容两者兼顾。
一、一面(45~60 分钟 · 项目 + 基础 + 手撕代码)
1. 自我介绍
面试官好,我叫 XXX,XX 学校 XX 专业。
我有 X 段测试相关经历:
- 在 XX 公司实习期间,负责 XX 模块的功能测试和接口自动化测试
- 独立搭建过 pytest 接口自动化框架
技术栈:Python/Java、MySQL、Redis、Linux
我对网易的产品和文化很认可,希望能加入网易团队。2. 为什么选择测试而不是开发/测开?
1. 我对质量保障工作有兴趣,喜欢从用户角度思考问题
2. 测试需要既懂技术又懂业务,能全面理解产品
3. 我细心、耐心,适合做质量保障工作
4. (测开)测开能兼顾测试思维和开发能力,符合我的职业规划3. 对测试有哪些了解?
1. 测试分类:
- 黑盒测试:从用户角度,不看代码实现
- 白盒测试:基于代码逻辑,覆盖语句/分支/路径
2. 测试方法:
- 等价类划分、边界值分析
- 因果图、场景法、错误猜测
3. 测试流程:
- 需求分析 → 测试计划 → 测试用例 → 执行 → 回归 → 上线
4. 测试阶段:
- 单元测试、集成测试、系统测试、验收测试4. 进程与线程的区别
1. 资源:进程是资源分配的基本单位,线程是 CPU 调度的基本单位
2. 开销:进程创建开销大,线程创建开销小
3. 通信:进程间需要 IPC,线程间可直接读写共享变量
4. 独立性:进程独立地址空间,线程共享进程资源5. 死锁是什么?如何避免?
死锁:两个或多个进程互相等待对方释放资源,导致都无法继续执行。
产生条件:
1. 互斥条件
2. 请求与保持条件
3. 不剥夺条件
4. 循环等待条件
避免方法:
1. 按顺序加锁
2. 设置超时时间
3. 资源一次性分配6. 输入一个网址涉及哪些协议?
1. DNS:域名解析为 IP 地址
2. TCP:三次握手建立连接
3. HTTPS(TLS):SSL/TLS 握手,加密传输
4. HTTP:发送请求
5. TCP:四次挥手关闭连接
详细流程:
浏览器输入 URL → DNS 解析 → 发起 HTTP/HTTPS 请求
→ 服务器处理 → 返回响应 → 浏览器渲染页面7. 手撕代码:字符串按空格分词、单词排序、单词翻转
python
def processString(s):
# 按空格分词
words = s.split()
# 对单词按字典序排序
words.sort()
# 翻转每个单词
result = [word[::-1] for word in words]
return ' '.join(result)
# 示例:"the sky is blue" → "eulc si yks eht"8. 手撕代码:M 个苹果放到 N 个盘子(可空放,有几种放法)
python
def countWays(m, n):
# 动态规划:dp[i][j] 表示 i 个苹果放到 j 个盘子的方法数
dp = [[0] * (n + 1) for _ in range(m + 1)]
for i in range(m + 1):
dp[i][1] = 1 # 只有一个盘子,只有一种放法
for i in range(1, m + 1):
for j in range(2, min(i, n) + 1):
# 方案1:每个盘子至少放1个,去掉这1个 -> dp[i-j][j]
# 方案2:至少有一个盘子空 -> dp[i][j-1]
if i >= j:
dp[i][j] = dp[i - j][j] + dp[i][j - 1]
else:
dp[i][j] = dp[i][i] # 苹果比盘子少,空盘子没用
return dp[m][min(m, n)]9. 青蛙跳台阶(两种方式)
python
# 一次跳1级或2级,问跳到n级有几种方式
def climbStairs(n):
if n <= 2:
return n
dp = [0] * (n + 1)
dp[1] = 1
dp[2] = 2
for i in range(3, n + 1):
dp[i] = dp[i - 1] + dp[i - 2]
return dp[n]二、二面(45~60 分钟 · 项目深挖 + 场景题 + 自动化)
1. 项目深挖:自动化测试的技术难点
难点1:UI 变化导致用例失败(控件 XPath 变了)
解决:用 PO 模式(Page Object)封装页面元素,定期维护
难点2:测试数据准备困难
解决:搭建独立的测试数据接口,用后清理
难点3:用例执行时间长
解决:用 Selenium Grid 做分布式执行
难点4:环境不稳定
解决:用 Docker 容器化部署测试环境2. 自动化测试的投入产出比(ROI)
自动化适合的场景:
1. 回归测试:每次发版都要跑,覆盖核心流程
2. 接口测试:稳定、变更少
3. 性能测试:需要反复压测
自动化的价值:
1. 减少人工重复劳动
2. 快速发现回归 Bug
3. 提高测试覆盖率
ROI 计算:
ROI = (手工测试时间 - 自动化测试时间) / 自动化建设时间 × 100%3. 用例执行完后,如何判断是功能问题还是用例问题?
1. 人工复现:手动在 UI 上操作一遍
2. 查看日志:接口返回数据、错误码
3. 查看录像/截图:看自动化执行过程
4. 分析失败模式:如果是控件找不到,大概率是用例问题;如果返回数据不对,可能是功能问题4. 弱网工具用过吗?
用过 Charles/mitmproxy 做弱网测试。
常用场景:
1. 2G/3G/4G 网络模拟
2. 网络延迟设置
3. 丢包率设置
4. 带宽限制
测试场景:
- 弱网下页面是否卡顿
- 请求超时处理
- 断网重连
- 离线模式5. 场景设计题:支付宝支付测试用例
【功能测试】
- 正常支付:余额充足 → 支付成功 → 返回结果
- 余额不足 → 支付失败
- 密码错误 → 支付失败(3次锁定)
- 支付超时 → 订单关闭
【安全性测试】
- 密码加密传输
- 防止 CSRF/XSS
- 支付限额
- 异地支付风控
【性能测试】
- 支付响应时间 < 3s
- 并发支付能力
【兼容性测试】
- 不同银行、不同 App 版本
【异常测试】
- 网络中断支付
- 支付中 App 闪退6. 场景设计题:LOL 选英雄界面更换皮肤功能测试
【功能测试】
- 正常更换:选择英雄 → 选择皮肤 → 显示皮肤特效
- 皮肤与英雄匹配:不是所有皮肤都适配所有英雄
- 更换后进入游戏:皮肤是否正确加载
【性能测试】
- 加载皮肤的时间
- 多皮肤切换的流畅度
【兼容性测试】
- 高配/低配机器
- 不同显卡
- 手机端 vs PC 端
【边界测试】
- 皮肤加载失败
- 网络不好时的降级处理7. 手撕代码:最长公共前缀
python
def longestCommonPrefix(strs):
if not strs:
return ''
# 纵向扫描:以第一个字符串为基准,依次比较每个字符
for i in range(len(strs[0])):
char = strs[0][i]
for j in range(1, len(strs)):
if i >= len(strs[j]) or strs[j][i] != char:
return strs[0][:i]
return strs[0]三、三面(30~45 分钟 · 综合面 + 游戏理解)
1. 为什么想做测试而不是游戏策划?
1. 我对游戏的质量保障有兴趣,喜欢找 Bug
2. 测试工程师既能玩游戏,又能用技术手段验证游戏质量
3. 网易有好的游戏产品线,能在喜欢的领域工作2. 玩的时间最长的游戏是什么?为什么不玩了?
如实回答,选择自己真正熟悉的游戏。
从游戏体验角度可以说:
- 游戏的核心玩法设计
- 某个版本的平衡性问题
- 为什么流失(肝度、氪金、游戏体验下降)3. 智力题:八人比赛,双败赛制决出冠军最少几次?
双败赛制:每输一场进入败者组,败者组再输一场出局。
第一轮:4 场比赛 → 4 胜者进胜者组决赛,4 败者进败者组
胜者组决赛:1 场
败者组第一轮:2 场(4人)
败者组决赛:1 场(2人)
冠军战:1 场(胜者组冠军 vs 败者组冠军)
总计:4 + 1 + 2 + 1 + 1 = 9 场
但如果胜者组冠军一路赢到底,最少约 7~8 场4. 对网易游戏的了解?
根据投递的部门回答:
互娱:
- 经典游戏:梦幻西游、大话西游、阴阳师
- 新游戏:永劫无间、蛋仔派对
- 方向:游戏测试、性能测试、弱网测试
互联网:
- 产品:有道云笔记、网易云音乐、严选
- 方向:功能测试、自动化测试、接口测试5. 职业规划
1. 短期:掌握测试技术,能独立负责模块
2. 中期:深入自动化测试/性能测试,能设计测试平台
3. 长期:在测试领域成为专家四、网易高频手撕代码汇总
| 题目 | 难度 | 出现频率 |
|---|---|---|
| 字符串分词+排序+翻转 | ★★ | ⭐⭐⭐⭐⭐ |
| M个苹果放N个盘子 | ★★★ | ⭐⭐⭐⭐ |
| 青蛙跳台阶 | ★★ | ⭐⭐⭐ |
| 最长公共前缀 | ★★ | ⭐⭐⭐ |
| LRU 缓存 | ★★★ | ⭐⭐⭐ |
五、网易面试特点总结
网易一面:基础八股 + 字符串处理算法 + 游戏理解
重点:基础要扎实,算法要能写出来
网易二面:项目深挖 + 自动化测试深度 + 场景题
重点:自动化要有实战经验,场景题要思路清晰
网易三面:综合面 + 游戏理解
重点:对游戏有热情,项目有深度
注意:网易互娱面试会问很多游戏相关问题(游戏经历、游戏理解)
网易互联网面试更偏技术(自动化、工具开发)