字节跳动—测试开发实习生-广告系统面经
一面:
Tcp和udp的区别
网络传输协议
TCP 安全 三次四次 传输慢 顺序到达 有错误检测 适用于敏感数据传输 、高可靠性
UDP 传输快 丢包率高 安全性不高 不保证顺序 适用于不敏感的信息传播、实时性
输入一个抖音.com,ip地址解析失败是什么原因
域名错误 本地dns无法解析域名 网络连接问题 防火墙阻止dns请求 地区限制(可使用vpn)
Dns解析的详细过程
域名-》IP地址
1 浏览器检查本地是否缓存了对应的ip地址
2如果没有 浏览器检查本地hosts文件和dns缓存是否有ip地址
3上述缓存都没有的情况下 dns开始查询
4dns首先查询根域名-》顶级域-》权威域名服务器
5权威域名服务器返回IP地址给dns 浏览器获得ip地址后 发出https请求 建立连接 加载页面
、
操作系统问了复制和粘贴的实现
操作系统管理剪贴板时,通常会使用内存缓冲区。每当执行复制或剪切操作时,剪贴板会在内存中为数据分配空间。数据可以以不同的格式存在(例如文本、图像、文件路径等)。在粘贴时,系统会根据数据的格式将其传递给目标应用。
算法题:不同路径
class Solution:
def uniquePathsWithObstacles(self, obstacleGrid: List[List[int]]) -> int:
# dp[i][j] 00-ij的路径数量
# dp[i][j] = dp[i-1][j] + dp[i][j-1]
m,n=len(obstacleGrid),len(obstacleGrid[0])
# 特殊情况
# 初始化dp
# 填充dp
if obstacleGrid[0][0]==1 or obstacleGrid[m-1][n-1]==1:
return 0
dp=[[0]*n for _ in range(m)]
dp[0][0]=1
for i in range(1,m):
if obstacleGrid[i][0]==0:
dp[i][0]=dp[i-1][0]
for j in range(1,n):
if obstacleGrid[0][j]==0:
dp[0][j]=dp[0][j-1]
for i in range(1,m):
for j in range(1,n):
if obstacleGrid[i][j]==0:
dp[i][j]=dp[i-1][j]+dp[i][j-1]
return dp[m-1][n-1]
提问:问面试官负责什么工作内容,什么时候出结果
二面:(40min)2022.3.7
简单聊了一下实习,问我实习是不是自己找的,有没有做过测试开发相关的工作
端口查询命令netstategrep
查找文件命令find
1. 查找端口的命令
在操作系统中,可以使用以下命令来查询和管理端口。
Linux/Mac 系统:
- 查看某个端口是否被占用(netstat):
netstat -tuln | grep <端口号>
- 这条命令可以查看正在监听的端口,-t 表示显示 TCP 连接,-u 表示显示 UDP 连接,-l 显示监听的端口,-n 显示数字格式的 IP 地址和端口。
- 查看某个端口的占用情况(lsof):
lsof -i :<端口号>
- 该命令可以显示指定端口被哪个进程占用。
- 查看端口占用进程及 PID(ss):
ss -tuln | grep <端口号>
- ss 是比 netstat 更快速的替代工具,显示网络连接信息。
2. 查找文件的命令
Linux/Mac 系统:
- 查找指定文件(find):find 命令可以根据指定的路径和文件名来查找文件。可以使用通配符(如 *)来进行模糊查询。
- 查找文件包含的内容(grep):grep 命令可以查找文件中的内容,-r 表示递归搜索。
- 查找文件的详细信息(locate):locate 使用系统索引查找文件,比 find 更加快速(需要事先更新数据库,通常是通过 updatedb)。
- 查找文件的类型(file):file 命令会显示文件的类型,如文本文件、二进制文件等。
算法题:气象(要求两种解法,第二种要求O(n))
有没有遇到什么挫折,怎么解决的
能实习多久
然后闲扯
提问:测试开发需要提高哪里能力
问题定位能力(测试) 逻辑思考的全面性、细致性(测试 开发代码)
三面(50min)2022.3.17
1自我介绍
2为什么做测试开发
3你做测试开发有什么优势
4仔细介绍实习和研究生的两个项目,我的主要贡献是什么
5代码:反转链表
如果是环形链表,会发生什么问题,会输出什么
6测试用例:微信朋友圈测试用例
功能 点赞刷新评论发表删除好友限制 UI 性能 响应时间 并发操作 兼容 不同机型 pc 安全 网络攻击 敏感pyq识别处理