- 日期:2025-05-19、2025-05-20
- 企业与岗位:网易雷火|测试开发
- 适用层级:初级/中级
本篇为社区对用户分享面经的整理汇编,旨在帮助求职者了解面试考察方向。问题部分力求忠实还原原帖问答脉络;「参考答案 / 复盘思路」为整理方结合工程实践原创补充,仅供交流参考,不代表官方标准答案。
1. A面:项目经历讨论(约30分钟)
准备建议:
先说明项目场景、系统边界、测试对象和自己的实际职责,再围绕一次失败排查展示证据链。提前准备接口时序图、核心用例、日志片段和CI结果,讲清哪项判断有证据支撑,哪项只是当时的初步假设。
2. A面算法:二叉树的所有路径和
参考答案 / 复盘思路:
题干未限定是求路径总和还是列举路径,可先确认路径起点、终点及返回格式。若是根到叶的路径和,用DFS携带累计和,到叶节点记录;若要列举所有根到叶路径,携带路径列表并回溯。测试空树、负数、单节点、深树和多分支。
3. A面逻辑:三个开关对应三盏灯,只进房间一次怎样区分?
参考答案 / 复盘思路:
先让开关A开一段时间再关掉,B保持开启,C始终关闭;进入后,亮灯对应B,灭而温热对应A,灭且冷对应C。成立条件是灯泡可安全感知余热;若是LED且温差不可分辨,应先向面试官确认物理假设。
4. A面逻辑:140克盐、7克和2克砝码,三次称出90克和50克
参考答案 / 复盘思路:
第一称把140克盐等分为70克和70克;第二称再把其中70克等分为35克和35克;第三称把一份35克分成20克和15克:在20克盐一侧放2克砝码,在15克盐一侧放7克砝码,天平平衡,因为20+2=15+7。最后70+20=90克,35+15=50克。每一步都用天平确认,正好三次。
5. B面:进程和线程的区别;了解协程吗?
参考答案 / 复盘思路:
进程是资源隔离单位,线程共享进程地址空间但有独立栈与调度上下文;协程通常在用户态由运行时调度,适合高并发I/O。测试时关注共享状态竞争、线程池耗尽、协程取消传播与阻塞调用;不要把“协程更轻量”误解成一定并行。
6. B面:Redis为什么比MySQL快?
参考答案 / 复盘思路:
Redis典型路径以内存数据结构和事件循环处理为主,减少磁盘随机I/O与复杂查询开销;MySQL即便命中Buffer Pool,也有SQL解析、事务、锁、索引访问等成本。对比必须限定数据模型与操作类型,不能简单断言Redis所有操作都快。
7. B面追问:I/O多路复用
参考答案 / 复盘思路:
select、poll、epoll允许单线程监视多个连接的就绪事件,减少每连接阻塞等待的成本。就绪不等于业务处理完成,读写仍需处理EAGAIN、半包和背压;验证可观察连接数、事件循环延迟与慢客户端对其他连接的影响。
8. B面:面向对象三大特性及各自优点
参考答案 / 复盘思路:
封装通过接口隐藏实现,降低耦合;继承复用并表达is-a关系,但过深继承链会难维护;多态让同一接口支持不同实现,便于替换与测试桩注入。工程中优先考虑组合与清晰接口,而不是为了使用继承而继承。
9. B面:事务ACID四大特性及关系
参考答案 / 复盘思路:
原子性保证要么全成要么全回滚,一致性强调约束从合法状态到合法状态,隔离性约束并发可见性,持久性保证提交后故障恢复。四者相关但不能互相替代;测试转账时需验证异常回滚、并发冲突、约束不破坏和崩溃恢复。
10. B面:常见GC算法
参考答案 / 复盘思路:
标记-清除实现简单但可能碎片化,复制适合存活率低区域,标记-整理减少碎片但移动对象有成本,分代回收利用对象生命周期差异。结合JVM还要看具体收集器、暂停时间和吞吐目标;排查时用GC日志、堆占用和对象分配速率而不是只背名词。
11. B面算法:最长回文子串
参考答案 / 复盘思路:
中心扩展法遍历每个字符及字符间隙,向两侧扩展相同字符,记录最长区间,时间O(n²)、额外空间O(1)。Manacher可做到O(n),但面试先写清晰正确的中心扩展通常更稳。重点测空串、偶数长度、重复字符与多解情况。
12. B面算法:原地合并两个有序数组
参考答案 / 复盘思路:
若第一个数组尾部有足够空位,可从两个数组有效元素的末尾向前比较,把较大值写到末端,时间O(m+n)、额外空间O(1)。若题目没有预留容量,“原地”含义需要先确认。测试一方为空、全部重复、负数和完全逆序分布。
13. B面逻辑:100杯水有一杯有毒,一天内用最少小鼠找出
参考答案 / 复盘思路:
假设每只小鼠在一天内可独立表现生死、每杯可取多滴混合,则每只小鼠提供1bit信息;区分100种结果至少需要ceil(log2 100)=7只。给杯子编号0—99,按二进制位安排每只小鼠饮用对应样本,观察7位生死向量反推编号。
延伸思考(社区补充)
如果你负责网易雷火同类业务的自动化回归,如何把上述考察点转成可复现的测试数据、CI检查和上线监控?建议挑一个具体场景写出输入、断言、异常与回滚证据。
