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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

总结

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

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

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【若依前后端分离】设置已选中内容条数

示例: 将已选中n行加在了分页中,有分页才可以选择已选中多少行。如果想要不加分页也可以展示已选中n行,自行修改部分代码即可。 关键代码: 这使用了span,可使用其他元素 使用了Vue.js的v-if指令来根据条件是否渲染该…

前端JS必用工具【js-tool-big-box】,时间日期转换学习一

这一小节,我们学习一下 js-tool-big-box 这个npm 前端工具库,关于时间日期格式转换的一部分,后续还会有。 目录 1 安装 2 项目中引入 3 工具使用 3.1 年月日时分秒的单独处理 3.2 以上方法中第一个参数 3.3 日期时间的转换 3.4 更个…

6.C++:继承

一、继承 //1.类中的保护和私有在当前类中没有差别&#xff1b; //2.在继承后的子类中有差别&#xff0c;private在子类中不可见&#xff0c;所以用protected&#xff1b; class person { public:void print(){cout << "name:" << _name << endl;c…

#是啥,v-slot插槽的区别

在 Vue 3.x 中&#xff0c;您还可以使用 # 简写来代替 v-slot v-slot&#xff1a; v-slot 是 Vue 2.6 和 Vue 3.x 推荐的新的插槽语法。 v-slot 用于具名插槽&#xff0c;它允许您为插槽指定名称&#xff0c;并允许您传递具名插槽的内容。 例如&#xff0c;以下是使用 v-slot…

设计模式: 行为型之备忘录模式(13)

备忘录模式概述 备忘录模式&#xff08;Memento Pattern&#xff09;是一种行为设计模式&#xff0c;它允许在不破坏封装性的前提下捕获一个对象的内部状态&#xff0c;并在对象之外保存这个状态这样以后就可将该对象恢复到原先保存的状态。这种类型的设计模式属于行为模式在备…

【Qt 学习笔记】Qt常用控件 | 按钮类控件Push Button的使用及说明

博客主页&#xff1a;Duck Bro 博客主页系列专栏&#xff1a;Qt 专栏关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ Qt常用控件 | 按钮类控件Push Button的使用及说明 文章编号&#xff1…

2024年华中杯数学建模竞赛全攻略:ABC题思路解析+代码实现+数据集+论文撰写+全程答疑

引言 &#xff08;比赛后所有题目资料在文末获取呀&#xff09; 华中杯数学建模竞赛是数学建模领域的一项重要赛事&#xff0c;它不仅考验参赛者的数学建模能力&#xff0c;还考验了编程技能、数据分析能力和论文撰写能力。为了帮助参赛者更好地准备2024年的竞赛&#xff0c;本…

libftdi1学习笔记 6 - MPSSE QSPI

目录 1. 写 2. 读 3. 验证 QSPI采用4根线为数据口&#xff0c;SCK和CS保留同样的功能&#xff0c;一般&#xff14;个数据线采用MSB的方式发送数据&#xff0c;即高位在前。 QSPI只能是半双工工作。 1. 写 int qspiWriteBytes(uint8_t port, uint8_t* wrBuf, uint16_t l…

RAG学习笔记系列(一)

RAG 介绍 RAG 全称为 Retrieval Augmented Generation&#xff08;检索增强生成&#xff09;。是基于LLM构建系统的一种架构。 RAG 基本上可以理解为&#xff1a;搜索 LLM prompting。根据用户的查询语句&#xff0c;系统会先使用搜索算法获取到相关内容作为上下文&#xff0…

JavaScript如何设置定时器,怎么清除定时器

在JavaScript中&#xff0c;你可以使用setTimeout()和setInterval()函数来设置定时器&#xff0c;以及使用clearTimeout()和clearInterval()函数来清除定时器。 setTimeout() setTimeout()函数用于在指定的毫秒数之后执行一个函数或计算表达式。它返回一个表示定时器的ID&…

