热乎的面经——踏石留印

这篇具有很好参考价值的文章主要介绍了热乎的面经——踏石留印。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

热乎的面经——踏石留印

⭐️前言⭐️

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

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

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

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


热乎的面经——踏石留印

🍅一面

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

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

2、测试的流程

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

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

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

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

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

5、提bug开发不认可

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

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

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

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

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

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

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

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

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

10、什么是多态

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

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

11、什么是GC

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

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

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

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

在内存中划分出如下区域:
热乎的面经——踏石留印

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

12、堆内存和栈内存的区别

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

13、HTTP和HTTPS的区别

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

🍅二面

1、平时用到的单例模式

单例模式能保证某个类在程序中只存在唯一一份实例,而不会创建出多个实例。
单例模式的具体实现方式,分成“饿汉”和“懒汉”两种。
再有就是Spring中的Bean的作用域就是默认单例的。

2、如何调节流量大小

流量控制的关键,就是能够衡量接收方的处理速度,根据接收方接收缓冲区的剩余空间大小,来衡量当前的处理能力。
如果剩余空间比较大,就认为接收方的处理能力比较强,就让发送方发快点。
如果剩余空间比较小,就认为接收方的处理能力比较弱,就让发送方发慢点。

3、滑动窗口的了解

由于确认应答机制的存在,导致当前每次执行一次发送操作,都需要等待上个ACK的到达,将会非常影响传输的效率。
滑动窗口的本质就是“批量发送数据”,一次发送一波数据,然后一起等待一波ACK。

比如发送了N组数据,并不用等待N组的数据的ACK都到了再继续往下发送,而是收到一个ACK就往下发送一组,这样这个窗口就在往后滑动。

4、敏捷模型的了解

轻文档,轻流程,重目标,重产出,响应变化。

scrum流程:三个角色,五个会议
三个角色:
● 产品经理:收集用户的需求,编写需求文档,对产品负责。
● 项目经理:负责召开各种会议,协调项目,为研发团队服务。
● 研发团队:开发人员、测试人员、UI设计人员等等。
五个会议和scrum的开发流程:

5、什么样的一个测试用例算是一个符合预期的或要求的测试用例,它应该包含哪些东西?

测试用例是为了实施测试而向被测试的系统提供的一组集合,这组集合包括:
测试环境、操作步骤、测试数据、预期结果等要素。

6、如何针对项目开开展测试的

7、selenium工作原理

● selenium脚本代码创建HTTP请求,并且发送给浏览器驱动WebDriver
● 浏览器驱动中包含一个Http Server来接受HTTP请求
● Http Server接受到请求后根据请求来具体操控浏览器,执行测试步骤
● 浏览器将测试执行结果返回给Http Server
● Http Server再将结果返回给selenium脚本代码

8、性能测试是咋测的

测试系统在各种负载和压力下的性能表现,包括响应时间、吞吐量、并发用户数、CPU和内存使用率、网络延迟、负载均衡等指标。

9、接口测试用到的测试工具

postman、fiddler

10、做过哪些安全测试

sql注入测试

11、git/svn

12、Linux系统的了解

13、除了md5加密还用到了什么加密

加盐加密+md5加密

14、对python的了解


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

热乎的面经——踏石留印文章来源地址https://www.toymoban.com/news/detail-468816.html

