热乎的面经——踏石留印

news2024/12/23 9:03:04

请添加图片描述

⭐️前言⭐️

本篇文章记录博主面试北京某公司所记录的面经,希望能给各位带来帮助。

🍉欢迎点赞 👍 收藏留言评论 📝私信必回哟😁

🍉博主将持续更新学习记录收获,友友们有任何问题可以在评论区留言

🍉博客中涉及源码及博主日常练习代码均已上传GitHub


请添加图片描述

📍内容导读📍

  • 🍅学了这么多开发知识,为什么选择走测试
  • 🍅测试的流程
  • 🍅在选取测试用例之前,测试人员需要做什么
  • 🍅测试计划什么时候做?都有哪些东西
  • 🍅提bug开发不认可
  • 🍅在测试的时候测试环境没有问题,结果上了线之后出现的问题,这个时候你要怎么做
  • 🍅一套测试用例写到什么程度才算完整
  • 🍅等价类和边界值方法的运用
  • 🍅A、B两个接口,如何实现接口之间的参数传递
  • 🍅什么是多态
  • 🍅什么是GC
  • 🍅堆内存和栈内存的区别
  • 🍅HTTP和HTTPS的区别

🍅学了这么多开发知识,为什么选择走测试

首先,个人对软件测试是比较感兴趣的,我喜欢在软件中发现错误、解决问题和提高软件质量;其次,软件测试需要的技能,比如测试计划、测试执行、测试自动化等等,我在这些技能方面比开发方面更有天赋;最后,软件测试岗位需要的一些特质和能力是比较契合我的,比如说沟通能力、耐心和细心等方面。

🍅测试的流程

一般包括以下步骤:
1、需求分析
根据软件需求分析文档,确定测试范围和重点,作为测试计划的基本依据
2、测试计划
软件测试贯穿软件的整个生命周期,根据需求分析结果来制定测试计划。
3、测试设计
根据测试计划设计测试用例,以保证对软件的功能、性能、界面、兼容性、易用性、安全性等各个方面进行全方面测试。
4、测试执行
参考测试用例来进行测试,记录测试结果,包括缺陷、异常、问题等。
5、测试报告
根据测试结果,编写测试报告。
6、测试评估
根据测试结果和测试报告,评估测试效果和质量,总结经验教训,为下一轮测试提供参考和改进建议。

🍅在选取测试用例之前,测试人员需要做什么

1、理解需求:了解软件的功能和业务流程。
2、制定测试策略:确定测试目标、测试环境、测试方法、测试数据、测试工具等。
3、分析风险:分析软件的潜在风险,并制定相应的测试计划和测试用例。
4、选择测试用例:根据测试策略和风险分析结果,选择适当的测试用例来覆盖软件的各个功能和业务流程。
5、编写测试用例:编写详细的测试用例,描述测试步骤、测试数据、预期结果等。

🍅测试计划什么时候做?都有哪些东西

测试计划需要在测试活动开始之前制定,通常包含以下内容:
1、测试目标:描述测试的总体目标,例如发现软件的缺陷、评估软件性能、验证软件的符合性等。
2、测试范围:描述测试的覆盖范围,包括测试的软件版本,功能模块,业务流程等。
3、测试时间:描述测试的时间安排,包括测试的开始时间、结束时间、测试周期等。
4、测试方法:描述测试的具体方法,例如手动测试、自动化测试、性能测试、安全测试等。
5、测试用例:描述测试用例的编写、管理和执行方式。
6、测试报告:描述测试结果的报告方式、格式和内容。

🍅提bug开发不认可

● 1.首先反思自己是不是bug描述的不够清楚
● 2.bug等级要有理有据
● 3.合理友好的沟通,站在用户的角度反问:如果你是用户,能够接受这样的体验吗
● 4.不仅能够提出问题,最好能够给出解决方案。
● 5.组织bug评审
邀请代表参加bug评审:产品代表、开发代表、测试代表,进行以下工作:
1)如何解决bug?
2)如何预防类似的bug?

