Skip to main content
  1. Posts/

Interviews_150

·1070 words·6 mins

测开各公司面试题库 #

本文档整理自2025-2026年各大厂测开岗位真实面经 涵盖:字节跳动、腾讯、快手、百度、小红书等 数据来源:牛客网、小红书、CSDN等平台 最后更新:2026-02-24


📋 目录 #


字节跳动 #

📌 公司信息 #

  • 薪资范围:本科28W-45W,硕士35W-60W+
  • 面试轮次:2-3轮技术面 + 1轮HR面
  • 面试特点:算法要求高,重视项目深度,考察系统设计
  • 常见部门:抖音、TikTok、飞书、火山引擎

一面(40-70分钟) #

技术基础(必考) #

操作系统

  1. 进程与线程的区别?哪些资源是共享的?
  2. 线程安全是什么意思?如何保证线程安全?
  3. 虚拟内存的作用?如何进行管理?
  4. 死锁的四个条件?如何预防死锁?
  5. 哲学家进餐问题及解决方案

计算机网络

  1. TCP三次握手过程?为什么需要第三次握手?
  2. TCP四次挥手过程?为什么需要TIME_WAIT状态?
  3. HTTP和HTTPS的区别?HTTPS的加密过程?
  4. TLS连接建立过程?
  5. 输入URL到页面加载的全过程?(高频)
  6. GET和POST的区别?
  7. HTTP状态码:200、400、404、500、502分别代表什么?

数据库

  1. MySQL索引底层实现?为什么用B+树不用B树或红黑树?
  2. 联合索引(A,B),以下哪些会走索引:
    • WHERE A= AND B=
    • WHERE B= AND A=
    • WHERE A=
    • WHERE B=
  3. 事务的ACID特性?如何实现的?
  4. MySQL的事务隔离级别?
  5. MVCC原理?
  6. RedoLog和UndoLog的作用?

Redis

  1. Redis的数据结构有哪些?底层实现?
  2. 缓存雪崩、缓存穿透、缓存击穿的区别和解决方案?
  3. Redis如何保证数据一致性?(延迟双删)
  4. Redis分片机制?
  5. Redis为什么快?
  6. Redis持久化方式?RDB和AOF的区别?

Python/Java基础

  1. Python中list、tuple、dict、set的区别?
  2. Python的装饰器是什么?如何使用?
  3. Python的GIL锁是什么?
  4. is==的区别?
  5. Java的HashMap和ConcurrentHashMap原理?
  6. Java线程池的核心参数?

Linux

  1. 常用的Linux命令?(grep、ps、top、netstat等)
  2. 如何查看进程?如何杀死进程?
  3. 如何查找文件中包含某个关键词的行?
  4. 大量文件中将dog替换为cat如何做?(sed命令)

测试专业知识 #

测试方法

  1. 黑盒测试和白盒测试的区别?
  2. 等价类划分和边界值分析如何使用?
  3. 冒烟测试的设计原则?
  4. 如何保证测试用例的覆盖率?

自动化测试

  1. 用过哪些自动化测试框架?
  2. 自动化测试的实现逻辑是什么?
  3. 如何设计自动化测试用例?
  4. 接口测试关注哪些方面?
  5. 性能测试的指标有哪些?(QPS、TPS、并发数、响应时间)

项目经历

  1. 介绍你的实习/项目经历?
  2. 项目中遇到的最大难点是什么?如何解决的?
  3. 你在项目中的具体贡献是什么?
  4. 如何设计测试用例?依据是什么?
  5. 发现Bug后的处理流程?
  6. 和开发意见不一致时如何处理?

