百度测试开发-面经
一面:
计算机网络:三次四次握手
三次建立tcp连接
客户端-》服务端 发送建立连接请求syn 其中包含客户端的初始序列号
《- 回复请求 可以连接 syn-ack
-》发出连接信号ack
四次挥手断开tcp连接
客户端-》服务 发送断开连接请求fin(finish)
《-可以断开请求ack
《-断开ack
-》断开ack
操作系统:进程与线程,线程通信,互斥锁,乐观悲观锁
进程是资源分配和调度的最小单位,有独立的内存和资源 线程是执行的最小单位 进程由一条甚至多条的线程组成 ,进程的内存和资源被所有线程共享
线程通信
1共享内存(需要同步禁止(互斥锁)来避免竞争关系)
2消息传递(使用队列、管道等数据结构实现)
3信号量
4条件变量
互斥锁
保证共享资源的同步机制,确保同一时间只有一个线程可以访问共享内存
读写锁
读写锁=互斥锁+条件变量
当线程持有写锁。。。
持有读锁。。。
释放写锁。。。
释放读锁。。。
乐观锁指 假设最好的情况,即每次访问共享资源时不会发生冲突,因此在访问的时候不上锁,通常用在读操作较多的场景,可以减少锁开销,提高并发性能
悲观锁指 假设最坏的情况,即每次访问共享资源时候回发生冲突 每次访问资源之前先枷锁 包括互斥锁 读写锁,适用于写操作较多的情况
linux命令:用过的linux命令,查看进程ps
ps aux:显示所有用户的进程,包括详细信息(如CPU和内存使用情况)。
ps -ef:显示所有进程的完整信息。
ps -e:显示所有进程。
ps -u username:显示指定用户的进程。
数据库sql写一个,模糊查询
SELECT * FROM 表名
WHERE 列名 LIKE '%关键字%';
%关键字%:查询包含“关键字”的所有记录。
关键字%:查询以“关键字”开头的记录。
%关键字:查询以“关键字”结尾的记录。
关键字_:查询以“关键字”开头,后跟一个字符的记录。
关键字%_:查询以“关键字”开头,后跟一个或多个字符的记录
冒泡排序实现原理,复杂度,快排复杂度
快排递归 时间logn 空间nlogn
最有挑战的事情
最自豪的事情
代码:求1-n中,3和5的倍数,并相加
def sum_multiples_of_3_and_5(n):
total_sum = 0
for i in range(1, n + 1):
if i % 3 == 0 or i % 5 == 0:
total_sum += i
return total_sum
能不能实习
课程安排
二面:
自我介绍
浏览器输入baidu.com的详细过程,说完然后继续问能不能详细讲
1 dns将域名-》IP地址 计算机通过IP地址定位和连接其他服务器
2 tcp握手
3-》 通过tcp连接向百度服务器发出https请求 请求的 URL 通常包括:请求方法(如 GET)、请求头(包括浏览器信息、语言、Cookie 等)以及目标资源的路径(如 / 或其他页面)。
3百度使用https协议和客户端进行安全连接 ,处理请求返回html、css、js文件、图片等
4浏览器解析收到的信息并渲染网页
为什么不做开发,而选择测开
1项目经历 爱好
2性格
3职业规划
怎么判断bug是前端还是后端,
1ui不符合(布局、交互、渲染) 前端
2查看控制台,浏览器发起的请求 无返回或者返回信息错误(500、502) 后端
3查看接口 返回数据正确 前端 错误 后端
如果是后端,怎么去定位
1 查看后端日志,包含错误信息 请求参数 响应 -》定位bug
查看应用日志:大多数后端框架(如 Spring Boot、Express、Django 等)都会记录错误信息到日志中,查看日志能帮助你了解错误发生的上下文。
查看数据库日志:如果问题涉及数据库查询或操作,可以查看数据库的查询日志。
2借口测试
检查响应状态码:例如,500 错误表示服务器内部错误,404 错误表示找不到资源。
检查响应数据:确保返回的数据结构、字段值等符合前端的需求。
3检查数据库
是网络层哪一层
应用
传输 数据格式化、加密解密、压缩
网络 路由数据包 确保从源到目的地的传输 寻址和路由选择
物理层 物理介质传输比特流
写代码:最长公共前缀和,如何优化时间和空间
口述思路:两个链表如何找交点,环形链表怎么处理
智力题:三个箱子,苹果,橘子和混合,都贴错,只能打开一次,然后判断是否准确
混合
三面:30min
1.自我介绍
2.项目提问
3.如何理解测试开发
1 手动+自动化测试框架的开发
2 核心职责 1自动化测试脚本的编写 ,这些脚本通常使用一些测试框架(如 Selenium、Appium、TestNG、JUnit 等)来执行功能测试、回归测试、性能测试等。2测试框架的开发,已有的市面上测试框架不满足细化需求 、开发测试框架满足定制化需求3测试环境的搭建 选择合适的操作系统、浏览器、数据库等,确保测试在真实或接近真实的生产环境中运行。包括 CI/CD(持续集成/持续交付) 环境的配置,如 Jenkins、GitLab CI 等。
3与开发团队的协作
4.为什么投百度,是否投其他公司
有 贵公司能力、红利 能力契合 职业发展规划
计算机网络:三次四次握手
三次建立tcp连接
客户端-》服务端 发送建立连接请求syn 其中包含客户端的初始序列号
《- 回复请求 可以连接 syn-ack
-》发出连接信号ack
四次挥手断开tcp连接
客户端-》服务 发送断开连接请求fin(finish)
《-可以断开请求ack
《-断开ack
-》断开ack
操作系统:进程与线程,线程通信,互斥锁,乐观悲观锁
进程是资源分配和调度的最小单位,有独立的内存和资源 线程是执行的最小单位 进程由一条甚至多条的线程组成 ,进程的内存和资源被所有线程共享
线程通信
1共享内存(需要同步禁止(互斥锁)来避免竞争关系)
2消息传递(使用队列、管道等数据结构实现)
3信号量
4条件变量
互斥锁
保证共享资源的同步机制,确保同一时间只有一个线程可以访问共享内存
读写锁
读写锁=互斥锁+条件变量
当线程持有写锁。。。
持有读锁。。。
释放写锁。。。
释放读锁。。。
乐观锁指 假设最好的情况,即每次访问共享资源时不会发生冲突,因此在访问的时候不上锁,通常用在读操作较多的场景,可以减少锁开销,提高并发性能
悲观锁指 假设最坏的情况,即每次访问共享资源时候回发生冲突 每次访问资源之前先枷锁 包括互斥锁 读写锁,适用于写操作较多的情况
linux命令:用过的linux命令,查看进程ps
ps aux:显示所有用户的进程,包括详细信息(如CPU和内存使用情况)。
ps -ef:显示所有进程的完整信息。
ps -e:显示所有进程。
ps -u username:显示指定用户的进程。
数据库sql写一个,模糊查询
SELECT * FROM 表名
WHERE 列名 LIKE '%关键字%';
%关键字%:查询包含“关键字”的所有记录。
关键字%:查询以“关键字”开头的记录。
%关键字:查询以“关键字”结尾的记录。
关键字_:查询以“关键字”开头,后跟一个字符的记录。
关键字%_:查询以“关键字”开头,后跟一个或多个字符的记录
冒泡排序实现原理,复杂度,快排复杂度
快排递归 时间logn 空间nlogn
最有挑战的事情
最自豪的事情
代码:求1-n中,3和5的倍数,并相加
def sum_multiples_of_3_and_5(n):
total_sum = 0
for i in range(1, n + 1):
if i % 3 == 0 or i % 5 == 0:
total_sum += i
return total_sum
能不能实习
课程安排
二面:
自我介绍
浏览器输入baidu.com的详细过程,说完然后继续问能不能详细讲
1 dns将域名-》IP地址 计算机通过IP地址定位和连接其他服务器
2 tcp握手
3-》 通过tcp连接向百度服务器发出https请求 请求的 URL 通常包括:请求方法(如 GET)、请求头(包括浏览器信息、语言、Cookie 等)以及目标资源的路径(如 / 或其他页面)。
3百度使用https协议和客户端进行安全连接 ,处理请求返回html、css、js文件、图片等
4浏览器解析收到的信息并渲染网页
为什么不做开发,而选择测开
1项目经历 爱好
2性格
3职业规划
怎么判断bug是前端还是后端,
1ui不符合(布局、交互、渲染) 前端
2查看控制台,浏览器发起的请求 无返回或者返回信息错误(500、502) 后端
3查看接口 返回数据正确 前端 错误 后端
如果是后端,怎么去定位
1 查看后端日志,包含错误信息 请求参数 响应 -》定位bug
查看应用日志:大多数后端框架(如 Spring Boot、Express、Django 等)都会记录错误信息到日志中,查看日志能帮助你了解错误发生的上下文。
查看数据库日志:如果问题涉及数据库查询或操作,可以查看数据库的查询日志。
2借口测试
检查响应状态码:例如,500 错误表示服务器内部错误,404 错误表示找不到资源。
检查响应数据:确保返回的数据结构、字段值等符合前端的需求。
3检查数据库
是网络层哪一层
应用
传输 数据格式化、加密解密、压缩
网络 路由数据包 确保从源到目的地的传输 寻址和路由选择
物理层 物理介质传输比特流
写代码:最长公共前缀和,如何优化时间和空间
口述思路:两个链表如何找交点,环形链表怎么处理
智力题:三个箱子,苹果,橘子和混合,都贴错,只能打开一次,然后判断是否准确
混合
三面:30min
1.自我介绍
2.项目提问
3.如何理解测试开发
1 手动+自动化测试框架的开发
2 核心职责 1自动化测试脚本的编写 ,这些脚本通常使用一些测试框架(如 Selenium、Appium、TestNG、JUnit 等)来执行功能测试、回归测试、性能测试等。2测试框架的开发,已有的市面上测试框架不满足细化需求 、开发测试框架满足定制化需求3测试环境的搭建 选择合适的操作系统、浏览器、数据库等,确保测试在真实或接近真实的生产环境中运行。包括 CI/CD(持续集成/持续交付) 环境的配置,如 Jenkins、GitLab CI 等。
3与开发团队的协作
4.为什么投百度,是否投其他公司
有 贵公司能力、红利 能力契合 职业发展规划
全部评论
强
哥,你是已经通过入职了吗
mark一下
相关推荐

点赞 评论 收藏
分享

点赞 评论 收藏
分享