字节跳动测试开发面经
面经一:字节跳动测试开发--二面
来源: https://www.nowcoder.com/discuss/351722
- 自我介绍
- 项目介绍
- 重写与重载
- Java集合
- HashMap和Hashtable的区别
- ArrayList和LinkedList的区别
- Map的put方法
- 数据库查找
- 动态规划的题
- 对测开的理解
- 冲突解决办法
面经二:字节跳动头条研发---测试开发一面
来源: https://www.nowcoder.com/discuss/351378
- 自我介绍
- HTTP和HTTPS的区别
- HTTP状态码
- HTTP劫持
- URL相应(响应过程)
- 线程与进程的区别
- 线程间通信方式
- 实现多线程的方式
- 西瓜视频的用例测试
- 兼容性测试(软件、硬件、网络)
- 抖音有哪些需要改进的地方?刷不出来时怎么定位测试?
- DNS
- HTTP和TCP/IP分别在哪一层
- sleep()和wait()方法的区别
- 深拷贝和浅拷贝
- JDK、JRE
- 算法:找出字符串中第一个不重复的字符
面经三:字节测开1-4面(收到意向书)
来源: https://www.nowcoder.com/discuss/304858
一面
- Java多态是什么
- Java内存分区
- varchar、var以及text的区别
- 算法:数组最大值差 a[j]-a[i](j>i)
二面
- String、StringBuffer、StringBuilder的区别
- Collection框架介绍
- 算法:层序打印二叉树
- 算法:字符串"abc"求子集(二进制位标识)
三面
- OSI七层模型
- HTTP、TCP、IP分别在哪一层
- TCP和UDP的区别,为什么TCP是可靠的
- 算法:两个单链表,判断是否相交
- 算法:无序数组排序,奇数在前偶数在后,相对位置不变
- 算法:int数组求子集
四面
- Redis缓存(伪代码)
- SQL:重复城市的表,查哪些城市重复了
- 算法:大数相加(String字符串相加)
- 逻辑题:1000瓶水1瓶有毒,10只小白鼠找出毒水瓶
- 逻辑题:10堆苹果每堆10个,9堆每个50g有一堆40g,称一次找出
面经四:字节跳动抖音测试工程师(1-3面)
来源: https://www.nowcoder.com/discuss/344652
一面
- 项目介绍,细节问题
- 网络七层有哪些,TCP、UDP、ARP在哪一层,解释DNS
- TCP和UDP的特点,什么是无效连接
- Tomcat介绍
- 软件的生命周期,产品的生命周期
- 进程和线程的区别,什么是僵尸进程
- Linux命令:pwd、ps、|、grep(含/不含关键字)、du、df
- 算法:手撕TopK,时间复杂度及优化方案
- 八个球找一个重量是其他1.5倍
- 怎么测试微信的搜索功能
二面
- DNS是啥,浏览器输入域名发生了什么
- 服务器传图片到浏览器用什么协议,怎么渲染
- if(a==1&&a==2&&a==3)什么时候返回true(JS)
- JS中的闭包是啥
- 如果UI和开发消极怠工,怎么办
- 如果开发认为测试出来的问题不是他的问题,怎么办
- 写个单例,什么情况下会用到
- 测试朋友圈发布视频功能
- 如果有一部分用户反馈APP视频加载不出来,从哪些方面定位
- Android Activity的生命周期,哪些情况下会发生crash
- 在一个产品周期中,怎么安排测试工作
- 为什么选择测试,对测试工作的期望
三面
- 项目细节,实习中的工作细节
- 项目中遇到的最难的问题及解决方法
- 小程序开发用到了哪些接口
- 如果要开发一个新小程序要怎么做
- Linux:输出两个文本中的相同内容/不同内容
- 怎么测试小程序的并发性
- 微信红包功能怎么测试
- 算法:实现抢红包随机获取金额的过程
- 逻辑题:五升桶、六升桶得到三升水
- 逻辑题:10个石头,每人每次拿1-2个,轮流拿,最后一个拿的人输,必赢方案
- Java GC(垃圾回收)
- 抽象类和接口的区别
- 线程的实现方式有哪些
高频题目汇总
必问八股
- HashMap vs Hashtable
- ArrayList vs LinkedList
- 重写 vs 重载
- TCP vs UDP
- 进程 vs 线程
- OSI七层模型
- HTTP状态码
- String/StringBuffer/StringBuilder
常考算法
- 字符串第一个不重复字符
- 数组最大差值
- 二叉树层序打印
- TopK
- 大数相加
- 链表相交判断
- 奇偶数排序
常考逻辑题
- 小白鼠试毒问题
- 水桶问题
- 取石子必胜策略
- 称重问题
常考场景题
- 怎么测试微信搜索功能
- 怎么测试微信红包
- 怎么测试朋友圈发布视频
- APP视频加载不出来怎么定位
面经五:字节暑期实习测开(小红书)
来源: 小红书
一、计算机网络 & HTTP 基础
- POST 请求和 GET 请求有什么差异?
- 业务中哪些接口用 GET、哪些用 POST?为什么这么设计?
- TCP 和 UDP 的区别
- HTTP1.1、HTTP2、HTTP3 最本质的区别
- HTTPS 的 TLS 加密、证书校验流程
- TCP 滑动窗口是什么概念?本质解决什么问题?
- 常见 HTTP 状态码
- 如果出现丢包问题,怎么排查?
二、接口测试 & 幂等性
- 黑盒测试的功能点有哪些?功能点背后的接口你知道吗?
- 本质测的是 Web 页面吗?
- 测过哪些接口?每个接口的功能和参数是什么?
- 写操作怎么保证幂等性?如果网络重放、重复请求怎么办?
- 用订单号做唯一标识,高并发下系统怎么设计保证只处理一次?
三、数据库 & 索引
- 数据库里保证唯一的键值标准名字是什么?
- 唯一索引和主键之间的区别是什么?
- 唯一索引的底层原理、数据结构是什么?
- 简单讲一下 B+ 树是什么?
- 为什么 B+ 树适合做唯一索引、做唯一性校验效率高?
- B+ 树具体是怎么做唯一性检查的?插入时怎么发现重复?
四、科研项目相关
- 讲一个做得比较好的项目,说明项目内容、贡献、难点挑战、怎么克服的
- 这个项目的实际价值
- 项目里某个技术的本质
- 优化过程中会遇到局部最优解问题吗?怎么解决?
五、AI 工具使用
- 现在用 AI 会做哪些工作?
- 最近一次用 AI 写代码是为了完成什么目标?prompt 怎么写的?
- 具体是什么问题现象?怎么让 AI 帮你定位 bug?
- 科研大概百分之多少时间花在和 GPT 互动?
- 有没有用 GPT 生成论文思路、研究方向?效果怎么样?
六、测试开发理解
- 对测试开发的理解
- 为什么想面测试开发
- AI 时代下测试开发会发生什么变化
- AI 可能替代很多测试工作,你觉得人不可替代的部分是什么?
七、手撕代码
- 回文
面经六:字节测试开发三面(牛客 171892)
来源: https://www.nowcoder.com/discuss/171892
一面(50min)
- 自我介绍,熟悉什么语言
- 深复制和浅复制区别
- 虚函数和纯虚函数区别
- TCP 三次握手四次挥手
- HTTP 与 HTTPS 区别
- 如何测试用户登录界面
- 编程题:给一个数组 a=[2,-2,3,3,6,-9,7],输出正负交替出现的数组,多的那一类放后面
- 对上面写的函数如何设计测试用例
二面(40min)
- 自我介绍 + 项目介绍
- 聊项目(信息隐藏方向,面试官对 hash 算法感兴趣,问了很多)
- 编程题:给定数组和目标值 k,输出和为 k 的两个数的位置
- 例 a=[2,7,3,5,11] k=9 → 输出 0 1
- 傅里叶变换(通信方向)
- 分析少量联通用户反映刷抖音无法显示的原因
- 计算机网络相关问题
三面(40min)
- 用 C 语言写宏定义条件编译
- 什么时候用宏定义,条件编译?
- 浏览器输入网址到显示信息,经过的过程,用到哪些协议
- DNS 域名查询的过程
- 如何测试抖音点赞功能
- 测试中如何模拟网络环境不好的条件
面经七:字节测试开发实习一二三面(牛客 399257)
来源: https://www.nowcoder.com/discuss/399257
一面(1h+)
- 自我介绍 + 项目介绍
- 对测试开发了解多少
- Java 为什么是跨平台的语言?过程是什么?
- 计算机网络分层结构,每层协议
- 客户端收到服务器消息特别慢,可能原因?
- HTTP 用什么协议传输?DNS 呢?
- 表连接、自然连接、笛卡尔积是什么连接
- 数据库底层原理
- 索引有什么用?索引和 primary key 的关系?什么时候索引不好用?
- 面向对象三个特征
- 多态的底层实现原理
- 关系型数据库 vs 非关系型数据库
- 线程池了解吗?有哪些线程池?
- 实现线程的方法
- 进程的状态和转换
- Java 堆和栈的区别
- 设计模式了解吗?写一个(双安全懒汉)
- 排序算法,哪些稳定,什么是稳定性
- Hash 的原理,HashMap 和 Hashtable 区别
- 编程题:从后往前每 k 个链表翻转,不足 k 个不变
二面(1h)
- 项目介绍
- 了解什么测试方法?分别介绍
- 平时怎么测试自己的项目
- 测试微信朋友圈功能
- HTTP 和 HTTPS 的区别
- 进程间通信方式
- Linux 常用命令
- 数据库增删改查
- SQL:查询学生表中成绩大于80的学生姓名和课程名
- 如何设计测试用例
三面
- 聊项目
- 对测试的理解
- 为什么做测试开发
- 职业规划
面经八:字节测开一二三面+HR面(牛客 587750)
来源: https://ac.nowcoder.com/discuss/587750
一面(1.11,60min)
- 自我介绍
- 看你是科班出身,工作内容有50%是业务可以接受吗?
- C、C++、Python 最熟悉哪个?
- 虚函数、纯虚函数
- C 数组退化
- 面试官手写代码让分析结果
- C 和 C++ 的主要区别
二面
- 自我介绍 + 项目
- TCP 三次握手为什么不能两次?
- UDP 和 TCP 区别
- HTTP 和 HTTPS 区别
- HTTPS 加密过程
- 浏览器输入 URL 后发生什么
- DNS 解析过程
- 如何测试登录功能
- 黑盒测试方法
- 项目中遇到的困难
三面
- 项目深挖
- 对测开的看法
- 如何学习新技术
- 职业规划
面经九:字节测开连续三面(牛客 289856)
来源: https://www.nowcoder.com/discuss/289856
一面(90min)
- 自我介绍 + 实习项目深挖
- 实习内容是什么
- 印象最深的 bug
- 开发的工具怎么做的
- ffmpeg 可以做什么
- HTTP 和 HTTPS 区别
- Java 内存模型
- Java 垃圾回收机制
- Java 抽象类和接口区别
- 浏览器输入 URL 后发生了什么
- 为什么喜欢用 Go,优势在哪
- Go 的锁机制
- 用例设计:微信点赞
- 手撕代码:求数组中出现次数最多且最大的数
二面(60min)
- 自我介绍 + 实习内容
- 实习最大的收获
- 能来实习不
- TCP 三次握手和四次挥手
- TCP 和 UDP 区别
- GET 和 POST 区别
- Go 垃圾回收机制
- Go init 过程
- 用例设计:百度登录功能
- 手撕代码:
- 有序数组查找目标数字的起始和结束位置
- 设计一个工具类,把 POST 请求封装起来供别人使用(Python)
三面
- 实习期间干了什么
- 用例运行的平台,如果让你设计会考虑哪些点
- Go 内存模型
- Go 中 defer 的作用
