Advertisement

分享下3年工作经验下的 社招面经(详细总结)

阅读量:

这次就不长篇论道了,直接进入主题!

在这里插入图片描述

测试题

当你在测试中报告了一个问题时,在确认它确实是一个bug之前,请确保开发经理并不将其视为一个bug。

首先,将问题提交到缺陷管理库里面进行备案。

然后,要获取判断的依据和标准:

基于需求说明书、产品说明及设计文档等信息,评估实际结果与预期计划是否存在差异,并提供缺陷确认所需的直接证据。当缺乏具体文档支持时,则可参考类似软件的普遍特性来分析是否存在不一致之处,并以此判断是否构成缺陷。通过考察用户的常规使用习惯来判断问题性质。同时建议组织设计团队(包括开发人员和客户代表)展开深入讨论以明确问题存在性。经过合理论证后,在向测试经理汇报时详细阐述自己的判断理由,并始终保持客观和严谨的态度。

经公司相关部门负责人确认后实施,如仍有异议,可向上级反映情况,并由上级作出最后决定。

问:给你一个网站,你如何测试?

首先,查找需求说明、网站设计等相关文档,分析测试需求。

编制并明确测试计划书,并划分具体的工作内容与技术规范要求,在以下六个方面进行详细规划:1. 功能性需求验证;2. 界面交互性验证;3. 性能指标评估;4. 数据库功能检测;5. 安全性评估任务;6. 跨平台兼容性检验

设计测试用例:

功能性测试可以包括,但不限于以下几个方面:

进行链接测试时,请检查其是否实现了正确的跳转功能,并确认是否存在无法访问的空白页面或无效页面的情况;同时需关注是否会返回错误信息或其他异常状态。评估提交功能时,请重点关注其在各种操作下的表现及稳定性。确认多媒体元素的加载与显示模块能否正常运行及其效果如何。验证多语言环境下的界面能否准确地展示所选的语言及其相关组件功能。在实施界面测试时,请涵盖以下几大类核心内容:

页面是否风格统一,美观

页面布局是否合理,重点内容和热点内容是否突出

控件是否正常使用

若某控件必须且未被安装,则该系统是否支持其自动生成并安装该控件?针对此问题的具体实现细节,请查阅相关技术文档。文字检查通常会实施于文档校对过程中以确保内容准确无误。性能测试一般会从功能完整性与稳定性两方面进行评估:其中功能完整性主要考察核心逻辑模块的处理能力。

压力测试;

负载测试;

强度测试

是否有必要对数据库进行测试取决于具体情况?
通常情况下,在设计或优化过程中可能会涉及以下几个关键因素:
首先考虑系统的连接能力;
其次关注数据如何被访问或读写;
最后确保所有存储的信息都是有效的和可信赖的。

安全性测试:

基本的登录功能的检查

是否存在溢出错误,导致系统崩溃或者权限泄露

相关开发语言的常见安全性问题检查,例如SQL注入等

如果需要实施高级的安全性测试方案,则应当积极联系专业安全公司以获取技术支持,并考虑进行外包测试项目或寻求相关技术团队的帮助
在开展兼容性测试时,请依据需求文档中的具体信息来明确兼容性测试所需的设备及系统版本组合

浏览器的兼容性;

操作系统的兼容性;

软件平台的兼容能力;
数据库的兼容能力
启动测试流程并记录缺陷发生情况。
优化规划测试进度安排。
确保资源充足以支持高效的测试执行。
建立管理体系并详细列举包含的内容(如需求变更、风险评估、配置管理、文档准备等)。

定期评审,对测试进行评估和总结,调整测试的内容。

Java基础

1、HashMap的源码,实现原理,JDK8中对HashMap做了怎样的优化。

2、HaspMap扩容是怎样扩容的,为什么都是2的N次幂的大小。

3、HashMap,HashTable,ConcurrentHashMap的区别。

在极端高并发场景下,在应用中选择使用哪种数据结构(HashTable或ConcurrentHashMap),哪一种表现更为优秀?主要原因在于它们各自的特性以及技术实现方式的不同。具体来说,背后的技术机制是什么?

在高并发场景下,HashMap若未采取线程安全措施可能会导致什么样的安全隐患?其具体表现为哪些方面。

6、java中四种修饰符的限制范围。

7、Object类中的方法。

