2024年软件测试最全软件测试面试常见问题【含答案】(2),2024年最新软件测试开发者必须收藏的8个开源库

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

1、你对质量的认知;

2、你的过往经验中是如何来保障测试质量的。

参考以下几种维度,最好再结合你曾经的工作案例:

可以从保障产品质量、如何减少漏测等方面说明。

比如从我自己的测试经验里:

1)测试流程/产品交付流程上要规范 – 需求/评审/冒烟/交叉测试/abtest/灰度发布等

2)从测试的维度上来(各种测试维度、测试手段、左移右移、测试效率等):

一是要减少漏测:回归时容易出现 -可适当利用自动化手段

二是要尽量了解客户场景:覆盖用户的使用场景。在功能和非功能测试上都可以更好的设计用例

三是要持续更新用例库:对于出现的未覆盖的,需要更新到下次常规测试中 四是可以展开探索性测试

五是梳理逻辑漏洞,避免隐藏的测试场景

六是加入白盒测试,对于开发代码review,加入代码扫描等。

5、你平常怎么定位问题的?

面试官考察:

1、你是否真的只是点点点而已

2、功能测试基本功深度如何

一般常借用的手段 - F12/抓包工具、看产品日志

马上举例:你工作中最有成就感的一个bug定位和分析

要体现出,你真的不光是点点点,你有深入的去了解产品的业务流、数据流、实现逻辑,可以挖掘深层次隐藏的bug。

三、接口测试面试题

HTTP, HTTPS协议
  • 什么是DNS
  • HTTP协议
  • 怎么抓取HTTPS协议
  • 说出请求接口中常见的返回状态码
  • http协议请求方式
  • HTTP和HTTPS协议区别
  • HTTP和HTTPS实现机有什么不同
  • POST和GET的区别
  • HTTP请求报文与响应报文格式
  • 什么是Http协议无状态协议?怎么解决HTTP协议无状态协议
  • 常见的POST提交数据方式
  • HTTP请求报文与响应报文格式
  • HTTP协议学了哪几个版本
  • Session和Cookies区别
  • HTTPS在哪一层, 会话层在第几层
  • 浏览器输入url按回车背后经历了哪些?
TCP, UDP协议
  • TCP/UDP协议的区别,TCP如何保证正确,微信基于什么协议,QQ基于什么协议,为什么?
  • 你熟悉OSI协议吗?原理是什么
接口用例设计
  • 怎么设计接口测试用例?
  • HTTPS测试点
  • 从HTTP变化到HTTPS协议,测试点
  • 购物车模块, 加入购物车接口测试点分析
  • http://…?orderId=,**, 接口设计用例
  • 设计接口测试用例时,涉及的是电商系统.其中包括很多修改,如商品.商家、店铺 等等,针对这些数据的修改,会涉及到很多参数.如商品的名称,商品的尺码,商品的顔色等等.那在设计实现"修改"接口时,如何确定要传思些参数?是只需要传我要修改的参数,还是全部参数都要传?
  • 上传文件测试点
  • 根据以下界面设计测试用例
  • 一个订单的几种状态如何全部测到,如:未处理,处理中,处理失败,处理成
接口测试
  • 为什么要做接口测试
  • 你平常做接口测试的过程中发现过哪些BUG
  • 平常你是怎么测试接口的
  • 平常用什么工具测接口的
  • 没有接口文档,如果做接口测试
  • 接口测试的流程
  • 常用什么接口测试工具, 说一个你在工作中具体怎么做接口测试的实例
  • 不可逆的操作,如何处理,比如删除一个订单这种接口如何测试
  • 接口产生的垃圾数据如何清理
  • 测试的数据你放在哪
  • 你们数字签名怎么实现的
  • 当一个接口出现异常时候,你是如何分析异常的
  • 你们怎么做的参数化
  • 如何进行数据清洗
  • 如何进行数据检验
  • response怎么验证, 参数特别多
  • 做接口测试如何分析是前端还是后端的问题
  • 在测试接口中怎么知道请求成功还是失败
  • 如何模拟弱网测试
  • 异步接口怎么测试
  • 接口的加密测试中对称加密与非对称加密有什么区别?如何开展测试?请详解
  • 请详细阐述接口测试和UI测试在测试活动中是如何协同测试的?
  • 目前接口文档是由word格式管理,因迭代快,产生很多文裆,分不滴哪些鼉不用的接口,哪些是正在用的接口,哪些是更新后的接口, 文裆杂乱.另外因是 word格式管理,不方便童询,如何管理?每次查看接口文档需要下截多个word,不能避免下载操作查看,效率不离,如何提离工作效率