场景题(必考,非常重要) #

  1. 微信朋友圈发布功能,设计测试用例

    • 考察点:功能测试、边界测试、异常测试、性能测试、安全测试
    • 回答思路:
      • 功能:文字、图片、视频、定位、@好友、权限设置
      • 边界:最大字数、最大图片数量、文件大小限制
      • 异常:网络异常、存储空间不足、权限不足
      • 性能:发布速度、图片加载速度
      • 安全:隐私权限、敏感内容过滤
  2. 测试淘宝购物车功能

    • 考察点:完整业务流程理解
    • 回答思路:
      • 添加商品:正常添加、重复添加、库存不足
      • 修改数量:增加、减少、输入非法字符
      • 删除商品:单个删除、批量删除
      • 价格计算:优惠券、满减、运费计算
      • 结算:跳转到下单页面
  3. 登录界面测试用例

    • 考察点:基础测试能力
    • 回答思路:
      • 功能:正确登录、错误密码、用户名不存在
      • UI:界面显示、按钮状态、错误提示
      • 安全:密码加密、防SQL注入、验证码
      • 性能:登录响应时间、并发登录
  4. 视频播放黑屏,如何排查?

    • 考察点:问题定位能力
    • 回答思路:
      • 前端:检查网络请求、视频格式、浏览器兼容性
      • 后端:检查视频URL是否有效、CDN是否正常
      • 设备:检查硬件解码、显卡驱动
      • 日志:查看前后端日志、错误信息
  5. 支付成功后页面一直加载,如何排查?

    • 考察点:全链路问题定位
    • 回答思路:
      • 确认支付是否真的成功(查数据库、第三方支付平台)
      • 检查前端是否收到回调
      • 检查后端是否正常处理回调
      • 检查网络请求是否超时
      • 查看前后端日志
  6. APP弹窗功能如何测试?

    • 触发条件、展示逻辑、点击跳转、关闭按钮
    • 多弹窗优先级、频次控制、用户已关闭不再展示

算法题(1道,20-30分钟) #

高频算法题

  • 两数之和(1)- 要求只遍历一次,返回下标从1开始
  • 有效的括号(20)- 要求手撕后设计测试用例
  • 链表反转(206)
  • 无重复字符的最长子串(3)
  • 打家劫舍(198)- 有进阶问环形的情况
  • 最接近的三数之和(16)

注意事项

  • 先说思路,得到面试官确认再写代码
  • 考虑边界情况(空数组、单元素、重复元素)
  • 写完后主动设计测试用例
  • 分析时间和空间复杂度

反问环节 #

推荐问题:

  1. 部门的主要业务是什么?
  2. 测试团队的规模和分工?
  3. 日常工作中测试和开发的比例?
  4. 新人培养机制如何?
  5. 多久能出面试结果?

二面(50-70分钟) #

项目深挖(重点) #

  1. 深入介绍你的项目

    • 项目背景、目标用户、解决的问题
    • 技术架构、你的职责
    • 项目周期、为什么花这么久?
    • 如果重新做,能否更快完成?从哪些方面优化?
  2. 项目难点

    • 遇到的最大技术难点是什么?
    • 如何定位问题的?花了多长时间?
    • 最终如何解决的?有什么收获?
    • 是否考虑过弱网、高并发等场景?
  3. 技术选型

    • 为什么用Kafka而不用RabbitMQ?
    • 为什么用Redis缓存?
    • Redis读写分离如何保证一致性?
    • 如何保证强一致性?
  4. 性能优化

    • 做过哪些性能优化?
    • 如何定位性能瓶颈?
    • 优化效果如何?(用数据说话)

系统设计(高频) #

  1. 限流设计

    • 如何设计一个限流系统?
    • 令牌桶和漏桶算法的区别?
    • 分布式限流如何实现?
    • QPS如何计算和评估?
  2. 缓存设计

    • 缓存雪崩、穿透、击穿如何解决?
    • 缓存更新策略有哪些?
    • 如何保证缓存和数据库的一致性?
  3. 消息队列

    • Kafka如何保证消息顺序?
    • 如何避免重复消费?
    • 消息丢失如何处理?

算法题(1道,更难) #

高频题

  • 无重复字符的最长子串(3)
  • 最长回文子串(5)
  • 链表操作(合并、分组反转)
  • 判断链表是否有环(141)
  • 零钱兑换(322)- 完全背包

字节特色

  • 会根据你的答案继续追问优化方案
  • 可能让你设计测试用例
  • 可能让你分析时间空间复杂度

三面(40-60分钟) #

