2024最新面试跳槽,软件测试面试题的整理与解析

今天接着来说说测试工程师面试比较高频的面试题,大家可以通过面试题内的一些解析再结合自己的真实工作经验来进行答题思路的提取、整理。

硬背答案虽可,但容易翻车哦。能够举一反三才是重点!

1:请介绍一下UI自动化测试中三种时间等待方法的区别

三种方法自不必多说,自然是隐式等待、显示等待、强制等待。

隐式等待implicitly_wait()是全局性的等待方式,一旦使用将会适用于每个元素定位操作,而且他无法设置等待条件,基于这两个特性其实使用的时候是需要根据实际场景进行酌情使用的,不然基于其方法的特性可能会导致某些潜在的性能影响,另外隐式等待一旦出错或找不到元素也不会抛出异常。

显示等待WebDriverWait()则与隐式等待不同,它更加有明确的针对性,因为它可以设定各类的条件(expected_conditions),针对目标元素的各类属性与状态(出现、消失、可点击、可见)来进行详细的等待触发条件设定;故而与隐式等待的影响范围也不同,它是针对元素级别的,等待后定位失败会抛出一个timeout的异常。

至于强制等待,简单点来说就是三者中最简单最粗暴的等待方式,它是完全不关注页面中元素的各类条件,当然基于此等特性博主是不建议在我们的自动化测试脚本和框架中频繁出现强制等待这种方法的。

2:selenium的运行原理是什么?工作中是否有做过相关的二次封装?

selenium的底层原理就不简述了,之前的《web自动化测试入门篇01——框架介绍》已经完整的介绍了其运行工作原理。

这里我们重点说一下二次封装,在我们的日常测试开发工作中经常会碰到一些框架提供的自带方法无法和现有业务完美契合的场景,为了追求测试的执行质量与高效或脚本框架的维护便利性,我们一般都会把原先的方法进行封装与抽象。

包含以下但不限于:创建自定义库、抽象页面元素、异常处理、通用配置管理等。这个还是需要结合各自日常的开发工作内容与业务特点结合来进行铺开描述,推荐将一些框架开发中的技术难点与落地方案进行阐述,让面试官对于你们项目的真实性与工作内容可信度会有相当高的加成。

 3:如何理解自动化测试中的分层理念,在实际工作中该如何实现?

其实简单来说分层理念就是将自动化测试代码拆分成不同的层次和模块功能,一般是基于软件中的分层架构原则,不同的分层的代码分别负责不同的任务和功能。

采用分层理念的自动化测试框架都有着较高的管理便利性与低耦合的特点,也易于扩展与维护。如果是多人维护的化那就等同于开发项目中的模块分布,不同的测开可以专注于各自维护的模块,从而提高代码质量与效率。

那么在我们的实际工作中一般会将自动化测试代码切分为3层:

最底层的是一些通用的库与方法,如测试框架中基础的元素查找、页面跳转,另外根据测试对象的运行平台我们会将各类客户端的驱动也封装在这一层(web、app、桌面端等);如果涉及到数据访问与交互的也同样的设计在这一层。

第二层我们存放被测业务与功能逻辑,比如会抽象一些方法,用于管理页面元素和页面业务操作,也就是我们常说的页面对象模型(PO);然后一些连贯的业务操作逻辑(登录、搜索、结算等)同样也会封装进PO;如果有对应的测试数据的话也可以放置在这一层。

第三层就是放置我们的业务测试用例了,因为已经有了第二层的PO对象了,所以构建测试用例中的业务操作也已经是十分简单的事了。其实测试用例本身就应该是注重功能、场景与业务逻辑的,所以第一与第二层的代码实现技术与对象构成尽量要与其分隔开来。

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

这种类似的开放式面试题相信大多数面试者一定都碰到过,这里主要是考察应聘者对于自身自动化测试工作经验的一个优化与总结能力。

这里就不多举例了,毕竟每个从业者在各自日常测试项目中碰到的问题五花八门,不过需要提醒的是,对于自身的工作中开发难点与技术攻坚相关事宜的总结与归纳一定要定期去执行,哪怕平时没有这样的习惯也最好去刻意的练习一下,这样才不至于面试时哪怕做了很多项目却依然脑中一片空白,浪费了大好的项目经验。