pnpm 报错: ERR_PNPM_META_FETCH_FAIL

今天突然遇到一个报错&#xff0c;pnpm 报错&#xff1a; ERR_PNPM_META_FETCH_FAIL  GET https://registry.npm.taobao.org/vue%2Fcli-service: request to https://registry.npm.taobao.org/vue%2Fcli-service failed, reason: certificate has expired问题原因&#xff1a;…

when语法学习及判断主机别名实例

目录 1、概念 2、实例配置 2.1 编写剧本体验when的用法 2.2 执行剧本文件 2.3 使用ansible临时命令进行测试 1、概念 when是用于判断的语法&#xff0c;将其用在每个动作的下方进行判断&#xff0c;使得只有在满足条件才会执行。 2、实例配置-判断主机别名 在每个客户端中…

移动端uniapp下载文件并保存到手机,下载准考证保存到手机

移动端uniapp下载文件并保存到手机&#xff0c;下载准考证保存到手机 1. 使用uni.request下载文件 uni.request({ url: http://example.com/file_url, // 要下载的文件的URL method: GET, responseType: arraybuffer, // 响应类型为arraybuffer (二进制形式) success: functi…

Compose 基础组件

文章目录 Compose 基础组件Modifier 修饰符Scaffold 脚手架 Compose 基础组件 Modifier 修饰符 在传统视图体系中&#xff0c;使用XML文件描述组件的样式&#xff0c;而在Compose中使用Modifier&#xff0c;每个基础的Composable组件都有一个modifier参数&#xff0c;通过Mod…

使用CCS软件查看PID曲线

在刚开始学习PID的时候&#xff0c;都需要借助PID的曲线来理解比例&#xff0c;积分&#xff0c;微分这三个参数的具体作用。但是这些曲线生成一般都需要借助上位机软件或者在网页上才能实现。如果是在单片机上调试程序的话&#xff0c;想要看曲线&#xff0c;一般就是通过串口…

【YOLOv5】使用yolov5训练模型时报错合集

文章目录 前言问题1 -- VsCode终端无法进入Anaconda创建的虚拟环境【问题描述】【问题分析】【解决方式】方法一方法二 问题2 -- 怎么在VsCode中为项目配置Anaconda创建的虚拟环境【问题描述】【解决方式】 问题3 -- yolov5训练模型时报错RuntimeError: result type Float cant…

web自动化测试系列-selenium常用方法定位(五)

目录 1.selenium的定位方法 2.操作案例 3.实现代码 前面我们介绍了html页面元素主要是通过标签和属性来进行定位 &#xff0c;只要满足唯一&#xff0c;无论是标签还是属性 &#xff0c;都能进行定位 。当然 &#xff0c;我们要通过selenium来进行定位 &#xff0c;同样还是…

富格林:利用正规方法提升出金收益

富格林悉知&#xff0c;黄金现货是众多黄金产品当中交易规则优势较为明显的存在&#xff0c;尤其是近段时间的行情走势十分强劲&#xff0c;这使得投资者们获得了更充足的做单机会。然而&#xff0c;要想在炒黄金的市场上取得成功&#xff0c;除了对市场有深刻的理解外&#xf…

总结:css中水平居中

css水平居中功能很常用&#xff0c;但一直没有系统的总结过&#xff0c;今天来总结水平下常见的方式&#xff1a; 1. 文本或内联元素的居中&#xff1a; 使用 text-align: center; 属性可以让内部的文本和内联元素在容器中水平居中。 .container {text-align: center; }2. 块…

小公司应该选择docker swarm还是k8s

对于小公司选择 Docker Swarm 还是 Kubernetes&#xff08;简称 K8s&#xff09;作为容器编排平台&#xff0c;应考虑以下几个关键因素&#xff1a; 技术复杂度与学习曲线&#xff1a; Docker Swarm&#xff1a;因其与 Docker 紧密集成&#xff0c;使用 Docker Compose 语法作…