🍅在测试的时候测试环境没有问题,结果上了线之后出现的问题,这个时候你要怎么做

1、收集问题信息:尽快了解问题的具体情况,包括问题的现象、发生的时间、影响的范围、重现的步骤等。
2、搜集日志和数据:搜集相关的日志和数据,以了解问题的根本原因。
3、分析问题原因:包括软件的设计、实现、集成、配置等方面,以确定问题的根本原因。
4、制定解决方案:制定相应的解决方案,包括修复缺陷、回滚版本、暂停服务等等。
5、实施解决方案:尽快实施相应的解决方案,以缩短问题的持续时间和减少影响范围。
6、验证解决方案:验证解决方案的有效性和稳定性,以确保问题已经得到解决,并且不会再次出现。

🍅一套测试用例写到什么程度才算完整

是否完整看的是对项目的测试覆盖率,我通常从功能、性能、界面、兼容性、易用性、安全性方面来考虑。

🍅等价类和边界值方法的运用

针对项目的一个点讲述了一下。

🍅A、B两个接口,如何实现接口之间的参数传递

1、GET请求的URL参数传递,接收参数的接口可以通过解析URL来获取传递的参数。
2、POST、PUT请求的请求体body传递,接收参数的接口可以通过解析请求体来获取传递的参数。
3、Cookie传递:将参数作为Cookie的值进行传递,接收参数的接口可以通过解析Cookie来获取传递的参数。
4、Session传递:将参数存储在Session中,由一个接口存储参数,另一个接口从Session中获取参数。
5、数据库存储:由一个接口将参数存储在数据库中,另一个接口从数据库中获取参数。

🍅什么是多态

多态是指一个对象可以表现出多种形态,在Java中,多态可以通过继承和接口实现。
主要在向上转型和动态绑定上体现

向上转型:父类引用指向子类对象
动态绑定:调用类的方法,究竟执行的是父类的方法还是子类的方法,要看这个引用指向的是父类对象还是子类对象,这个过程是运行时决定的,因此称为动态绑定。

🍅什么是GC

GC是指垃圾回收算法,有以下几种:
标记-清除算法:
标记就是可达性分析的过程,清除就是直接释放内存,但是被释放的内存是离散的,在需要申请内存时,并不能提供连续的内存,这将非常影响程序的执行。

复制算法:(为了解决内存碎片,引入复制算法)
把内存分为两部分,直接把不是垃圾的,拷贝到另一半,然后将原来的空间整体释放掉。
存在的问题:
● 内存空间利用率低
● 如果要保留的对象多,要释放的对象少,此时复制的开销很大

标记-整理算法:(对复制算法的改进)
具体的实现类似于顺序表中删除中间元素的操作(这个方法虽然空间利用率提高了,但是仍未解决复制/搬运元素开销大的问题)

分代回收算法:(多种方法的结合实现,JVM中实际应用的回收算法)
针对对象进行分类(根据对象的“年龄”分类),一个对象经历过一轮GC扫描,就认为是“长了一岁”,针对不同年龄的对象,采取不同的方案,这就是分代回收

在内存中划分出如下区域:
在这里插入图片描述

1、刚创建出来的对象,放在伊甸区
2、如果伊甸区对象经过一轮GC扫描,就会被拷贝到幸存区(应用了复制算法)
3、在后续的几轮GC中,幸存区的对象就在两个幸存区之间来回拷贝(复制算法),每一轮都会淘汰掉一波幸存者
4、在持续若干轮后,对象进入老年代,老年代中的对象比较老,也是继续存活的可能性大的,因此在老年代的GC频率大大低于新生代,所以在老年代中使用标记-清除算法或标记-整理算法的方式来进行回收。

🍅堆内存和栈内存的区别

1、分配方式:
堆内存是由程序员手动申请和释放的,而栈内存是由编译器自动分配和释放的。
2、管理机制:
堆内存的管理机制是动态分配,程序员需要手动申请和释放内存,而栈内存的管理机制是静态分配,编译器自动管理内存。
3、存储内容:
堆内存存储的是对象、数组等动态分配的数据结构,而栈内存存储的是局部变量和函数调用栈等。
4、存储大小:堆内存的大小一般比栈内存大,因为堆内存用于存储动态分配的数据结构,而栈内存的大小受限于编译器和操作系统的限制。
5、存储效率:堆内存的存储效率较低,因为需要程序员手动管理内存,而栈内存的存储效率较高,因为编译器自动管理内存。