5:在测试开发过程中如何保障被测元素的定位成功率?

对于页面元素的成功保障率来说,应该是绝大多数测开人员日常最基本的课题了,在测试开发的脚本与框架中,随着需求日益的增加与改变,也会让代码的维护量变得越来越大,所以在代码中如何尽量保障元素的定位准确就变得极为的重要。

那么在我们设计测试代码的过程中同样也需要用大量的策略来实现这些效果,比如正确高效的使用三种等待方法,或者与开发人员沟通并协商代码的编写规范,又或者使用完善的机制来保障代码的健壮性(尝试在代码出错的情况下抛出正确的提示或错误,或者尝试在首次错误的情况下尝试其他的执行或定位方式)。

总结

总体来说对于测试开发的面试内容,各个用人单位其实关注的除了相关的技术栈与项目经验之外,其实更需要的是测开人员自身对于项目业务与行业相关的整体解决的认知与思维,这点与软件开发人员的要求会有略微的不同,毕竟作为测试人员来说,整体把握软件质量保障情况是其中的重中之重。

行动吧,在路上总比一直观望的要好,未来的你肯定会感 谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入扣群: 320231853,里面有各种软件测试+开发资料和技术可以一起交流学习哦。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/556819.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

解线性方程组——上三角、下三角,回代算法 | 北太天元

解上三角(回代) a i i ≠ 0 a_{ii\neq0} aii0​ , i 1 , 2 , … , n i1,2,\ldots,n i1,2,…,n a 11 x 1 a 12 x 2 ⋯ a 1 n x n b 1 a 22 x 2 ⋯ a 2 n x n b 2 ⋯ a n n x n b n \begin{aligned} a_{11}x_1a_{12}x_2\cdotsa_{1n}x_n&b_1 \\ a_{22}x_2\cdotsa_…

从零开始搭建社交圈子系统:充实人脉的最佳路径

线上交友圈:拓展社交网络的新时代 线上交友圈是社交网络的新引擎,提供了更广泛的社交机会,注重共同兴趣的连接,强调多样性的社交形式,更真实地展示自己,让朋友更全面地了解我们的生活状态。虽然虚拟交往存在…

【智能算法】饥饿游戏搜索算法(HGS)原理及实现

目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.结果展示4.参考文献 1.背景 2021年,Yang等人受到自然界饥饿驱动的活动和动物的行为选择启发,提出了饥饿游戏搜索算法(Hunger Games Search, HGS)。 2.算法原理 2.1算法思想 HGS…

SPN的相关利用(下)

Kerberoasting kerberos通信过程: 在TGS-REQ中会发出ST服务票据获取servicePrincipalName(SPN),该SPN是用户或者机器用户注册的。TGS-REP中TGS会返回给user一个ST,而ST是由user请求的server的密码进行加密的,我们可以从TGS-REP中…

RT-Thread时钟管理

操作系统需要通过时间来规范其任务,主要介绍时钟节拍和基于时钟节拍的定时器。 时钟节拍 任何操作系统都需要提供一个时钟节拍,以供系统处理所有和时间有关的事件,如线程的延时、线程的时间片轮转调度以及定时器超时等。 RT-Thread 中,时钟节拍的长度可以根据 RT_TICK_P…

Module外贸主题开心版下载-v5.7.0版本WordPress企业模板

主题下载地址:Module外贸主题开心版下载-v5.7.0版本 Module主题介绍:采用全新模块化开发,首页模块可视化拖拽自由组合,可自定义搭建出不同行业适用的企业网站。同时主题全面支持WPML多语言切换,可轻松搭建外贸网站。W…

JetBrains Rider 2024.1.1 .NET集成开发环境 mac/win

JetBrains Rider是一个新的跨平台的基于Inte lliJ平台和ReSharper的. NET集成技术开发工作环境。 Rider提供了大量人工智能系统代码进行编辑管理功能,如不同类型的代码可以完成、自动设备名称发展空间设计导入、自动通过插入大括号和突出研究显示信息匹配作为分隔符…

torchEEG工具箱

文章信息: 题目:TorchEEGEMO:基于脑电图的情绪识别深度学习工具箱 期刊:Expert Systems with Applications 环境:pytorch 1.11.0 CUDA 11.3 摘要: ​ 一个python工具箱TorchEEG,将工作流程分为五个模块…