接口依赖
  • 很多接口都需要登录怎么处理?
  • 依赖于登录的接口如何处理 -token 和 session的管理
  • 在手工接口测试或者自动化接口测试的过程中,上下游接口有致据依赖如何处理
  • 依赖于第三方数据的接口如何进行测试
  • 接口测试中依赖登录状态的接口如何测试
  • 如果两个请求有严格的先后顺序,需要测试调转顺序的情况
  • 在手工接口测试或者自动化接口测试的过程中,上下游接口有数据依
    赖如何处理?
  • 下个接口请求参数依赖上个接口的返回数据
Web Service
  • HTTP接口测试和Web Service接口测试区别是什么?
  • Web Service接口是如何测试的
接口框架
  • 接口测试框架怎么搭建的?
  • 你有没有做过框架稳定性优化相关的工作?
  • 持续集成怎么做的?
Mock
  • Mock怎么使用
  • 你们Mock是怎么做的
RPC
  • rpc接口怎么测试
  • 什么是RPC接口,用Http设计一个RPC接口
  • 你有没有自己实现过rpc框架
性能
  • JMeter怎么存储变量, 让下一个接口使用
  • 如何进行接口压测
  • JMeter执行10次
  • JMeter获取上一个request的结果
  • JMeter完成一个用例
  • 做接口测试当请求参数多时tps下降明显,此接口根据参数从redis中获取数据,每个 参数与redfs交互一次,当一组参数是tps5133,五组参数是tps1l69,多次交互影响了处理住能,请详细描述述如何改进增进效果的方案
高能部分
  • TCP报头格式
  • UDP报头格式
  • TCP/UDP区别(不仅是宏观上的,最好能根据各自的机制讲解清楚)
  • HTTP状态码(最好结合使用场景,比如在缓存命中时使用哪个)
  • HTTP协议(一些报头字段的作用,如cace-control、keep-alive)
  • OSI协议、TCP/IP协议以及每层对应的协议
  • Session机制、Cookie机制
  • TCP三次握手、四次挥手(这个问题真的要回答吐了,不过真的是面试官最喜欢问的,建议每天手撸一遍,而且不只是每次请求的过程,各种FIN_WAIT、TIME_WAIT状态也要掌握)。
  • 打开网页到页面显示之间的过程(涵盖了各个方面,DNS解析过程,Nginx请求转发、连接建立和保持过程、浏览器内容渲染过程,考虑的越详细越好)。
  • http和https区别,https在请求时额外的过程,https是如何保证数据安全的
  • IP地址子网划分
  • POST和GET区别
  • DNS解析过程
  • TCP如何保证数据的可靠传输的(这个问题可以引申出很多子问题,拥塞控制慢开始、拥塞避免、快重传、滑动窗口协议、停止等待协议、超时重传机制,最好都能掌握)
  • 地址解析协议ARP
  • 交换机和路由器的区别
  • HTTP2.0、thrift
  • API接口与SDI接口的区别(API是提供给别人的接口)
  • dubbo如何一条链接并发多个调用。Dubbo的原理,序列化相关问题
  • 你怎么理解http协议
  • 说说http协议的工作流程
  • http有哪些请求提交方式
  • http中的200,302,403,404,500,503都代表什么状态
  • 什么是web缓存?有什么优点
  • 你怎么理解cookie和session,有哪些不同点
  • 什么是https,说说https的工作原理
  • 什么是http代理服务器,有什么用
  • 什么是分布式系统
  • 分布式系统你会考虑哪些方面
  • 讲讲CAP理念
  • 怎么理解强一致性、单调一致性和最终一致性
  • 分布式系统设计你会考虑哪些策略
  • 讲一讲TCP协议的三次握手和四次挥手流程
  • 讲一讲TCP协议的三次握手和四次挥手流程
  • 为什么TCP建立连接协议是三次握手,而关闭连接却是四次握手呢?为什么不能用两次握手进行连接
  • 为什么TCP TIME_WAIT状态还需要等2MSL后才能返回到CLOSED状态
  • 什么是DoS、DDoS、DRDoS攻击?如何防御
  • 为什么说TCP/IP协议是不可靠的
  • OSI有哪七层模型?TCP/IP是哪四层模型

四、自动化测试面试题

1、你会封装自动化测试框架吗?

这个问得最多,甚至有很多公司直接写在招聘要求中!

当然可以,自动化框架主要的核心框架就是分层+PO模式:分别为:基础封装层BasePage,PO页面对象层,TestCase测试用例层。然后再加上日志处理模块,ini配置文件读取模块,unittest+ddt数据驱动模块,jenkins持续集成模式组成。