综合能力考察 #

  1. 职业规划

    • 为什么选择测开而不是后端开发?
    • 未来3-5年的职业规划?
    • 如何看待测试和开发的关系?
  2. 学习能力

    • 最近在学习什么新技术?
    • 如何快速学习一门新技术?
    • 遇到不熟悉的业务如何快速上手?
  3. 团队协作

    • 和开发意见不一致时如何处理?
    • 项目延期时如何保证质量?
    • 如何推动团队提升代码质量?
  4. 压力管理

    • 如何应对紧急的线上问题?
    • 同时有多个任务时如何排优先级?

算法题(可能有,可能没有) #

如果有,通常是:

  • 图相关问题(可能说思路即可)
  • 复杂的动态规划
  • 系统设计题

HR面(15-30分钟) #

常见问题 #

  1. 自我介绍 (2-3分钟)

  2. offer情况

    • 目前有哪些offer?薪资如何?
    • 为什么想来字节?
    • 如果其他公司给更高薪资会怎么选?
  3. 工作地点

    • 能否接受北京/上海/深圳/杭州?
    • 能否接受调岗到其他城市?
  4. 实习情况

    • 能否提前实习?最早什么时候?
    • 实习期多久?
    • 毕业时间?
  5. 期望薪资

    • 期望薪资范围?
    • 对股票和现金的偏好?
  6. 软性问题

    • 用几个词形容自己的优缺点?
    • 老师同学如何评价你?
    • 遇到挫折如何应对?

💡 字节面试技巧 #

  1. 简历准备

    • 突出项目成果,用数据说话
    • 技术栈要写熟悉的,会被深挖
    • 实习经历写具体职责和贡献
  2. 技术准备

    • 操作系统、网络、数据库、Redis必须掌握
    • 算法刷LeetCode中等难度(Hot100)
    • 项目要能讲30分钟以上
  3. 心态调整

    • 字节面试节奏快,1-2天就能出结果
    • 不要因为一面表现不好就放弃
    • 反问环节展示对业务的兴趣

腾讯 #

📌 公司信息 #

  • 薪资范围:本科25W-40W,硕士30W-50W+
  • 面试轮次:2-3轮技术面 + 1轮HR面
  • 面试特点:注重业务理解,WLB好,福利丰富
  • 常见事业群:WXG(微信)、PCG(内容)、TEG(技术)、CSIG(企业服务)

一面(40-60分钟) #

测试基础(重点) #

测试流程

  1. 完整的测试流程是怎样的?
    • 需求分析 → 测试设计 → 用例编写 → 执行测试 → 缺陷管理 → 回归测试
  2. 如何进行需求分析?
  3. 测试计划包含哪些内容?
  4. Bug生命周期是怎样的?
  5. 如何评估测试质量?(覆盖率、缺陷密度)

测试方法

  1. 黑盒测试方法有哪些?
    • 等价类划分、边界值分析、因果图、判定表、状态转换
  2. 如何设计测试用例?(等价类为主)
  3. 测试用例的要素有哪些?
  4. 如何保证测试用例的质量?

自动化测试

  1. 接触过自动化测试吗?用的什么框架?
  2. 自动化测试的ROI如何评估?
  3. 什么样的场景适合自动化?
  4. UI自动化和接口自动化的区别?
  5. 持续集成(CI/CD)了解多少?

性能测试

  1. 做过性能测试吗?
  2. 性能测试关注哪些指标?
    • QPS、TPS、响应时间、并发数、错误率
  3. 如何进行压力测试?
  4. 性能瓶颈如何定位?
    • CPU、内存、数据库、网络、代码逻辑
  5. JMeter/Locust用过吗?

技术基础 #

计算机网络

  1. HTTP状态码有哪些?
  2. HTTP和HTTPS的区别?
  3. TCP三次握手、四次挥手
  4. Cookie和Session的区别?为什么需要它们?
  5. 输入URL到页面显示的过程?

数据库

  1. MySQL的索引类型?
  2. 聚集索引和非聚集索引的区别?
  3. 索引越多越好吗?为什么?
  4. 事务的ACID特性?
  5. 如何防止幻读?

操作系统

  1. 进程和线程的区别?
  2. 线程安全如何保证?
  3. 死锁的条件?

Redis

  1. Redis的数据类型?
  2. Redis如何做缓存?
  3. 缓存雪崩、穿透、击穿如何解决?

