😏作者简介:博主是一位测试管理者,同时也是一名对外企业兼职讲师。
📡主页地址:【Austin_zhai】
🙆目的与景愿:旨在于能帮助更多的测试行业人员提升软硬技能,分享行业相关最新信息。
💎声明:博主日常工作较为繁忙,文章会不定期更新,各类行业或职场问题欢迎大家私信,有空必回。
阅读目录
- 1. 接上回
- 2. 题目解析
- 2.1 请介绍一下浅拷贝与深拷贝的区别
- 2.2 请说说什么是索引?
- 2.3 请解释一下tcp协议中的粘包和拆包和重传机制?
- 2.4 请解释cookies,session的鉴权机制以及为何要引入这样的机制?
- 2.5 请介绍一下你的自动化测试框架覆盖了开发多少业务代码,怎么统计出来的?多少用例,跑一次多长时间?
- 3. 后话
1. 接上回
我们接着上次的内容继续来整理与解析一些比较高频的测试行业面试题,大家可以通过面试题内的一些解析再结合自己的真实工作经验来进行答题思路的提取、整理。友情提示:硬背答案虽可,但容易翻车哦。
2. 题目解析
2.1 请介绍一下浅拷贝与深拷贝的区别
由来就不多说了,经典老题了。浅拷贝与深拷贝的区别主要在于复制的深度和影响范围。深拷贝会复制源对象的所有层级的数据,包括嵌套对象、内部对象等,深拷贝会复制源对象的所有层级的数据,包括嵌套对象、内部对象等;浅拷贝只复制源对象的最外层数据,不会复制嵌套对象本身,而是复制它们的引用,复制的结果包含了原对象和其内部嵌套对象的引用,因此这两个对象之间仍然共享相同的嵌套对象。
2.2 请说说什么是索引?
索引是数据库中用于提高数据检索速度的数据结构。它类似于书籍的目录,帮助数据库管理系统快速定位并访问表中的特定数据行。索引通常是数据库表中一个或多个列的数据结构,它们的存在可以加速数据查询、过滤和排序。一般使用索引都是因为其可以加速数据的检索,因为如果不使用索引的数据进行查找时数据库需要进行全表扫描,逐行查找匹配的数据,如果这种情况在大型数据表中将会非常的耗时。
2.3 请解释一下tcp协议中的粘包和拆包和重传机制?
粘包指的是发送方在将数据发送给接收方时,将多个小数据包组合成一个大数据包,或者接收方在接收到的数据中无法准确划分出每个数据包的情况;拆包则是相反情况,指的是接收方在接收到的数据中无法区分多个数据包。而重传机制则是tcp协议保证可靠传输的一项重要保障机制,当发送方发送数据并未收到接收方的确认时,它会定期重传数据。接收方如果在一定时间内没有收到数据,也可以请求重传。
2.4 请解释cookies,session的鉴权机制以及为何要引入这样的机制?
cookies通常会将会话标识符或用户身份信息等数据保存在用户的本地,浏览器会在后续的HTTP请求中将cookie发送回服务器,服务器可以根据Cookie中的信息来识别用户;而session则不同,session通常依赖于cookie来识别用户,但会话数据存储在服务器上,而不是客户端,session允许应用程序在用户多次请求之间保持状态;cookies和session允许应用程序验证用户的身份,用户可以在登录时提供凭证,服务器验证后授予合法的访问权限。鉴权机制可以提高应用程序的安全性,通过在服务器端存储敏感信息,而不是在客户端,可以减少信息泄露的风险。进而应用程序可以控制用户对不同资源的访问权限,确保只有授权用户可以执行特定操作。
2.5 请介绍一下你的自动化测试框架覆盖了开发多少业务代码,怎么统计出来的?多少用例,跑一次多长时间?
见仁见智的一题,这里主要就是考察面试者日常的工作主要内容是否可以以数据产出已经衡量的标准,覆盖范围与覆盖率在之前的文章中已经提及,大家可以根据自己日常的主体业务或拳头产品的业务数据来进行衡量,计算与统计的方法可以使用对应的覆盖率计算工具,比如JaCoCo、coverage、Istanbul、gcov等,根据编码工作中的实时覆盖数据与覆盖报告来进行计算。另外一点,在统计的过程中与开发保持良好的沟通也是至关重要的,因为业务代码避免不了多次迭代,那么大家编写的测试框架也一定会有着一些改动,这些改动在一两次之间好像没有什么大的变化,但是一旦出现了多次迭代之后没有及时优化,则经常会导致功能、业务流程与业务代码覆盖率出现较大的偏差的情况出现。至于用例数与运行时长,日常中大家只需要根据自动化任务中的测试报告来进行提取与总结就可以了。当然运行时长与用例数的比例大家一定要注意一下,比如使用python来搭建测试框架的,因其本身运行时长就没有优势,势必需要在后期的运行效率上进行大量的优化,千万不要第一次运行是多少时间就和面试官是多久,这样往往就会在失去自己的一些优势。
3. 后话
总体来说对于测试开发的面试内容,各个用人单位其实关注的除了相关的技术栈与项目经验之外,其实更需要的是测开人员自身对于项目业务与行业相关的整体解决的认知与思维,这点与软件开发人员的要求会有略微的不同,毕竟作为测试人员来说,整体把握软件质量保障情况是其中的重中之重。