2、如何把自动化测试在公司中实施并推广起来的?

1.项目组调研选择自动化工具并开会演示demo案例,我们主要是演示selenium和robotframework两种。

2.搭建自动化测试框架,在项目中逐步开展自动化。

3.把该项目的自动化流程、框架固化成文档

4.推广到公司的其它项目组应用

3、请描述一下自动化测试流程?

1.编写自动化测试计划

2.设计自动化测试用例

3.编写自动化测试框架和脚本

4.调试并维护脚本

5.无人值守测试

6.后期脚本维护(添加用例、开发更新版本)

4、自动化测试用例如何编写?以下答案二选一即可:

1.用例是自动化测试工程师自己设计的,一般刚开始已基本业务流程为主(登录–完成一个业务–退出)

2.从系统测试用例中进行筛选或由业务工程师提供

5、上一个项目中自动化测试的执行策略?

上一个项目中是定时执行的,设置的执行时间是晚上12点,执行完毕后会自动发送邮件通知

6、自动化测试发现BUG多吗?

不多,因为之前项目组是把已经测试通过的基本功能再进行自动化脚本编写和在后续版本执行自动化测试,它主要是保证已经测试通过的功能在新版本更新后没有问题。

7、你觉得自动化测试的价值在哪里?你们公司为什么要做自动化测试?

引用自动化测试之后,能代替大量繁琐的回归测试工作,把业务测试人员解放出来,既而让业务测试人员把精力集中在复杂的业务功能模块上,自动化测试一般是对稳定下来的功能进行自动化,保证不会因为产品的更新导致之前稳定下来的功能出现BUG

8、自动化测试有误报过bug吗?产生误报怎么办?

有误报过,有时候自动化测试报告中显示发现了bug,实际去通过手工测试去确认又不存在该bug。

误报原因一般是:

1.元素定位不稳定,需要尽量提高脚本的稳定性;

2.开发更新了页面但是测试没有及时更新维护!

9、自动化测试过程中,你遇到了哪些问题,是如何解决的?

1.频繁地变更页面,经常要修改页面对象类里面的代码

2.自动化测试偶尔出现过误报

3.自动化测试结果出现覆盖的情况:Jenkins根据时间建立文件夹

4.自动化测试代码维护比较麻烦

5.自动化测试进行数据库对比数据

10、在上一家公司做自动化测试用的什么框架?

可以说出以下自己擅长的一种:

1.python+selenium+unittest+htmltestrunner

2.python+selenium+pytest+allure

  1. robotframework+Selenium2Library
11、你们自动化团队有自己的群吗?

当然有:我们使用的群号是:  361602262有很多软件测试和自动化大神解决项目中的问题,还会不定时的发放免费资料。

12、在selenium自动化测试中,你一般完成什么类型的测试?自动化覆盖率?

主要是冒烟测试和回归测试。回归测试主要写一些功能稳定的场景,通过自动化手段去实现,节约测试时间。因为自动化测试用例也是在不断的更新和迭代,没有刻意去统计,大概在30%-40%左右!

13、在执行脚本过程,如何实现当前元素高亮显示?

这个其实就是利用javaScript去修改当前元素的边框样式来到达高亮显示的效果,

14、如果一个元素无法定位,你一般会考虑哪些方面的原因?

1.页面加载元素过慢,加等待时间

2.页面有frame框架页,需要先跳转入frame框架再定位

3.可能该元素是动态元素,定位方式要优化,可以使用部分元素定位或通过父节点或兄弟节点定位。

4.可能识别了元素,但是不能操作,比如元素不可用,不可写等。需要使用js先把前置的操作完成,

15、元素定位方法你熟悉的有哪些?

id      name      classname       link_text      css      xpath

16、遇到frame框架页面怎么处理?

先用driver.switch_to.frame()跳转进去frame,

然后再操作页面元素,

操作完后使用driver.swith_to.default_content()跳转出来

17、遇到alert弹出窗如何处理?

使用driver.switch_to.alert方法先跳转到alert弹出窗口

然后再通过accept点击确定按钮,通过dismiss点击取消难,通过text()获得弹出窗口的文本。

18、如何处理多窗口?

这个多窗口之间跳转处理,我们在项目中也经常遇到。就是,当你点击一个链接,这个链接会在一个新的tab打开,然后你接下来要在新tab打开的页面查找元素,

1.我们在点击链接前使用driver.current_window_handle获得当前窗口句柄。