项目经历 #

  1. 介绍实习/项目经历(详细)
  2. 项目的测试流程是怎样的?
  3. 你负责的模块有哪些?
  4. 遇到过什么印象深刻的Bug?如何定位和解决的?
  5. 测试用例设计的依据是什么?
  6. 项目中有没有做自动化?覆盖率如何?
  7. 和开发出现分歧时如何处理?

场景题 #

  1. 微信动态(朋友圈)测试用例
  2. 登录功能测试用例
    • 用户名、密码、验证码先验证哪个?
  3. 搜索功能测试用例
  4. 微信小程序测试
    • 和App测试有什么不同?
  5. 电商下单流程测试
    • 添加购物车 → 下单 → 支付
  6. 支付成功后页面一直转圈,如何排查?
  7. APP黑屏可能的原因?
  8. 视频播放失败如何排查?

算法题 #

  • 合并两个有序数组(88)
  • 有效的括号(20)
  • 链表反转(206)
  • 倍数关灯(力扣)
  • 判断IPv4地址合法性

二面(40-60分钟) #

深入技术问题 #

数据库进阶

  1. MySQL慢查询如何优化?
  2. Explain的输出如何分析?
  3. 什么情况下索引会失效?
  4. 如何进行分库分表?
  5. 主从复制的原理?

Redis进阶

  1. Redis大Key如何处理?
  2. Redis如何实现分布式锁?
  3. RedLock算法了解吗?
  4. Redis持久化机制?RDB和AOF的区别?
  5. Redis集群如何实现?

系统设计

  1. 设计一个热搜系统
    • 如何统计热度?
    • 如何排序?
    • 如何防止刷榜?
  2. 设计一个秒杀系统
    • 如何防止超卖?
    • 如何限流?
    • 如何保证库存一致性?
  3. 设计一个短链系统
    • 如何生成短链?
    • 如何保证唯一性?
    • 如何统计点击量?

业务理解 #

  1. 你对微信/QQ/腾讯云的业务了解多少?
  2. 如果让你测试微信的某个功能,你会如何设计?
  3. 灰度发布是什么?如何进行灰度测试?
  4. A/B测试了解吗?
  5. 如何保证线上质量?

算法题 #

  • 无重复字符的最长子串(3)
  • 最长回文子串(5)
  • 链表相关(合并、排序)
  • 动态规划(打家劫舍、零钱兑换)

三面(30-50分钟) #

综合能力 #

  1. 技术深度

    • 介绍你最擅长的技术栈
    • 深入讲一个技术难点
  2. 业务理解

    • 对测试岗位的理解
    • 测试如何驱动质量提升
  3. 学习能力

    • 到一个新业务线,如何快速熟悉?
    • 最近在学什么?
  4. 团队协作

    • 和开发/产品沟通的经验
    • 如何推动流程优化

算法题(可能有) #

通常是系统设计题或者复杂的算法题


HR面(15-30分钟) #

  1. 自我介绍
  2. 为什么选择腾讯?
  3. 对哪个事业群比较感兴趣?
  4. 能否接受深圳/北京/上海/成都?
  5. 期望薪资?
  6. 其他offer情况?
  7. 最快入职时间?
  8. 你的优缺点?
  9. 如何处理工作压力?

💡 腾讯面试技巧 #

  1. 强调业务理解

    • 多了解腾讯的产品
    • 能站在用户角度思考测试
  2. 注重测试基础

    • 测试理论要扎实
    • 测试流程要清晰
  3. WLB导向

    • 腾讯相对其他大厂更注重WLB
    • 可以在反问环节了解工作强度

快手 #

📌 公司信息 #

  • 薪资范围:与字节、腾讯基本持平
  • 面试轮次:2-3轮技术面 + 1轮HR面
  • 面试特点:注重实战,问题细节多
  • 主要业务:快手APP、快手电商、快手直播

一面(40-50分钟) #

项目经历(重点) #

  1. 介绍实习项目
  2. 你主要负责什么?
  3. 测试流程是怎样的?
  4. 如何设计测试用例的?
  5. 印象最深的Bug是什么?怎么解决的?
  6. 做过性能测试吗?用什么工具?关注哪些指标?
  7. 有自动化测试经验吗?代码逻辑是什么?

