快手测开面试题总结合并版(按分类标注序号+出现频率)
一、岗位认知与测试基础【共22题】
- 对测试开发岗位的理解【频率:2】
- 自动化测试的价值【频率:2】
- 如何保证代码质量【频率:2】
- CICD在测试中的作用【频率:2】
- 测试的分类【频率:2】
- 测试用例是什么,有哪些方法论【频率:2】
- 白盒测试和黑盒测试的区别【频率:2】
- 如何保证测试覆盖率【频率:2】
- AI生成测试用例时,如何提高复用率【频率:2】
- AI生成测试用例覆盖率不全怎么办【频率:2】
- 为什么测试、预发、线上三套环境都要测一遍【频率:2】
- 不同阶段测试的工作内容【频率:2】
- 测试工程师应该掌握什么技能【频率:2】
- 测试过程中的痛点及解决思路【频率:2】
- 如何设计测试用例(含用例设计的核心流程、方法论落地)【频率:2】
- 设计测试用例时,如何考虑异常场景(如边界值、异常输入、环境异常、依赖异常等)【频率:2】
- 测开的核心职责是什么?关注代码的哪些方面(如可读性、可测性、性能、安全性)【频率:1】
- 开会时,如何从测开角度考虑需求设计?如何提出意见并与研发、产品沟通【频率:1】
- 软件测试的完整流程(从需求分析到上线后验证)【频率:1】
- 测试和研发的比例通常是多少?如何平衡两者的协作效率【频率:1】
- 如何理解软件测试的核心价值【频率:1】
- 测试时如何定位问题是前端还是后端(如通过接口调用、日志分析、抓包对比)【频率:1】
二、编程语言与基础(Java/Python/C++)【共51题】
- JVM内存结构【频率:2】
- 垃圾回收算法有哪些(及常用垃圾回收器)【频率:2】
- Java中的锁有哪些(含乐观锁、悲观锁区别)【频率:2】
- synchronized锁升级过程【频率:2】
- Java线程的生命周期【频率:2】
- 线程间同步机制有几种【频率:2】
- synchronized关键字修饰静态方法和实例方法的区别【频率:2】
- 线程池的核心参数、工作流程及拒绝策略【频率:2】
- Java异常处理机制,Exception和Error的区别【频率:2】
- Java集合的结构(含HashMap原理、线程不安全原因;ConcurrentHashMap原理)【频率:2】
- 从虚拟机层面分析,加了volatile与未加volatile的属性区别【频率:2】
- 多进程访问资源如何避免死锁,死锁发生场景及解除方法【频率:2】
- 进程和线程的区别;什么时候选择多进程,什么时候选择多线程【频率:2】
- “进程是独立的内存空间、线程是共享的”如何理解【频率:2】
- 了解哪些设计模式(含单例模式手写、策略模式定义及优点)【频率:2】
- AOP、IOC的概念【频率:2】
- Python的多线程机制(GIL锁对多线程的影响)【频率:1】
- 类的构造器是什么?如何重写构造器【频率:1】
- 类加载子系统的实现过程(双亲委派机制)【频率:1】
- 多态的理解及优化方式【频率:1】
- Java/Python的数据结构对比(如列表vs数组、字典vsHashMap)【频率:1】
- 深拷贝与浅拷贝的区别及使用场景【频率:1】
- Java常见异常(如NullPointerException、IndexOutOfBoundsException)【频率:1】
- 创建线程的方式有哪些(继承Thread类、实现Runnable接口、Callable+Future)【频率:1】
- Synchronized与ReentrantLock的区别(功能、性能、使用场景)【频率:1】
- 面向对象的三大特性(封装、继承、多态)及应用【频率:1】
- 抽象类和接口的区别(方法实现、继承限制、使用场景)【频率:1】
- 若多个子类继承同一抽象类且实现同一接口,调用接口方法时如何确定具体子类【频率:1】
- C++常用数据结构(如vector、map、set)及特性【频率:1】
- Java的数据结构【频率:1】(原版本1中“java的数据结构,python的数据结构”合并至此)
- Python装饰器【频率:1】
- 类加载双亲委派机制【频率:1】(原版本2中“说一下类加载双亲委派机制”细化)
三、计算机网络【共17题】
- 用户输入URL到页面加载完成的完整过程【频率:2】
- DNS在URL解析中的作用,域名解析到IP的具体流程【频率:2】
- TCP/IP四层模型(或OSI七层模型)的内容及各层功能【频率:2】
- TCP如何保证可靠传输【频率:2】
- TCP三次握手、四次挥手的过程【频率:2】
- TCP三次握手建立连接后,客户端突然离线,服务端如何感知【频率:2】
- TCP和UDP的区别【频率:2】
- HTTP和RPC的区别;RPC的性能是否比HTTP高【频率:2】
- RPC接口有哪些调试与分析方式【频率:2】
- HTTP状态码分类(2xx、3xx、4xx、5xx分别代表的含义)【频率:2】
- 代理服务器的作用(如缓存、负载均衡、安全防护)【频率:1】
- HTTP常见请求头有哪些(如Content-Type、Cookie、Authorization)【频率:1】
- TCP滑动窗口的作用及窗口大小的决定因素【频率:1】
- 从controller到形成HTTP接口的完整过程(路由映射、参数解析、响应处理)【频率:1】
- 客户端获取含特殊字符的服务端信息时,GET与POST的处理方式区别【频率:1】
- HTTPS的安全性体现在哪里(TLS加密、证书验证)【频率:1】
- Charles和Postman如何联动(如Charles抓包后用Postman复现请求)【频率:1】
- TCP和UDP的区别;快手直播更适用于哪种协议(为什么)【频率:1】(原版本2中细化场景)
四、数据库【共26题】
- MySQL的索引类型有哪些【频率:2】
- 数据库索引什么时候建立,该选择什么字段建立索引【频率:2】
- 慢SQL如何排查【频率:2】
- 用了索引还是很慢,如何处理【频率:2】
- MySQL底层数据结构及选择原因【频率:2】
- 编写SQL:查询用户中薪资大于平均薪资的用户【频率:2】
- 编写涉及Class表(class_id, class_name)和Student表(student_id, class_id)的表连接SQL【频率:2】
- 数据库事务的四大特性(ACID:原子性、一致性、隔离性、持久性)【频率:2】
- 数据库事务的隔离级别(读未提交、读已提交、可重复读、串行化)【频率:2】
- 数据库中的幻读问题(定义、产生原因、解决方式如InnoDB的间隙锁)【频率:2】
- MySQL常见的存储引擎(InnoDB、MyISAM的区别)【频率:2】
- B+树的核心特性(适合范围查询、叶子节点相连等)【频率:2】
- 索引的优劣(优点:加速查询;缺点:占用空间、降低写性能)【频率:2】
- 学生成绩表操作(如查询每个班级最高成绩、排名第二的学生姓名)【频率:1】
- 查找对应多条userid的docmentid(需分组或关联查询)【频率:1】
- 数据库三大范式(1NF:原子性;2NF:消除部分依赖;3NF:消除传递依赖)【频率:1】
- MyBatis Plus分页原理及背后执行的SQL(limit关键字的使用)【频率:1】
- 并发请求时,MySQL如何保证事务的隔离性(锁机制、MVCC)【频率:1】
- MySQL分库分表的场景及实现方式(水平分表、垂直分库)【频率:1】
- 查找重复的emailName(用GROUP BY + HAVING)【频率:1】
- 计算平均成绩的SQL(AVG()函数)【频率:1】
- 学生表abc(id, name, score)查询成绩排名第二的学生姓名【频率:1】
- 数据库各种连接(内连接、左连接、右连接)【频率:1】
- 查找总分最高的学生姓名和id【频率:1】
- 取出表中语文成绩排名前10的学生姓名【频率:1】
- 数据库锁(多线程锁、MySQL锁)【频率:1】
五、Linux与工具【共13题】
- Linux中如何查询日志(tail -f、grep、cat等指令及场景)【频率:2】
- Linux中设置文件对所有用户可读的命令(chmod a+r 或 chmod 444)【频率:2】
- Linux常用命令及具体应用场景(文件操作、进程管理、网络诊断)【频率:2】
- 查看进程ID的命令(ps -ef | grep 进程名)【频率:1】
- 将一个文件内容追加到另一个文件的命令(cat file1 >> file2)【频率:1】
- 文件重命名命令(mv 旧文件名 新文件名)【频率:1】
- 在文件中查找指定字符串的命令(grep “字符串” 文件名)【频率:1】
- 查看系统内占用CPU前五的进程命令(top 或 ps -aux --sort=-%cpu | head -n 6)【频率:1】
- 杀掉所有名称包含“abc”的进程命令(pkill “abc” 或 kill -9 $(ps -ef | grep “abc” | awk ‘{print $2}’))【频率:1】
- 超大文件查看指定行数的方法(sed -n “行号p” 文件名 或 head/tail结合)【频率:1】
- 查看文件倒数四行并过滤关键字的命令(tail -n 4 文件名 | grep “关键字”)【频率:1】
- 查看端口占用情况的命令(netstat -tulpn | grep 端口号 或 lsof -i:端口号)【频率:1】
- Git拉取远程分支并关联的命令(git clone 仓库地址;git checkout -b 本地分支名 origin/远程分支名)【频率:1】
六、算法手撕【共36题】
- 三数之和【频率:2】
- 二分查找【频率:2】
- 区间划分【频率:2】
- 合并有序数组【频率:2】
- 最长无重复字符子串【频率:2】
- 括号排列(合法括号组合)【频率:2】
- 有效的括号【频率:2】
- 最长回文子串(含思路讲解)【频率:2】
- 最长递增子序列【频率:2】
- 反转链表【频率:2】
- 数组模拟队列【频率:2】
- 等差数列找缺失数(首项1、公差1)【频率:2】
- 字符串倒序输出(去除空格)【频率:2】
- 比较版本号【频率:2】
- 搜索二维矩阵(二分查找及其他方法)【频率:1】
- 找出所有回文子串【频率:1】
- 最长公共子序列(动态规划)【频率:1】
- 字符串转数字(atoi函数实现)【频率:1】
- 两个数组的交集(元素唯一)【频率:1】
- 数组中找(arr[i]-1)*(arr[j]-1)的最大值【频率:1】
- 螺旋数组(按螺旋顺序遍历二维数组)【频率:1】
- 数组最长连续子数组长度【频率:1】
- 统计文件中字符串出现次数及最多的字符串和次数【频率:1】
- 堆排序【频率:1】
- 回文字符串判断【频率:1】
- 删除无效括号(Hard)【频率:1】
- 盛水最多的容器【频率:1】
- 数字翻译成字符串的可能数(动态规划)【频率:1】
- 获取JSON的key(递归或迭代解析)【频率:1】
- 找不重复子串的位置【频率:1】
- 链表删除指定节点【频率:1】
- 字符串的全排列(回溯+去重)【频率:1】
- 字符数组反转【频率:1】
- 词典中最长的单词(LeetCode 720)【频率:1】
- 二维数组中的查找【频率:1】
- 验证回文串【频率:1】
- 合并K个链表【频率:1】
七、测试用例设计【共19题】
- 为“最长回文子串”算法设计测试用例【频率:2】
- 为“最长递增子序列”算法设计测试用例【频率:2】
- 为“合并有序数组”算法设计测试用例【频率:2】
- 抖音场景:进入后默认是商场页面,退出回到推荐视频【频率:2】
- 微信登录场景:扫码、手机号、账号密码登录【频率:2】
- 观众在直播间给主播送礼【频率:2】
- 微信红包场景【频率:2】
- 为“等差数列找去掉的数”算法设计测试用例【频率:2】
- 购物车场景【频率:2】
- 微信发朋友圈的整个过程【频率:1】
- 面试界面的输入窗口【频率:1】
- 电商直播间功能【频率:1】
- 百度页面(首页功能)【频率:1】
- 笔(物理产品)的测试用例【频率:1】
- 朋友圈点赞功能【频率:1】
- 聊天窗口发图片【频率:1】
- 微信好友发送图片【频率:1】
- 订单支付流程(含二次支付处理)【频率:1】
- 短视频平台的评论功能【频率:1】
- 登录页面(含账号密码、验证码、记住密码等)【频率:1】
八、实习与项目【共32题】
- 介绍实习经历(背景、具体工作、产出、迭代情况)【频率:2】
- 实习中印象最深的Bug(原因、解决过程)【频率:2】
- 实习中遇到的困难及如何解决【频率:2】
- 实习的收获、高光时刻【频率:2】
- 实习中Python的应用场景【频率:2】
- 实习项目中自动化测试相关:UI自动化、接口自动化、Playwright使用【频率:2】
- 实习项目中mock的实现原理【频率:2】
- 实习项目中AI相关:大模型应用、prompt编写【频率:2】
- 实习项目中不同设备如何定位元素【频率:2】
- 实习项目中AI生成测试用例的效果【频率:2】
- 需求联调流程(与前端、客户端协作)【频率:2】
- 实习项目的设计思路及优化点【频率:1】
- 从需求到产品上线的全流程(含测试介入节点)【频率:1】
- 印象深刻的线上问题及处理过程【频率:1】
- 自动化框架的设计及稳定性提升(UI和接口)【频率:1】
- 接口自动化的参数化和动态参数传递实现【频率:1】
- 项目中密码的加密和存储方式(如加盐哈希)【频率:1】
- 项目中数据库表设计及测试用例覆盖【频率:1】
- 项目中使用阿里云OSS的实现及优化(安全性、性能)【频率:1】
- 调度中台的需求实现方案【频率:1】
- 防止超卖的技术实现(如分布式锁、库存预扣减)【频率:1】
- 扫码登录的实现原理(二维码生成、状态验证、会话建立)【频率:1】
- Nginx部署失败的排查步骤(日志分析、配置检查、端口占用)【频率:1】
- 实习期间功能测试的流程(用例编写、执行、Bug跟踪、回归)【频率:1】
- 实习项目中集成的AI效果【频率:1】
- 实习项目中自动化平台架构【频率:1】
- 实习项目中大模型异步场景处理【频率:1】
- 实习项目中学习机发版流程及发版文件格式【频率:1】
- Charles修改请求参数的操作【频率:1】
- JMeter测试时的参数设置【频率:1】
- JMeter并发请求设置【频率:1】
- 如何对消息队列进行自动化测试【频率:1】
- 研究生深度学习项目+竞赛(数据集、测试用例、规模、扩展)【频率:1】
- 项目中Redis的使用场景【频率:1】
九、场景题与技术场景【共24题】
- 代码缺陷修改:字符串用枚举、金额用BigDecimal、if-else用策略模式【频率:2】
- 视频通话延迟测试:如何获取精准延迟数据【频率:2】
- 实现消息队列需注意的点;如何保证消息不重复消费【频率:2】
- 分布式锁的实现原理【频率:2】
- Redis的九种数据结构及使用场景【频率:2】
- 消息队列和定时任务的关注指标;LED含义【频率:2】
- AI帮助测试工具开发的方向【频率:2】
- 超多数(一亿量级)中找到最大的10个(如堆排序、分治)【频率:1】
- 10L、7L、3L容器分成两个5L(逻辑推理)【频率:1】
- 拼手气红包金额分配方案(避免极端值,如均值±浮动)【频率:1】
- 快手商城购物车页面渲染时间的精确计算(时间戳对比、性能工具)【频率:1】
- 缓存击穿的定义及处理方式(互斥锁、热点数据永不过期)【频率:1】
- Redis查看key剩余过期时间的命令(TTL key)【频率:1】
- 限流的实现方式(令牌桶、漏桶算法)及令牌桶原理【频率:1】
- CPU占用异常的定位步骤(top命令、线程栈分析、代码 profiling)【频率:1】
- 内存溢出和内存泄露的常见场景(如对象未释放、大对象创建)【频率:1】
- 漏测的Bug(高并发或时序原因)是否为测试职责及解决【频率:1】
- 与开发意见分歧的处理方式(数据佐证、场景复现、评审沟通)【频率:1】
- 订单二次支付的处理逻辑(幂等性设计、状态校验、退款机制)【频率:1】
- 与支付平台的消息传递方式(同步vs异步,如异步+回调确保可靠性)【频率:1】
- Redis穿透、击穿、雪崩的定义及解决方式【频率:1】
- 如何保证线程安全【频率:1】
- 两个文件A、B关联字段合并到C文件(内存不足解决方案)【频率:1】
- 为什么女生要学计算机(压力测试类场景题)【频率:1】
十、其他【共30题】
- 目前的offer情况、面试情况【频率:2】
- 什么时候回学校(毕业时间、可实习时长)【频率:2】
- 是否要求提前实习(是否强制)【频率:2】
- 职业规划【频率:2】
- 为什么投递测开岗位(或为什么选择测试工作)【频率:2】
- 部门业务方向(商场、电商、商业化、基础架构等)【频率:2】
- 版本迭代频率、组织人员架构【频率:2】
- 面试流程:几轮技术面,间隔时间【频率:2】
- 在校研究方向【频率:2】
- 自我介绍(背景、技能、经历、意向)【频率:2】
- 希望在实习中学到的内容(技术、业务、协作)【频率:2】
- 个人情况(居住地、可实习时长、职业偏好)【频率:2】
- toB和toC业务的区别(用户群体、需求特点、测试侧重)【频率:1】
- 为什么没留在实习公司【频率:1】
- 北京和杭州的工作地点倾向【频率:1】
- 如何处理同事关系(沟通技巧、换位思考)【频率:1】
- 有压力时如何调整(如拆解任务、求助同事、时间管理)【频率:1】
- 平时如何学习新技术(文档、开源项目、实践项目)【频率:1】
- 大学最有挑战性的事情及收获【频率:1】
- 拿到offer后如何提升自己(技术深耕、业务理解)【频率:1】
- 实习体验及感悟【频率:1】
- 为什么离开上一家公司(职业发展、业务匹配度)【频率:1】
- 个人优势(技术能力、沟通能力、抗压能力等)【频率:1】
- 第一次实习为什么选择那家公司【频率:1】
- 实习时长【频率:1】
- 目前有没有offer【频率:1】
- 拿到offer后从哪些方面提升自己【频率:1】
- 对快手业务的理解(如电商、直播)【频率:1】
- 职业偏好(如技术方向、业务领域)【频率:1】
- 智力题(如超多数找Top10、容器分水)【频率:1】
说明
- 【频率:2】:题目在两个原始汇总版本中均出现
- 【频率:1】:题目仅在其中一个原始汇总版本中出现
- 合并原则:表述核心含义一致的题目统一去重,细化场景题(如“TCP和UDP区别”与“TCP和UDP区别+快手直播场景”)均保留并标注频率