8、接口和抽象类的区别,注意JDK8的接口可以有实现。

9、动态代理的两种方式,以及区别。

10、Java序列化的方式。

11、传值和传引用的区别,Java是怎么样的,有没有传值引用。

12、一个ArrayList在循环过程中删除,会不会出问题,为什么。

JVM

1、JVM的内存结构。

2、JVM方法栈的工作过程,方法栈和本地方法栈有什么区别。

3、JVM的栈中引用如何和堆中的对象产生关联。

4、可以了解一下逃逸分析技术。

5、常见的GC算法包括CMS和G1,在其垃圾回收机制中各有特点。其中CMS和G1各自的回收机制有哪些?在这些阶段中有哪些是全局停止点?这会导致内存碎片的可能性如何?而G1的优势主要体现在哪些方面呢?

6、标记清除和标记整理算法的理解以及优缺点。

7、eden survivor区的比例,为什么是这个比例,eden survivor的工作过程。

8、JVM如何判断一个对象是否该被GC,可以视为root的都有哪几种类型。

9、强软弱虚引用的区别以及GC对他们执行怎样的操作。

10、Java是否可以GC直接内存。

11、Java类加载的过程。

12、双亲委派模型的过程以及优势。

13、常用的JVM调优参数。

14、dump文件的分析。

15、Java有没有主动触发GC的方式(没有)。

多线程

1、Java实现多线程有哪几种方式。

2、Callable和Future的了解。

3、线程池的参数有哪些,在线程池创建一个线程的过程。

4、volitile关键字的作用,原理。

5、synchronized关键字的用法,优缺点。

6、Lock接口有哪些实现类,使用场景是什么。

7、可重入互斥锁的功能及其实现机制,在写操作过程中如何进行复制;读-写锁定机制;段式互斥锁(其中在ConcurrentHashMap中被称作segment)

8、悲观锁,乐观锁,优缺点,CAS有什么缺陷,该如何解决。

9、ABC三个线程如何保证顺序执行。

10、线程的状态都有哪些。

11、sleep和wait的区别。

12、notify和notifyall的区别。

13、ThreadLocal的了解,实现原理。

数据库相关

1、常见的数据库优化手段

2、索引的优缺点,什么字段上建立索引

3、数据库连接池。

4、durid的常用配置。

计算机网络

1、TCP,UDP区别。

2、三次握手,四次挥手,为什么要四次挥手。

3、长连接和短连接。

4、连接池适合长连接还是短连接。

设计模式

1、观察者模式

2、代理模式

3、单例模式,有五种写法,可以参考文章单例模式的五种实现方式

4、可以考Spring中使用了哪些设计模式

分布式相关

1、分布式事务的控制。

2、分布式锁如何设计。

3、分布式session如何设计。

4、dubbo的组件有哪些,各有什么作用。

5、zookeeper的负载均衡算法有哪些。

6、dubbo是如何利用接口就可以通信的。

缓存相关

1、redis和memcached的区别。

2、redis支持哪些数据结构。

3、redis是单线程的么,所有的工作都是单线程么。

4、redis如何存储一个String的。

5、redis的部署方式,主从,集群。

6、redis的哨兵模式,一个key值如何在redis集群中找到存储在哪里。

7、redis持久化策略。

框架相关

1、SpringMVC的Controller是如何将参数和前端传来的数据一一对应的。

2、Mybatis如何找到指定的Mapper的,如何完成查询的。

3、Quartz是如何完成定时任务的。

4、自定义注解的实现。

5、Spring使用了哪些设计模式。

6、Spring的IOC有什么优势。

7、Spring如何维护它拥有的bean。

最后

考虑到最近有很多人正在准备面试

最新整理面试题

在这里插入图片描述

已经将上述面试题答案制成完整的电子文档笔记。
另外也收集了一些最新的2020年的大公司面试真题库(全部制成电子文档,并附带部分截图),有需要的朋友可以通过链接进入查看详细资料:https://jq.qq.com/?_wv=1027&k=fkU0zp91

最新整理电子书

在这里插入图片描述

最新整理大厂面试文档

在这里插入图片描述

这就是整篇文章的核心内容,请各位同学耐心阅读并深入理解其中的关键观点。也欢迎广大学子多加关注与讨论!按住屏幕下方的三键完成分享操作哦!

在这里插入图片描述

全部评论 (0)

还没有任何评论哟~