本文主要是介绍【软件测试面试题】老鸟整理,一线大厂真实面试题汇总解析...,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
目录:导读
- 前言
- 一、Python编程入门到精通
- 二、接口自动化项目实战
- 三、Web自动化项目实战
- 四、App自动化项目实战
- 五、一线大厂简历
- 六、测试开发DevOps体系
- 七、常用自动化测试工具
- 八、JMeter性能测试
- 九、总结(尾部小惊喜)
前言
1、面试类型
线上面试:
- 视频面试
- 电话面试
线下面试:
- 公司面试
面试题:
①技术问题
- 功能测试
- 自动化测试
- 性能测试
- app自动化测试
- ui自动化测试
- 接口自动化测试
②人事问题
笔试题:
- python基础问题
- 操作系统Linux常用命令
- 数据库相关的问题
- 测试理论和方法
- 笔试题主要的题目类型
- 算法题目,选择题,判断题,问答题
2、近期面试问题梳理
1)前置接口变动了,会影响到后置的接口用例,比如后置有20条用例,你会怎么解决?
如果前置接口会影响到后置接口,首先确认前置接口的变动情况
然后根据变动的内容,分析其对后置接口的影响程度
如果变动较小,只需要对后置接口中受影响的部分进行修改即可
如果变动较大,可能需要重新设计和编写后置接口用例
尽快进行对应的调整和修改
2)ui自动化你们大多什么用什么方式去定位?当元素定位不到的时候该如何处理?
8大定位方式
id
class
xpath
css
link text
partial link text
tag name
name
元素没有加载完成。 等待 强制等待 隐式等待 显式等待 2、元素在iframe或者frame框架里面 切换子页面
元素不可用(disabled),只读(readonly),不可见(hidden,style=‘disply:none’) 对于有些WebDriver没有提供的方法或者无法实现的功能,WebDriver提供了driver.execute_script()方法来执行
JavaScript代码。 假设一个输入框可以通过id=’text’将其定位,却不能通过send_keys()输入文本内容,可以借助JavaScript代码来实现
text = "input text" driver.execute_script("var obj=document.getElementById('text'); obj.value' " + text + "';")
页面跳转到新标签页,或弹出警告框,选择下拉框进行页面切换,以及警告框切换,下拉选择框切换
动态属性或者动态的DIV层
auto-id-E7NOva6B4ky0NzK7
auto-id-JaBOLRNXdMdgx29R# xpath中提供了三个⾮常好的⽅法来为我们定位部分属性值driver.find_element_by_xpath ("//div[contains(@id, 'auto-id')]")
driver.find_element_by_xpath ("//div[starts-with(@id, 'auto-id')]")
driver.find_element_by_xpath ("//div[ends-with(@id, 'auto-id)]")contains(a, b) # 如果a中含有字符串b, 则返回true,否则返回false
starts-with(a, b) # 如果a是以字符串b开头, 返回true,否则返回false
ends-with(a, b) # 如果a是以字符串b结尾, 返回true,否则返回false
滚动条,加滚动
3)如果一个元素嵌套层级很深,你用xpath定位不到怎么处理?
尝试使用其他定位方式,比如使用css定位方式
如果使用css还是定位不到,那么可能需要找开发进行沟通修改html的结构
4)做自动化时有没有遇到什么严重的bug?怎么解决的?
具体例子说明:元素无法定位,页面加载超时,接口返回数据异常等等
解决方案:首先可以调查产生问题的原因,通过查看日志和错误信息,然后跟团队及开发进行沟通
一起分析解决问题,包括修改定位方式,增加等待时间,进行重试操作,排查接口问题等等
5)接口数据校检你们一般怎么做的?
校验返回的状态码;
校验返回的数据结构;
校验返回的数据内容;
6)比如像有的接口token这种会过期,你们接口参数中怎么处理的?
在自动化的脚本中加入逻辑,先判断token是否过期
如果token过期,那么可以在脚本中重新获取token再发送请求,替换原有的token参数
7)问测到的被测系统有哪些功能?
根据简历中自己负责的模块和核心业务进行描述即可
8)试过程中会考虑异常场景吗?
测试过程中,异常类场景是一定要考虑,因为异常场景测试往往会暴露出系统的薄弱环节
会通过分析需求和用户行为,确定可能会出现的异常情况,并且编写测试用用例进行测试
常见的异常场景:输入非法数据,输入超出范围的数据,网络异常等等
9)mock的完整有没有自己写过?
曾经在项目中使用过mock框架进行单元测试
用法和原理:在测试过程中,可以根据需要创建虚拟的对象或模拟对象
模拟被测对象的行为和返回结果,以便进行独立的单元测试
编写相关的测试用例,使用mock对象来验证预期的行为和结果
10)信贷系统地资金流向说说
项目中写了金融相关的项目,会问到具体的业务场景
资金来源;
贷款发放;
还款收回;
利息收回;
资金调拨;
11)有没有用代码写过一些工具包?
例如自动化测试中,编写过一些封装的工具包
用于处理浏览器的驱动初始化,同步等操作
接口测试中,编写用于处理接口请求和响应的数据处理,加密解密等操作
工具包主要核心作用:提高测试效率,提高代码的复用性
12)涉及到到第三方的系统怎么测的
采取对应的措施进行解决
模拟第三方系统:使用mock技术,模拟第三方系统的响应,以便进行独立的测试这种方法可以避免对第三方的
依赖,提高测试的可控性和稳定性
集成测试:如果允许与实际第三方进行集成测试,那么可以通过第三方系统直接接入,进行端对端的测试,这种方式可以验证整个系统与第三方系统的交互是否正常,但是需要注意测试环境和测试数据的准备
静态分析:对第三方系统的接口文档进行静态分析,了解其功能,参数,返回值等,编写对应的测试用例进行测试。
这种方式适用于无法直接与第三系统集成的情况
13)用户拿到贷款金额后都是哪些环节会涉及到消费空指针异常
贷款金额拿到手之后,涉及到的消费环境包括:
还款;
日常消费;
投资;
空指针异常:通过是由于代码中使用了空对象或者空引用所导致的
检查代码中的空引用:在使用对象之前,确保对象不能为空
使用判断条件:在执行可能引发空指针异常之前,进行判断,避免空引用的情况发生
使用空值处理工具类;
14)除了索引列没有建好数据结构外,还有什么原因可能导致慢查询
数据库查询数据比较慢的原因有哪些?
查询条件过于复杂;
数据库表设计不合理;
数据库服务器资源不足;
网络延迟;
数据库统计信息不准确;
琐竞争;
硬盘IO瓶颈;
15)针对慢查询问题,可以通过什么方式进行优化?
优化查询语句,尽量简化查询条件,减少关联表或子查询的使用
确保开始对数据库表设计合理,进行规范化和冗余字段优化
检查数据库的资源配置,确保足够的cpu,内存,和磁盘空间
检查网络保持正常满足延迟和带宽的要求
收集和更新数据的统计信息,以便数据库优化查询计划
调整琐策略,避免琐竞争和阻塞
检查硬盘性能,优化IO操作
16)pytest框架相关的问题点
如何跳过一条用例?
使用pytest框架中的mark标记装饰器的skip来跳过该用例
在用例上面写上跳过装饰器
有条件跳过
无条件跳过
Pytest前置、后置函数简单介绍下?
经常使用pytest中的fixture装饰器来定义前置和后置函数
前置操作:初始化数据,创建测试环境,查询数据库
后置操作:进行一些清理工作,比如关闭数据库连接,删除测试文件,关闭驱动
Pytest如何重新运行用例?
可以使用pytest插件repeat来实现用例重复执行
插件安装成功之后,可以在命令行添加-n 3参数,可以重复执行3次
Pytest中如何参数化?
pytest标记mark中提供了装饰器parameterize来实现参数化;
装饰器的参数为变量名和取值列表,用例会根据取列表自动化执行多次;
用例的形参以及实参需要写在参数化的括号里面;
实参使用的数据类型就是列表嵌套列表或者元组;
形参使用的是字符串类型;
简单描述Pytest夹具fixture()
经常使用pytest中的fixture装饰器来定义前置和后置函数
前置操作:初始化数据,创建测试环境,查询数据库
后置操作:进行一些清理工作,比如关闭数据库连接,删除测试文件,关闭驱动
下面是我整理的2023年最全的软件测试工程师学习知识架构体系图 |
一、Python编程入门到精通
二、接口自动化项目实战
三、Web自动化项目实战
四、App自动化项目实战
五、一线大厂简历
六、测试开发DevOps体系
七、常用自动化测试工具
八、JMeter性能测试
九、总结(尾部小惊喜)
尽管路途坎坷,但只要心怀信念,勇敢前行,追求自己的梦想,就能超越极限,创造奇迹,成为那个不断进步、永不放弃的无畏战士。
在人生的舞台上,坚持不懈地追求梦想,超越困难与挑战,才能收获真正的成长与成功。相信自己,勇往直前,你将书写属于自己的壮丽篇章。
不论遇到怎样的风雨和困难,只要心怀信念,坚持奋斗,每一次努力都离梦想更近一步。相信自己的能力,勇敢追逐,你将创造出属于自己的辉煌人生。
这篇关于【软件测试面试题】老鸟整理,一线大厂真实面试题汇总解析...的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!