2.再点击链接。点击后通过driver.window_handles获得所有窗口的句柄,

3.然后再循环找到新窗口的句柄,然后再通过driver.switch_to.window()方法跳转到新的窗口。

19、怎么验证元素是enable/disabled/checked状态?

定位元素后:分别通过isEnabled(),isSelected(),isDisplayed()三个方法进行判断。

20、 如何处理下拉菜单?

在Selenium中有一个叫Select的类,这个类支持对下拉菜单进行操作。使用方法如下:

1.定位元素

2.把定位的元素转化成Select对象。

sel = Select(定位的元素对象)

3.通过下标或者值或者文本选中下拉框。
sel.select_by_index(index);
sel.select_by_value(value);
sel.select_by_visible_text(text);

21、在日历这种web 表单你是如何处理的?

首先要分析当前网页试用日历插件的前端代码,看看能不能通过元素定位,点击日期实现,如果不能,可能需要借助javascript。还有些日历控件一个文本输入框,可以直接sendKeys()方法来实现传入一个时间的数据。

22、举例一下说明一下你遇到过那些异常

常见的selenium异常有这些:

NoSuchElementException:没有该元素异常
TimeoutException : 超时异常

ElementNotVisibleException :元素不可见异常
NoSuchAttributeException :没有这样属性异常
NoSuchFrameException :没有该frame异常

23、关闭浏览器中quit和close的区别

简单来说,两个都可以实现退出浏览器session功能,close是关闭你当前聚焦的tab页面,而quit是关闭全部浏览器tab页面,并退出浏览器session。知道这两个区别,我们就知道quit一般用在结束测试之前的操作,close用在执行用例过程中关闭某一个页面的操作。

24、在Selenium中如何实现截图,如何实现用例执行失败才截图

在Selenium中提供了一个get_screenshot_as_file()的方法来截图的,一般结合try/except捕获异常时使用,进行错误截图。

25、如何实现文件上传?

定位元素后,直接使用send_keys()方法设置就行,参数为需要上传的文件的路径。

26、自动化中有哪三类等待?他们有什么特点?

1.线程等待(强制等待)如time.sleep(2):线程强制休眠2秒钟,2秒过后,再执行后续的代码。建议少用。

2.imlicitlyWait(隐式等待)会在指定的时间范围内不断的查找元素,直到找到元素或超时,特点是必须等待整个页面加载完成。

3.WebDriverWait(显式等待)通常是我们自定义的一个函数代码,这段代码用来等待某个元素加载完成,再继续执行后续的代码

27、你写的测试脚本能在不同浏览器上运行吗

当然可以,我写的用例可以在在IE,火狐和谷歌这三种浏览器上运行。实现的思路是封装一个方法,分别传入一个浏览器的字符串,如果传入IE就使用IE,如果传入FireFox就使用FireFox,如果传入Chrome就使用Chrome浏览器,并且使用什么浏览器可以在总的ini配置文件中进行配置。需要注意的是每个浏览器使用的驱动不一样。

28、什么是PO模式,为什么要使用它

PO是Page Object 模式的简称,它是一种设计思想,意思是,把一个页面,当做一个对象,页面的元素和元素之间操作方法就是页面对象的属性和行为,PO模式一般使用三层架构,分别为:基础封装层BasePage,PO页面对象层,TestCase测试用例层。

29、你们测试团队如何提升自己的测试技能?

我们有自己的软件测试技术群:361602262:如果有任何软件测试方面的疑问,关于软件测试、接口测试、自动化测试、性能测试、面试经验等都可以在群里解决,群里有同行大神一起交流技术。共同进步,一起成长!

如果大佬们觉得有哪些写得不对,欢迎留言或私信,谢谢!

五、预祝面试成功,给您的offer,请收下!

最后预祝每一位求职者都能找到自己如意的工作!马上实现升职加薪!

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化的资料的朋友,可以戳这里获取

361602262:如果有任何软件测试方面的疑问,关于软件测试、接口测试、自动化测试、性能测试、面试经验等都可以在群里解决,群里有同行大神一起交流技术。共同进步,一起成长!

如果大佬们觉得有哪些写得不对,欢迎留言或私信,谢谢!

五、预祝面试成功,给您的offer,请收下!

最后预祝每一位求职者都能找到自己如意的工作!马上实现升职加薪!

[外链图片转存中…(img-87fPbapV-1715191104929)]
[外链图片转存中…(img-JZKOBFFS-1715191104930)]
[外链图片转存中…(img-u1hzYvCQ-1715191104930)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化的资料的朋友,可以戳这里获取

  • 13
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值