字节跳动测试开发1.5w字面经(已入职),附部门直推
个人信息
-
自我介绍
项目(重要)
-
项目中最大的挑战,花费最长时间的项目,比较有成就感的事情
-
项目中印象最深的bug
-
有什么想问的吗
-
适合业务测试还是技术测试
- 为什么选择字节
- 分别用3个词描述自己的优缺点
测试
-
对测试开发的认识,为什么想做测试开发,测试测开的理解
-
测试有哪些方法
-
讲一讲接口测试
-
微信红包的测试用例
-
微信评论功能的测试用例
-
测试一下支付宝付款码,设计测试用例
-
黑盒测试的方法
-
白盒测试的方法
-
软件测试的流程
-
微信聊天发送和接收的测试用例
-
测试一下简易版的微信,只能收发文件,如何测试,要求要全面
-
如何测试弹幕、难点在哪
-
微信单人视频通话设计测试用例
-
微信列表删除操作测试用例
-
打开聊天框,删除聊天记录的测试用例设计
-
测试淘宝购物车的测试案例
-
微信首页搜索功能测试
-
设计一下抖音上下滑动视频的测试用例
-
微信发送图片的功能进行测试
-
设计抖音app用户登录测试
-
中断测试
-
测试在一个场景下,推荐滤镜
-
朋友圈点赞评论测试用例
情景问题
-
如果抖音一个地区的许多用户无法下载视频的原因
-
如果用户收到了银行短信提示已经扣款成功了,但是商家没有收到钱,你觉得会是什么问题
-
输入一个url,请问发生了什么?
-
如何实现一个用户登录功能
-
高并发下减少事务带来的性能消耗?
-
如果一个API接口出现一个不稳定出现的bug,如何去确定?
-
如果提交bug,开发告诉你不存在,如何处理?
-
访问页面加载缓慢的原因以及如何解决
-
如何你和你的领导意见不一致,你会怎么做
-
如果图片上传失败,分析原因
-
针对评论功能,你如何设计接口,主要回答需要传递的参数有哪些?
-
app页面白屏了什么原因
-
全链路压测中,找到了某一个服务器CPU负载率100%,磁盘和内存使用率正常,请问你会怎么去分析可能的原因
-
设计买火车票的系统,输入出发站和到达站,返回所有可能的结果
-
添加购物车请求后发生了什么
-
淘宝用户支付失败的原因
代码题,算法题
-
处理文件a到文件b
a.
李明\t西安交通大学 肖华\t北京邮电大学 胡虎\t西安邮电大学 -
b.
西安交通大学\t李明,胡虎 北京邮电大学\t肖华
-
合并文件a,b 至 文件c
a.
李明\t西安交通大学 肖华\t北京邮电大学 胡虎\t西安邮电大学
b.
西安交通大学\t西安 北京邮电大学\t北京
-
10种排序方法有哪些
-
手写一个快排
-
快排的优缺点:
-
(简单)字符串输出其中最长的连续数字子串
-
LC 88
-
JZ 61
-
LC 410 难
-
JZ 39
-
堆排序的创建 删除 插入
-
求链表中间节点 (快慢双指针)
-
LC 124 (难)
-
迪杰斯特拉算法
-
JZ 48
-
LC 1023
-
LC 26
-
!LC32
Python基础
-
python的内存池机制
-
python数组和列表的区别
-
python你常用哪些包,标准库
-
面向过程和面向对象的语言区别
-
反射
-
python的数据结构
-
dict和list的底层实现
-
python装饰器,作用,用法
-
编译型语言和解释型语言 解释型语言的优点
-
垃圾回收机制
-
GIL锁
-
is和==
-
__new__和__init__区别
-
用python写出多线程,循环打印123
操作系统
-
读写锁,不同点,应用场景
-
线程和进程的区别是什么
-
什么是死锁,死锁的条件
-
如何预防死锁,!避免死锁,死锁发生的检查
-
堆和栈的区别以及存储模式有什么区别
-
内存泄漏和内存溢出
-
多线程和多进程,以及应用场景
-
进程通信方式
-
多线程如何实现的
-
计算机内存管理的方式
-
进程调度方法
-
什么是Linux用户态和内核态
-
进程的状态,进程状态就绪和等待状态的区别是什么
-
虚拟内存是干嘛的
-
线程池
-
线程安全的实现方式
-
进程和线程的上下文切换
-
协程
计算机网络
-
TCP三次握手,四次挥手的过程
-
为什么客户端要在TIME_WAIT状态等待一段时间
-
CLOSING状态
-
如果server端没有收到第三次ack,但是收到了client端发送的数据,server端会怎么处理
-
讲一讲get和post
-
http状态码
-
TCP和UDP
-
一次HTTP请求的过程(输入URL到返回的全过程)
-
http和https
-
无状态和无连接
-
OSI七层模型,各层有哪些协议
-
HTTP协议 请求报文结构
-
TCP如何保证可靠传输,丢包怎么办
-
讲一下滑动窗口
-
TCP三次握手中SYN和ACK包有什么不同,包含什么
-
UDP想要可靠怎么实现 RUDP
-
半连接攻击
-
TCP粘包和拆包
-
cookie和session是什么,为什么要用cookie和session
-
DNS协议和作用
-
DNS的查询方式
-
ARP协议作用、工作方式
-
以太网数据包的大小最大为多少
-
三次握手过程中是否存在安全问题?描述一下存在什么样的安全问题?针对这样的安全问题如何防御?
-
web攻击,CSRF攻击
-
TCP如何进行拥塞控制?拥塞控制如何判断发生拥塞?
-
TCP快重传如何判断丢失?
-
https证书在哪存放
-
长连接和短连接以及他们分别适用的场景
数据库
-
sql语句
-
取一个月内的id分组
-
取一个年级中每个班级年龄最小的同学名字
-
成绩表输出前三名的成绩,后三名呢
-
拷贝A表的数据到B表
-
查询每门科目都大于80分的学生名字
-
筛选出每个小时的记录
-
考察where
-
考察聚合函数
-
where和having的区别
-
一个数据库sql查询重复个数
-
在学生成绩表中查询平均分不及格(低于60)的学生id及平均分
-
查询总成绩最高的人的姓名
-
user表中在一个时间段内登陆三次的用户id
-
limit的用法
-
-
数据库引擎及他们之间的区别
InnoDB
MyISAM
MEMORY:
-
mysql的日志怎么查询
-
(多次)查询速度慢的原因,如何解决
-
数据库的事务是什么?怎么使用
-
主键、外键、索引的各自的含义以及区别
-
事务的特性(ACID),讲一下每个特性的意思
-
索引的类型
-
什么是聚簇索引、什么是非聚簇索引
-
索引的数据结构是什么
-
前缀索引
-
MySQL/MongoDb 端口号
-
数据库有几种表之间的连接形式(左连接,右连接,内连接,完全连接)
-
说说redis中的数据结构和应用场景
-
三大范式
-
数据库隔离等级
-
为什么要用b+树索引而不用hash
Linux
-
常见命令
-
查看进程ps 查看所有进程长格式ps -ef
-
打印当前文件夹文件 ls -al a所有文件 l详细信息
-
软链接 ln -s a target 硬链接 ln
-
创建目录 mkdir
-
修改权限 chmod
-
查看文件:
-
移动文件mv 也可以重命名
-
复制文件cp
-
删除文件 rm -r 递归删除 -f删除只读文件
-
通配符?单个字符,*多个字符,[a-z]字符集
-
grep 正则搜索 显示行号-n 查询个数-c 反选-v
-
查看指定进程 ps -ef | grep pid
-
查看命令历史 history
-
查看磁盘空间df -hl
-
查看文件大小du
-
查找文件 find [目录] 以名字查找-name “h*”以h开头
-
终止一个进程 kill -9 pid
-
-
如何防止新人误操作rm -rf
-
找进程号为199的进程 ls -ef|grep 199
-
某文件中含关键词的行数 grep -c "key" ./file
-
该目录下以.log结尾的文件中包含关键词a但不包含关键词b的行数 grep "a" ./file | grep -cv "b"
智力题
-
一根金条,需要一周每天都发工资,切割两次,请问怎么切割 把金条切分为1/7, 2/7, 4/7,每天找零
-
100个足球队两两比赛角逐出一支冠军队伍,请问至少比赛几次 每场比赛淘汰一只队伍,所以需要99场比赛
-
25匹马5个赛道,求前三名
-
100个豆子,五个囚犯,拿的豆子最多或者最少都要被处死,求谁的生存概率大一点