测试开发实习二面面经
完整信息
本篇目录
最近参加了B站测试开发实习的二面,整体大约45分钟,主要包括自我介绍、项目深挖、手撕算法、计算机基础和业务场景测试。目前还在等结果,分享一下具体的面试过程,给后续面试的同学参考~
📌 一、项目深挖(约10分钟)
开头是常规自我介绍,随后面试官针对简历中的RAG智能问答项目展开提问。
主要问题:
① 介绍一下项目整体架构和运行流程。
② 离线文档是如何解析和分块的?
③ 文本分块之后如何存储和建立检索?
④ 用户提问后,系统是如何搜索并生成回答的?
整体比较关注项目的实际实现流程,没有特别深入的理论问题。
💻 二、手撕算法(约20分钟)
LeetCode 15:三数之和(Medium)
要求找出数组中所有和为0的不重复三元组。
一开始尝试排序+双指针,但实现过程中遇到问题,后面换成三重循环暴力求解。
最终代码能够正常运行,也通过了一部分测试用例,但是去重没有完全处理好,没能AC。
后面向面试官解释了原本的双指针思路。
这道题花的时间比较长,感觉现场编码能力和边界处理还是需要加强。
📚 三、计算机基础八股
主要问了3道:
① TCP为什么是三次握手、四次挥手?为什么挥手比握手多一次?
② Python装饰器是什么?有什么作用?
③ 如何判断MySQL查询没有使用到索引?应该怎么排查?
这部分答得一般,尤其Python装饰器和MySQL索引排查没有准备充分。
🧪 四、业务场景测试
场景:设计一个抢优惠券功能的测试方案。
业务要求:
① 每个用户ID最多领取一张优惠券。
② 每天8:00~10:00开放领取。
③ 优惠券需要在指定时间内使用。
④ 支持H5、Web和手机端。
问题1:如何设计测试用例?
主要从正常功能、异常情况、时间边界、重复领取、数据库一致性、多端兼容和并发场景等角度回答。
问题2(追问):用户显示抢券成功,但是实际使用时发现优惠券不可用,应该如何排查?
我主要回答了几个方向:
① 检查数据库是否真正写入成功,有没有事务未提交的问题。
② 检查优惠券的有效期、使用时间和相关限制。
③ 检查网络请求及前后端状态是否同步。
感觉这部分更偏向实际业务测试和故障定位,除了设计测试用例,还需要理解后台的数据处理流程。
🙋 五、反问环节
① 团队日常测试是负责固定业务模块,还是按照需求承担不同的测试任务?
② 测试开发实习生平时主要负责哪些工作?
📝 六、个人总结
整体面试节奏比较紧凑,面试官的提问覆盖面也比较广。
项目方面比较重视实际实现细节,需要能够完整讲清楚系统流程。
算法方面不只考察思路,还要能在有限时间内写出正确代码,去重和边界条件很重要。
八股涉及计算机网络、Python和MySQL,建议结合实际开发场景理解。
业务测试方面,除了正常功能和边界条件,还要考虑并发、数据一致性以及实际故障排查。
个人感觉是一场比较综合的测试开发技术面试,也暴露了自己在算法编码和基础知识方面的一些不足。
本篇目录
当前问题0113
- 01
开头是常规自我介绍,随后面试官针对简历中的RAG智能问答项目展开提问。
- 02
介绍一下项目整体架构和运行流程。
- 03
离线文档是如何解析和分块的?
- 04
文本分块之后如何存储和建立检索?
- 05
用户提问后,系统是如何搜索并生成回答的?
- 06
LeetCode 15:三数之和(Medium)
- 07
TCP为什么是三次握手、四次挥手?为什么挥手比握手多一次?
- 08
Python装饰器是什么?有什么作用?
- 09
如何判断MySQL查询没有使用到索引?应该怎么排查?
- 10
场景:设计一个抢优惠券功能的测试方案。
- 11
问题2(追问):用户显示抢券成功,但是实际使用时发现优惠券不可用,应该如何排查?
- 12
团队日常测试是负责固定业务模块,还是按照需求承担不同的测试任务?
- 13
测试开发实习生平时主要负责哪些工作?