🍅HTTP和HTTPS的区别

1、安全性不同:HTTP是明文传输协议,数据在传输过程中不进行加密,容易被黑客截取并篡改。HTTPS使用SSL/TLS协议进行加密传输,可以保证数据在传输过程中的安全性。
2、传输速度不同:HTTPS需要进行加密和解密操作,传输速度略慢
3、证书验证不同:HTTPS使用数字证书验证服务器身份,确保客户端和服务器端之间的通信安全,而HTTP协议没有进行身份验证,可能存在中间人攻击风险。
4、端口号不同:HTTP默认用80端口进行通信,而HTTPS默认用443端口进行通信。


⭐️最后的话⭐️
总结不易,希望uu们不要吝啬你们的👍哟(^U^)ノ~YO!!如有问题,欢迎评论区批评指正😁

请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/503350.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Origin如何绘制三维图形?

文章目录 0.引言1.使用矩阵簿窗口2.三维数据转换3.三维绘图4.三维曲面图5.三维XYY图6.三维符号、条状、矢量图7.等高线图 0.引言 因科研等多场景需要,绘制专业的图表,笔者对Origin进行了学习,本文通过《Origin 2022科学绘图与数据》及其配套素…

63.空白和视觉层级的实战应用

例如看我们之前的小网页; 这些标题的上下距离一样,这样让我们很容易对这些标题进行混淆,我们可以适当的添加一点空白 header, section {margin-bottom: 96px; }这样看上去似乎就好很多! 除此之外,如我们之间学的空…

【line features】线特征

使用BinaryDescriptor接口提取线条并将其存储在KeyLine对象中,使用相同的接口计算每个提取线条的描述符,使用BinaryDescriptorMatcher确定从不同图像获得的描述符之间的匹配。 opencv提供接口实现 线提取和描述符计算 下面的代码片段展示了如何从图像中…

K8S相关核心概念

个人笔记: 要弄明白k8s的细节,需要知道k8s是个什么东西。它的主要功能,就是容器的调度--也就是把部署实例,根据整体资源的使用状况,部署到任何地方 注意任何这两个字,预示着你并不能够通过常规的IP、端口…

如何全面学习Object-C语言的语法知识 (Xmind Copilot生成)

网址:https://xmind.ai/login/ 登录后直接输入:如何全面学习Object-C语言的语法知识,就可以生成大纲 点击右上角的 按钮,可以显示md格式的问题,再点击生成全文,就可以生成所有内容了, 还有这个…

CentOS7/8 安装 5+ 以上的Linux kernel

CentOS以稳定著称,稳定在另外一方面就是保守。所以CentOS7还在用3.10,CentOS8也才是4.18。而当前最新的Linux Kernel都更新到6.0 rc3了。其他较新的发行版都用上了5.10的版本。本文简单介绍如何在CentOS7、8上直接安装5.1以上版本的第三方内核。 使用ted…

5.8晚间黄金行情走势分析及短线交易策略

近期有哪些消息面影响黄金走势?本周黄金多空该如何研判? ​黄金消息面解析:周一亚洲时段,现货黄金小幅反弹,目前交投于2024.3美元/盎司附近,一方面是金价上周五守住了 2000 整数关口,逢低买盘涌…

java环境Springboot框架中配置使用GDAL,并演示使用GDAL读取shapefile文件

GDAL是应用广泛的空间数据处理库,可以处理几何、栅格数据,Springboot是常用的JAVA后端开发框架。本文讲解如何在Springboot中配置使用GDAL。本文示例中使用的GDAL版本为3.4.1(64位) 图1 GDAL读取shp效果 一、部署GDAL类库 将GDA…

什么是点对点传输?什么是点对多传输