技术基础 #

Python(常考)

  1. Python数据类型有哪些?
  2. list和tuple的区别?
  3. 深拷贝和浅拷贝?
  4. is==的区别?
  5. Python装饰器用过吗?
  6. Python多线程如何实现?GIL锁了解吗?

数据库

  1. 聚集索引和非聚集索引?
  2. 索引是越多越好吗?
  3. 数据库范式了解多少?
  4. B+树的特点?
  5. 分表和分区的区别?

网络

  1. HTTP和HTTPS的区别?
  2. UDP和TCP的区别?适用场景?
  3. 搭建一个TCP Server的步骤?

Linux

  1. 常用Linux命令(说5个以上)
  2. 查看进程的命令?
  3. 如何杀死进程?

场景题 #

  1. 设计网页文件上传的测试用例
  2. 测试快手短视频发布功能
  3. 测试电商订单支付流程

算法题 #

  • 螺旋矩阵(54)
  • 链表删除倒数第N个节点(19)
  • 爬楼梯(70)
  • 二分查找(704)

二面(30-40分钟) #

项目深挖 #

  1. 项目中用到了哪些框架?
  2. 后端了解哪些技术?
  3. 有设计过数据库吗?
  4. 开发小程序遇到什么Bug?怎么解决的?
  5. 让你印象比较深刻的事情?

系统设计 #

  1. 小程序创建,后端数据库如何设计?
  2. 水平越权和垂直越权的区别?
  3. 如何防止越权?

算法题 #

  • 链表反转(206)
  • 数字翻译成字符串的可能数(剑指Offer)
  • Python抓取页面并解析图片URL

HR面(15-20分钟) #

  1. 自我介绍
  2. 职业规划
  3. 为什么想做测试?
  4. offer情况?
  5. 期望薪资?
  6. 最快入职时间?

💡 快手面试技巧 #

  1. 注重实战

    • 多准备项目细节
    • 能讲清楚技术实现
  2. Python为主

    • 如果用Python,基础要扎实
    • 可能会手撕Python代码
  3. 算法难度适中

    • 中等难度居多
    • 注重代码规范

百度 #

📌 公司信息 #

  • 薪资范围:与其他大厂基本持平
  • 面试轮次:2-3轮技术面 + 1轮HR面
  • 面试特点:注重工程能力,Linux操作要熟
  • 主要业务:搜索、AI、自动驾驶、云服务

一面(50-60分钟) #

项目经历 #

  1. 介绍实习项目(详细)
  2. 项目的业务流程?
  3. 你的职责?
  4. 测试流程?
  5. 遇到的困难?
  6. 如何解决的?

技术基础 #

数据库

  1. 数据库事务了解多少?
  2. 慢查询如何优化?
    • 索引优化
    • SQL语句优化
    • 分库分表
  3. 如何创建索引?
  4. 联合索引的匹配规则?
  5. 命中索引的条件?

Redis

  1. Redis大Key如何处理?
  2. Redis缓存方案有哪些?
  3. 缓存雪崩、穿透如何解决?
  4. Redis数据一致性如何保证?
    • 先删缓存还是先删数据库?
    • 延迟双删的原理?

网络

  1. HTTP状态码?400和404、500和502的区别?
  2. 输入www.baidu.com会发生什么?
  3. DNS解析过程?

Linux

  1. Linux常用命令?
  2. 如何查看进程?
  3. Docker和K8s了解吗?
  4. Docker常用命令?

测试专业 #

  1. 测试可以划分为哪些类型?
    • 黑盒、白盒
    • 单元测试、集成测试、系统测试
    • 功能测试、性能测试、安全测试
  2. 接触过自动化测试吗?
  3. 性能测试如何做?

场景题 #

  1. 针对聊天功能设计测试用例
  2. 测试购物车功能
  3. 支付成功后页面一直加载,如何排查?
  4. 如果灰度流量不符合预期,如何处理?
  5. 测试环境广告弹不出来,如何排查?

算法题 #

  • 打家劫舍(198)
    • 进阶:环形打家劫舍(213)
  • 最长回文子串(5)
  • 判断链表是否有环(141)
  • 搜索二维矩阵(74)

二面(40-50分钟) #

