百度测试开发-面经

一面:

计算机网络:三次四次握手

三次建立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.为什么投百度,是否投其他公司
    有 贵公司能力、红利 能力契合 职业发展规划
全部评论
点赞 回复 分享
发布于 02-14 01:27 广东
哥,你是已经通过入职了吗
点赞 回复 分享
发布于 02-14 10:57 北京
mark一下
点赞 回复 分享
发布于 02-18 15:38 陕西

相关推荐

一面:计算机网络:三次四次握手三次建立tcp连接客户端-》服务端 发送建立连接请求syn 其中包含客户端的初始序列号《- 回复请求 可以连接 syn-ack-》发出连接信号ack  四次挥手断开tcp连接客户端-》服务 发送断开连接请求fin(finish)《-可以断开请求ack《-断开ack-》断开ack操作系统:进程与线程,线程通信,互斥锁,乐观悲观锁进程是资源分配和调度的最小单位,有独立的内存和资源  线程是执行的最小单位  进程由一条甚至多条的线程组成 ,进程的内存和资源被所有线程共享 线程通信 1共享内存(需要同步禁止(互斥锁)来避免竞争关系)2消息传递(使用队列、管道等数据结构实现)3信号量4条件变量 互斥锁保证共享资源的同步机制,确保同一时间只有一个线程可以访问共享内存读写锁读写锁=互斥锁+条件变量当线程持有写锁。。。持有读锁。。。释放写锁。。。释放读锁。。。乐观锁指 假设最好的情况,即每次访问共享资源时不会发生冲突,因此在访问的时候不上锁,通常用在读操作较多的场景,可以减少锁开销,提高并发性能悲观锁指  假设最坏的情况,即每次访问共享资源时候回发生冲突 每次访问资源之前先枷锁 包括互斥锁 读写锁,适用于写操作较多的情况linux命令:用过的linux命令,查看进程psps 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检查数据库是网络层哪一层应用 传输 数据格式化、加密解密、压缩网络 路由数据包 确保从源到目的地的传输 寻址和路由选择物理层 物理介质传输比特流写代码:最长公共前缀和,如何优化时间和空间口述思路:两个链表如何找交点,环形链表怎么处理智力题:三个箱子,苹果,橘子和混合,都贴错,只能打开一次,然后判断是否准确混合 三面:30min1.自我介绍2.项目提问3.如何理解测试开发    1 手动+自动化测试框架的开发      2 核心职责 1自动化测试脚本的编写 ,这些脚本通常使用一些测试框架(如 Selenium、Appium、TestNG、JUnit 等)来执行功能测试、回归测试、性能测试等。2测试框架的开发,已有的市面上测试框架不满足细化需求 、开发测试框架满足定制化需求3测试环境的搭建 选择合适的操作系统、浏览器、数据库等,确保测试在真实或接近真实的生产环境中运行。包括 CI/CD(持续集成/持续交付) 环境的配置,如 Jenkins、GitLab CI 等。    3与开发团队的协作4.为什么投百度,是否投其他公司    有 贵公司能力、红利 能力契合 职业发展规划
查看19道真题和解析
点赞 评论 收藏
分享
评论
5
35
分享

创作者周榜

更多
牛客网
牛客企业服务