软考 - 系统架构设计师 - 架构风格例题

问题一: 什么是软件架构风格? 软件架构风格指特定软件系统组织方式的惯用模式。组织方式描述了系统的组成构件和这些构件的组织方式。惯用模式反映了众多系统所共有的结构和语义。 集成开发环境与用户的交互方式 (实际上询问在交互方面&am…

干货-PMP常考知识点,都给你们汇总到这里了

PMP认证考试考来考去,其实就是那些知识点。把这些知识点吃透了,你会发现做题稳准狠。不仅速度快,正确率也有很大的提升。 我们结合了10几年PMP备考辅导经验,给大家梳理了这些PMP常考的知识点集锦,希望能帮到大家&#…

css中all 的使用记录

all 在 CSS 中是一个特殊的属性值,它允许我们重置元素或元素父级的所有属性到其初始值、继承的值或取消设置的值。这一属性非常有用,特别是在需要快速重置多个属性的情况下,它避免了逐一设置每个属性的繁琐过程。 先看一下浏览器兼容性&#…

【SAP HANA 15】SQL锁表 (查询,解锁)

锁表查看 --锁表检查语句 SELECT C.CONNECTION_ID,PS.STATEMENT_STRINGFROM M_CONNECTIONS C JOIN M_PREPARED_STATEMENTS PSON C.CONNECTION_ID PS.CONNECTION_ID AND C.CURRENT_STATEMENT_ID PS.STATEMENT_IDWHERE C.CONNECTION_STATUS RUNNINGAND C.CONNECTION_TYPE Re…

第二届数据安全大赛暨首届“数信杯”数据安全大赛数据安全积分争夺赛-东区预赛部分WP

这里写目录标题 检材下载:1.理论题2.数据安全:pb:Sepack: 3.数据分析:数据分析(1)数据分析1-1:数据分析1-2:数据分析1-3: 数据分析(3)数据分析3-1:数据分析3-2&#xff1…

2024年04月18日优雅草便民tools开源-git以及dcloud同步-长期更新

优雅草小工具-数据来自优雅草api赋能 优雅草小工具-数据来自优雅草api赋能-优雅草便民工具是一款由成都市一颗优雅草科技有限公司打造的便民查询公益工具,2024年1月17日正式发布v1.0.0版本,本工具为了方便大众免费使用,本生活小工具会陆续加入…

Oracle——领先的企业级数据库解决方案

一、WHAT IS ORACLWE: ORACLE 数据库系统是美国 ORACLE 公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S 体系结构的数据库之一,ORACLE 通常应用于大型系统的数…

C#基于SSE传递消息给Vue前端实现即时单向通讯

一、简述 通常前端调用后端的API,调用到了,等待执行完,拿到返回的数据,进行渲染,流程就完事了。如果想要即时怎么办?如果你想问什么场景非要即时通讯,那可就很多了,比如在线聊天、实…

gpt能生成ppt吗

gpt能生成ppt吗 GPT是一个高度通用的工具,适用于多种场景和领域,制作ppt只是它强大功能的冰山一角,具体包括: 信息查询与解释: 提供科学、技术、历史、文化等领域的详细解释和背景信息。 解答疑问,帮助…

前端css中transition的使用

前端css中transition的使用 一、前言二、transition的4个属性三、例子1.源码12.源码1运行效果 四、结语五、定位日期 一、前言 CSS中的transition(过渡),根据字面意思就可以理解成一种变化状态的过程。当我们有一个方形,我们想让…

Java在MySQL数据报错Data truncation: Data too long for column ‘**‘ at row 1 处理

问题 在Java SpringBoot MyBatis 框架的项目中,一切正常,不过在一个接口的参数字段传入过大的数据就会报此错误: 请求常:org.springframework.dao.DataIntegrityViolationException: Error updating database.Cause:com.mysql.cj.jdbc.excep…

漫画项目管理 | 遇到强势甲方的不合理项目需求,我该怎么办?

🤷‍♂️ 遇到甲方强烈要求不合理需求怎么办? 🤸‍♂️看似离谱的功能客户却一定要加? 🤹‍♂️时间紧任务重,甲方却“什么都想要“? 🤾‍♂️明明初稿很完美,却被要求改来改去?** 👨‍…