项目深挖 #

  1. 科研项目介绍
  2. 项目周期多久?为什么花这么久?
  3. 如果重新做,能否更快?
  4. 项目难点是什么?
  5. 如何定位问题的?
  6. 简历中的论文能讲讲吗?

系统设计 #

  1. 如果MySQL查询很慢,高并发下如何优化?
    • SQL优化
    • 索引优化
    • 缓存
    • 分库分表
    • 读写分离
  2. Redis缓存一致性如何保证?
  3. 如何实现分布式限流?

算法题 #

  • 判断链表是否有环(141)- HashMap和双指针两种方法
  • 最长公共子序列(1143)

三面(40-60分钟) #

技术深度 #

  1. 实习中做的具体工作?
  2. 猪只识别功能如何实现的?如何微调模型?
  3. 物联网平台测试考虑了哪些?
    • 功能测试、接口性能测试
    • 为什么没做兼容性和安全性测试?
    • 如果要做,用什么工具?

数据库深入 #

  1. 联合索引(A,B)的匹配规则?
  2. WHERE B= AND A=如何走索引?
    • MySQL优化器会自动调整
  3. SQL执行过程中优化器的作用?

Redis深入 #

  1. 缓存雪崩、缓存穿透如何分析和解决?
  2. 从测试角度,如何分析系统出现了缓存问题?
  3. Redis数据一致性问题如何解决?
    • 延迟双删
    • 哪个环节导致不一致?

算法题 #

  • 二维矩阵搜索(74)
  • 组合索引匹配(SQL相关)

💡 百度面试技巧 #

  1. Linux要熟

    • 常用命令要会
    • Docker/K8s基础要了解
  2. 数据库是重点

    • 索引原理要清楚
    • SQL优化要会
  3. 项目要讲清楚

    • 百度比较看重项目深度
    • 要能讲出技术细节

小红书 #

📌 公司信息 #

  • 薪资范围:与其他大厂基本持平
  • 面试轮次:2-3轮技术面 + 1轮HR面
  • 面试特点:重视用户体验,问题偏向业务
  • 主要业务:内容社区、电商、广告

一面(40分钟) #

测试基础 #

  1. 自我介绍
  2. 你主要负责功能测试的什么方面?
  3. 自动化测试代码的编写逻辑是什么?
  4. 自动化测试框架的设计?
    • 分层设计(测试层、业务层、工具层、数据层)
    • 模块化
    • 数据驱动
  5. 如何选择自动化测试的场景?
  6. 错误处理和日志记录如何做?

项目经历 #

  1. 介绍你的项目
  2. 项目的业务逻辑?
  3. 测试用例设计方法?
  4. 遇到过什么困难?如何解决的?

场景题 #

  1. 测试小红书的笔记发布功能
  2. 测试小红书的评论功能
  3. 测试小红书的搜索功能

二面(40分钟) #

技术深入 #

数据库

  1. MySQL慢查询如何处理?
  2. 如何设计数据库表?
  3. 数据库连接池如何配置?

Redis

  1. Redis大Key如何处理?
  2. 如何保证Redis和MySQL的一致性?

系统设计

  1. 设计一个热搜系统
    • 数据采集
    • 实时计算
    • 排序展示
    • 防止刷榜

算法题 #

  • 无重复字符的最长子串(3)- 滑动窗口
  • 和为K的子数组(560)- 前缀和+哈希表
  • 不同的子序列(115)- 动态规划

三面(面试时长不定) #

综合能力 #

  1. 围绕大模型相关项目提问
  2. text2sql应用的细节
  3. 论文介绍(如果简历有)
  4. LLM与推荐系统结合的问题
  5. 如何评估模型效果?

算法题 #

  • 有n个灯泡,第k轮反转k的倍数位置的灯泡,问n轮后有多少灯泡亮着
  • 给定三个等长序列,根据规则返回满足要求的下标对
  • 给定数组,每次取一个数K,移除K-1和K+1,求最大和

HR面 #

  1. 自我介绍
  2. 对职业选择的考量
  3. 比较有挑战的项目?
  4. 学校项目和公司项目的区别?
  5. 遇到意见不一致如何处理?
  6. 用几个词概括优缺点?
  7. 目前有哪些offer?薪资如何?
  8. 选择公司的标准?