点对点技术(peer-to-peer, 简称P2P)又称对等互联网络技术,是一种网络新技术,依赖网络中参与者的计算能力和带宽,而不是把依赖都聚集在较少的几台服务器上。P2P网络通常用于通过Ad Hoc连接来连接节点。这类网…

WiFi(Wireless Fidelity)基础(四)

目录 一、基本介绍(Introduction) 二、进化发展(Evolution) 三、PHY帧((PHY Frame ) 四、MAC帧(MAC Frame ) 五、协议(Protocol) 六、安全&#x…

功能测试常用的测试用例大全

登录、添加、删除、查询模块是我们经常遇到的,这些模块的测试点该如何考虑 1)登录 ① 用户名和密码都符合要求(格式上的要求) ② 用户名和密码都不符合要求(格式上的要求) ③ 用户名符合要求,密码不符合要求(格式上的要求) ④ 密码符合要求,…

1_1torch学习

一、torch基础知识 1、torch安装 pytorch cuda版本下载地址:https://download.pytorch.org/whl/torch_stable.html 其中先看官网安装torch需要的cuda版本,之后安装cuda版本,之后采用pip 下载对应的torch的gpu版本whl来进行安装。使用pip安装…

Linux内核中的链表(list_head)使用分析

【摘要】本文分析了linux内核中的list_head数据结构的底层实现及其相关的各种调用源码,有助于理解内核中链表对象的使用。 二、内核中的队列/链表对象 在内核中存在4种不同类型的列表数据结构: singly-linked listssingly-linked tail queuesdoubly-lin…

SSM框架学习-bean生命周期理解

Spring启动,查找并加载需要被Spring管理的Bean,进行Bean的实例化(反射机制);利用依赖注入完成 Bean 中所有属性值的配置注入; 第一类Aware接口: 如果 Bean 实现了 BeanNameAware 接口的话&#…

Yolov8改进---注意力机制:CoTAttention,效果秒杀CBAM、SE

1.CoTAttention 论文:https://arxiv.org/pdf/2107.12292.pdf CoTAttention网络是一种用于多模态场景下的视觉问答(Visual Question Answering,VQA)任务的神经网络模型。它是在经典的注意力机制(Attention Mechanism)上进行了改进,能够自适应地对不同的视觉和语言输入进…

day28_mysql

今日内容 零、 复习昨日 一、函数[了解,会用] 二、事务[重点,理解,面试] 三、索引[重点,理解,面试] 四、存储引擎 五、数据库范式 六、其他 零、 复习昨日 见晨考 一、函数 字符串函数数学函数日期函数日期-字符串转换函数流程函数 1.1 字符串函数 函数解释CHARSET(str)返回字…

一个简单的watch以及ESModule导入和解构的区别

背景 最近写了个很有意思的方法,感觉还蛮不错的就分享一下。起先是我在写calss组件的时候遇到一个问题,我需要监听一个导入的值,导入的值最开始是undefined,经过异步操作以后会得到一个新的值,而我需要在这个class组件…

[echarts] legend icon 自定义的几种方式

echarts 官方配置项 地址 一、默认 图例项的 icon circle, rect, roundRect, triangle, diamond, pin, arrow, none legend: {top: 5%,left: center,itemWidth: 20,itemHeight: 20,data: [{icon: circle, name: 搜索引擎},{icon: rect, name: 直接访问},{icon: roundRect, n…

分布式系统---MapReduce实现(Go语言)

一、说明 本次实验是基于MIT-6.824的课程,详情请参见官网主页下载源代码 二、MapReduce原理 2.1 经典的分布式模型 MapReduce是经典的分布式模型。通过Map函数和Reduce函数实现。 分布式计算,就是利用多台机器,完成一个任务。关于分布式…

算法第一天力扣---2651. 计算列车到站时间

1.题目要求: 给你一个正整数 arrivalTime 表示列车正点到站的时间(单位:小时),另给你一个正整数 delayedTime 表示列车延误的小时数。 返回列车实际到站的时间。 注意,该问题中的时间采用 24 小时制。 示…