当前位置: 首页 > 面试经验 >

快手秋招测试开发岗一面面经

优质
小牛编辑
81浏览
2023-09-06

快手秋招测试开发岗一面面经

首先是自我介绍,然后问了实习和项目,最后问了几道八股和算法题。答案是我面试完自己整理的,仅供参考。

1.介绍一下实习中用的测试工具,用测试工具具体干什么?

Jenkins

Jenkins 是一个用于自动化构建、测试和部署软件项目的开源持续集成(CI)和持续交付(CD)工具。它的目标是简化软件开发生命周期中的重复性任务,提高开发团队的生产力,同时确保软件质量和稳定性。

持续集成和持续交付:Jenkins 可以集成到开发工作流程中,自动执行构建、测试和部署任务。这有助于快速检测和修复代码问题,并确保每次更改都经过自动化测试。

持续集成(Continuous Integration,简称 CI)是软件开发过程中的一种实践和方法,旨在通过频繁、自动化地集成和测试代码,以确保团队的代码库始终保持可靠、稳定和一致。这个概念的核心思想是将代码的变更尽早地集成到主代码库中,以便及早发现和解决潜在的问题,从而提高软件质量、降低开发成本,并加速交付新功能。

CI 系统负责自动化构建(编译)应用程序,并运行自动化测试,包括单元测试、集成测试和功能测试。这有助于及早发现代码中的错误和问题。

2.如何对你的项目测试?

对项目进行测试是确保项目质量和稳定性的重要步骤。测试可以涵盖多个层面,包括单元测试、集成测试、功能测试、性能测试等。

3.什么是稳定性测试和压力测试?

稳定性测试旨在评估系统在持续运行的情况下的稳定性和可靠性。它通常模拟正常使用条件下的负载,检查系统是否能够持续稳定地运行而不崩溃或出现严重错误。

这种类型的测试有助于发现潜在的内存泄漏、资源耗尽、长时间运行后的性能下降等问题。它强调系统的可用性和稳定性

压力测试旨在评估系统在极限负载和异常条件下的性能表现。它模拟系统所能承受的最大负载,并检查系统在这种情况下的响应情况。

压力测试不仅关注系统是否能够处理大量请求和负载,还关注系统在负载超出其设计容量时的表现。这有助于确定系统在高负载情况下是否仍然能够提供合理的性能,或者它会崩溃或出现严重的性能问题。

压力测试的目标是找出系统的瓶颈,以便进行性能优化并改进系统的可扩展性。

4.Java内存区域有什么?每个区域存放什么?

Java将虚拟机分为5大区域,程序计数器,虚拟机栈,本地方法栈,Java堆,方法区。

程序技术器:线程私有的,程序计数器是一块较小的内存空间,可以看作是当前线程所执行的字节码的行号指示器,用于记录当前虚拟机正在执行的线程指令地址。它的生命周期随着线程的创建而创建,随着线程的结束而死亡。

虚拟机栈:线程私有的,它的生命周期和线程相同,随着线程的创建而创建,随着线程的死亡而死亡。栈绝对算的上是 JVM 运行时数据区域的一个核心,除了一些 Native 方法调用是通过本地方法栈实现的(后面会提到),其他所有的 Java 方法调用都是通过栈来实现的。栈由一个个栈帧组成,而每个栈帧中都拥有:局部变量表、操作数栈、动态链接、方法返回地址。

本地方法栈:线程私有的,保存native方法的信息,和虚拟机栈所发挥的作用非常相似,区别是:虚拟机栈为虚拟机执行 Java 方法 (也就是字节码)服务,而本地方法栈则为虚拟机使用到的 Native 方法服务。

堆:Java堆是所有线程共享的一块内存,此内存区域的唯一目的就是存放对象实例,几乎所有的对象实例以及数组都在这里分配内存。Java 堆是垃圾收集器管理的主要区域,因此也被称作 GC 堆(Garbage Collected Heap)。

方法区:存放已被加载的类信息,常量,静态变量,jdk1.8中不存在方法区了,被元数据区替代,原方法区被分为两部分:1.加载的类信息 2.运行时常量池。

5.说一下常见的协议,都在哪层?

OSI七层模型:物理层,数据链路层,网络层,传输层,会话层,表示层,应用层。

数据链路层:

MAC(介质访问控制),LLC(逻辑链路控制)MAC协议和LLC协议共同工作,以确保数据帧的可靠传输。MAC协议处理物理层和数据链路层之间的物理访问问题,而LLC协议则在数据链路层和网络层之间提供逻辑控制功能。这两个协议一起协调和管理数据链路层的操作,以确保网络通信的可靠性和正确性。

网络层:

IP(网际协议),ARP(Address Resolution Protocol,地址解析协议)用于将IP地址映射到MAC地址。

RIP(Routing Information Protocol,路由信息协议):一种内部网关协议(Interior Gateway Protocol,IGP),也是一种动态路由协议,基于距离向量算法,使用固定的跳数作为度量标准,选择跳数最少的路径作为最佳路径。

BGP(Border Gateway Protocol,边界网关协议):一种用来在路由选择域之间交换网络层可达性信息(Network Layer Reachability Information,NLRI)的路由选择协议,具有高度的灵活性和可扩展性。

传输层:

TCP(Transmission Control Protocol,传输控制协议 ):提供 面向连接 的,可靠 的数据传输服务。

UDP(User Datagram Protocol,用户数据协议):提供 无连接 的,尽最大努力 的数据传输服务(不保证数据传输的可靠性),简单高效。

应用层:

DNS(Domain Name System,域名管理系统): 基于 UDP 协议,用于解决域名和 IP 地址的映射问题。

HTTP(Hypertext Transfer Protocol,超文本传输协议):基于 TCP 协议,是一种用于传输超文本和多媒体内容的协议,主要是为 Web 浏览器与 Web 服务器之间的通信而设计的。当我们使用浏览器浏览网页的时候,我们网页就是通过 HTTP 请求进行加载的

6.算法题:用两个栈实现队列

#24届软开秋招面试经验大赏#

#24届软开秋招面试经验大赏#
 类似资料: