Skip to content

网易测试开发面经(按一二三面拆分 · 可背诵标准回答版)

注:网易分为「网易互联网」(有道/云音乐/严选等)和「网易互娱」(游戏),测开面试内容有差异,以下内容两者兼顾。


一、一面(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 缓存★★★⭐⭐⭐

五、网易面试特点总结

网易一面:基础八股 + 字符串处理算法 + 游戏理解
重点:基础要扎实,算法要能写出来

网易二面:项目深挖 + 自动化测试深度 + 场景题
重点:自动化要有实战经验,场景题要思路清晰

网易三面:综合面 + 游戏理解
重点:对游戏有热情,项目有深度

注意:网易互娱面试会问很多游戏相关问题(游戏经历、游戏理解)
     网易互联网面试更偏技术(自动化、工具开发)

Powered by VitePress

🔒 需要口令解锁

关注微信公众号
回复关键词 「」 获取口令

解锁后本浏览器长期有效