💡 小红书面试技巧 #

  1. 用户视角

    • 多从用户体验角度思考
    • 熟悉小红书的产品
  2. 算法偏难

    • 算法题可能比其他公司难
    • 需要扎实的算法基础
  3. 项目要深

    • 特别是如果有AI/大模型相关经验
    • 会问得很细

通用面试准备 #

📚 必背八股文 #

操作系统(TOP10) #

  1. 进程和线程的区别?
  2. 线程安全如何保证?
  3. 死锁的四个条件?如何预防?
  4. 虚拟内存的作用?
  5. 分页和分段的区别?
  6. 进程间通信方式?
  7. 线程间通信方式?
  8. 进程调度算法有哪些?
  9. 内存管理方式?
  10. 用户态和内核态的区别?

计算机网络(TOP15) #

  1. OSI七层模型?TCP/IP四层模型?
  2. TCP三次握手?为什么需要三次?
  3. TCP四次挥手?为什么需要四次?
  4. TIME_WAIT状态的作用?
  5. TCP如何保证可靠传输?
  6. TCP和UDP的区别?
  7. HTTP和HTTPS的区别?
  8. HTTPS的加密过程?
  9. HTTP状态码?
  10. GET和POST的区别?
  11. Cookie和Session的区别?
  12. 输入URL到页面加载的全过程?
  13. DNS解析过程?
  14. 什么是跨域?如何解决?
  15. WebSocket和HTTP的区别?

数据库(TOP20) #

  1. 索引的底层实现?
  2. 为什么用B+树不用B树或红黑树?
  3. 联合索引的匹配规则?
  4. 索引失效的场景?
  5. 事务的ACID特性?
  6. 事务的隔离级别?
  7. 脏读、不可重复读、幻读的区别?
  8. MVCC原理?
  9. 乐观锁和悲观锁?
  10. 行锁和表锁?
  11. 死锁如何避免?
  12. SQL优化的方法?
  13. Explain如何使用?
  14. 主从复制原理?
  15. 读写分离如何实现?
  16. 分库分表如何做?
  17. RedoLog和UndoLog的作用?
  18. BinLog的作用?
  19. 如何保证主从一致性?
  20. 数据库连接池的作用?

Redis(TOP15) #

  1. Redis的数据结构?底层实现?
  2. Redis为什么快?
  3. 缓存雪崩、缓存穿透、缓存击穿?
  4. 如何保证缓存和数据库一致性?
  5. Redis持久化方式?RDB和AOF的区别?
  6. Redis集群如何实现?
  7. Redis分片机制?
  8. Redis如何实现分布式锁?
  9. RedLock算法?
  10. Redis过期策略?
  11. Redis淘汰策略?
  12. Redis事务了解吗?
  13. Redis主从复制原理?
  14. Redis哨兵模式?
  15. Redis大Key问题如何解决?

💼 项目经历模板(STAR法则) #

Situation(背景)

  • 项目背景是什么?
  • 为什么要做这个项目?
  • 项目规模多大?

Task(任务)

  • 你的职责是什么?
  • 团队有几个人?
  • 你负责哪些模块?

Action(行动)

  • 你具体做了什么?
  • 遇到什么困难?
  • 如何解决的?
  • 用到了哪些技术?

Result(结果)

  • 最终效果如何?(用数据说话)
  • 有什么收获?
  • 对团队有什么帮助?

示例

背景:公司要做一个电商平台的自动化测试,之前都是手工测试,效率很低。

任务:我负责搭建自动化测试框架,覆盖核心业务流程的接口测试。

行动:
1. 调研了pytest、unittest等框架,最终选择pytest
2. 设计了分层架构(数据层、业务层、用例层)
3. 集成到CI/CD流程中
4. 遇到的困难:接口依赖复杂,需要Mock一些第三方接口
5. 解决:使用WireMock搭建Mock服务器

结果:
- 覆盖了80%的核心接口
- 回归测试时间从2天缩短到1小时
- 发现了3个手工测试没发现的Bug
- 提升了团队对自动化的认识

🎯 场景题通用思路 #