到了这里,关于热乎的面经——踏石留印的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 137基于matlab的面和线接触的滑块润滑

    基于matlab的面和线接触的滑块润滑,基于有限差分法求解面接触滑块润滑的油膜厚度、油膜压力,输出三维可视化结果。程序已调通,可直接运行。 137 matlab油膜压力油膜厚度 (xiaohongshu.com)

    2024年01月22日
    浏览(30)
  • Unity中实时获取网格上点的位置,还有对应的面和法线

    在Unity中,可以使用Mesh类来获取一个网格上点的位置以及对应的面和法线。以下是具体步骤: 在脚本中,需要先获取要操作的网格对象。可以使用以下代码: Mesh mesh = GetComponentMeshFilter().mesh; 其中,GetComponentMeshFilter()用于获取该游戏对象上的MeshFilter组件,mesh属性用于获取该

    2024年02月08日
    浏览(38)
  • 【面经】米哈游数据开发面经

    声明:面经从网络上搜集,自己补充了答案,不保证准确。 作者:蓝荆凌 链接:https://www.nowcoder.com/discuss/285388?type=allorder=recallpos=page=1ncTraceId=channel=-1source_id=search_all_nctrackgio_id=7ECACE7605534464872AA4CD0FF6C741-1658975042162 来源:牛客网   最近秋招启动的公司越来越多了。现在开始每

    2023年04月16日
    浏览(30)
  • 【网络安全面经】渗透面经、安服面经、红队面经、hw面经应有尽有 这一篇真的够了

    目录  面经 牛客 奇安信面经(五星推荐) 牛客面经(推荐) 渗透测试面经(推荐) 渗透测试技巧 计网面经 SQL注入漏洞 注入绕过 XXE漏洞 最强面经 Github面经 模拟面 WEB安全 PHP安全 网络安全 密码学 一、青藤 二、360 三、漏洞盒子 四、未知厂商 五、长亭-红队 六、qax 七、天

    2024年02月03日
    浏览(35)
  • 腾讯技术运维面经_腾讯 应用运维安全 面经(2)

    python: 你们项目是一个学院级别的项目,用django应该有挺多功能的吧,你们用了哪些中间件呢 你这个后端为什么要用flask呢,为什么要分开呢 为什么你这个项目要用drf呢,为什么不直接用两个flask呢?drf的目的到底是什么?rest风格? python的正则表达式?怎么开始的,怎么结束

    2024年04月22日
    浏览(19)
  • 自动驾驶算法/规划决策控制算法面经汇总、学习路线、面经心得

    本人985硕,自动驾驶从业者,曾面试过大部分自动驾驶公司、一部分机器人公司以及一些主机厂,方向主要是规划算法、规控算法、规划决策算法等方向。算法的面试难度每年都在不断提高,网友调侃从诸神黄昏到黑夜,可见算法面试有一定难度。 首先要了解自动驾驶算法主

    2024年02月02日
    浏览(46)
  • 深度思考线程池面经

    1 线程池详解(ThreadPoolExecutor) 2 面试必问的线程池,你懂了吗? 3 Java 中的线程池是怎样实现的? 4 高频面试题:Java线程池应该如何使用? 1 首先需要一个有界队列,同时设置一个corePoolSize和一个maxPoolSize参数,分别表示核心线程数以及支持的最大线程数,corePoolSize设置为

    2024年02月14日
    浏览(23)
  • 京东四面面经整理

    内容摘自我的学习网站:topjavaer.cn kafka在应用场景以及 项目 里的实现 bitmap底层 object里有哪些方法 hashmap相关 sychronized和reentrantlock相关问题以及锁升级 cas和volatile 线程几种状态以及转化 jvm内存模型 mybatis相关问题 Redis数据结构,问了下跳表的底层 RDB和AOF MySQL索引有哪些 b+树

    2024年02月10日
    浏览(23)
  • HashMap面经补充

    1 Java 8系列之重新认识HashMap 2 面试 ConcurrentHashMap ,看这一篇就够了! 两个条件 1 链表长度大于等于8 2 MIN_TREEIFY_CAPACITY参数即底层数组的大小大于等于64的时候(不是总的数据项(键值对)的数量。) 1.1.1 为什么达到8就需要变成树?降到6又变回链表? 事实上,链表长度超过

    2024年02月14日
    浏览(10)
  • 微服务系统面经

    项目地址可以参考:秒杀系统 优势:可以独立开发、部署和扩展每个服务;更好的故障隔离;可以根据服务的需求使用不同的技术栈;更容易组织围绕业务能力的团队。 劣势:可能需要更多的资源来运行所有服务;网络延迟可能会增加;需要更多的跨服务管理工作(例如服

    2024年02月15日
    浏览(24)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包