测试用例设计维度 #

  1. 功能测试

    • 正常流程
    • 异常流程
    • 边界条件
  2. UI测试

    • 界面显示
    • 交互反馈
    • 样式适配
  3. 性能测试

    • 响应时间
    • 并发处理
    • 资源占用
  4. 安全测试

    • 权限控制
    • 数据加密
    • 防注入攻击
  5. 兼容性测试

    • 浏览器兼容
    • 系统兼容
    • 分辨率适配
  6. 易用性测试

    • 操作便捷性
    • 错误提示
    • 帮助文档

🏆 高频场景题答案模板 #

1. 登录功能测试用例 #

功能测试

  • 正确的用户名密码能否登录成功
  • 错误的用户名或密码是否提示错误
  • 用户名或密码为空是否提示
  • 记住密码功能是否正常
  • 忘记密码功能是否正常
  • 验证码功能是否正常
  • 连续输错密码是否锁定账号

UI测试

  • 输入框提示语是否清晰
  • 密码是否加密显示
  • 按钮状态是否正确(可点击/不可点击)
  • 错误提示是否友好
  • 页面布局是否合理

性能测试

  • 登录响应时间是否在可接受范围内
  • 并发登录是否正常

安全测试

  • 密码是否加密传输
  • 是否防SQL注入
  • 是否有验证码防暴力破解
  • Session管理是否安全

兼容性测试

  • 不同浏览器是否正常
  • 移动端和PC端是否正常

2. 微信朋友圈发布功能 #

功能测试

  • 纯文字发布
  • 文字+图片(1-9张)
  • 文字+视频
  • 添加定位
  • @好友
  • 权限设置(公开、私密、部分可见)
  • 发布后能否看到
  • 能否点赞评论

边界测试

  • 文字最大长度限制
  • 图片数量限制(最多9张)
  • 图片大小限制
  • 视频时长限制
  • 视频大小限制

异常测试

  • 网络异常时能否发布
  • 存储空间不足时提示
  • 图片格式不支持时提示
  • 发布中退出能否继续发布

性能测试

  • 发布速度
  • 图片上传速度
  • 大图片压缩效果

安全测试

  • 权限控制是否生效
  • 敏感内容是否过滤

📝 反问环节推荐问题 #

技术相关 #

  1. 部门主要负责什么业务?
  2. 测试团队的规模和分工?
  3. 技术栈是什么?
  4. 有什么技术挑战?
  5. 自动化测试覆盖率如何?

工作相关 #

  1. 日常工作中测试和开发的比例?
  2. 新人培养机制如何?
  3. 团队氛围如何?
  4. 加班情况如何?
  5. 有健康日吗?

发展相关 #

  1. 测试岗的晋升通道是怎样的?
  2. 有转岗机会吗?
  3. 有技术分享会吗?
  4. 有培训预算吗?

流程相关 #

  1. 后续还有几轮面试?
  2. 大概多久出结果?
  3. 对我的表现有什么建议?

⏰ 时间管理建议 #

面试前(1-2个月) #

  • Week 1-2:刷LeetCode简单题(15道)
  • Week 3-4:刷LeetCode中等题高频(20道)+ 八股文(操作系统、网络)
  • Week 5-6:继续刷中等题 + 八股文(数据库、Redis)
  • Week 7-8:项目经历整理 + 场景题准备 + 模拟面试

面试中 #

  • 自我介绍:2-3分钟
  • 项目介绍:5-10分钟
  • 技术问题:每题3-5分钟
  • 算法题:20-30分钟
  • 反问:3-5分钟

面试后 #

  • 24小时内:整理面试问题,记录不会的知识点
  • 3天内:补充不会的知识点
  • 1周内:跟进面试进度

📊 各公司对比总结 #

公司 面试难度 算法要求 项目深度 加班情况 薪资水平
字节 ⭐⭐⭐⭐⭐ 较多 最高
腾讯 ⭐⭐⭐⭐ 中等 中等 较少
快手 ⭐⭐⭐⭐ 中等 中等
百度 ⭐⭐⭐ 中等 中等 中等 中高
小红书 ⭐⭐⭐⭐ 中等


最后祝大家面试顺利,拿到心仪的Offer! 🎉🎉🎉