软件测试面试题 —— 整理与解析(3)

2023-09-22 10:00:00

在这里插入图片描述

 
 

在这里插入图片描述
😏作者简介:博主是一位测试管理者,同时也是一名对外企业兼职讲师。
📡主页地址:【Austin_zhai】
🙆目的与景愿:旨在于能帮助更多的测试行业人员提升软硬技能,分享行业相关最新信息。
💎声明:博主日常工作较为繁忙,文章会不定期更新,各类行业或职场问题欢迎大家私信,有空必回。

在这里插入图片描述

 
 

1. 接上回

在这里插入图片描述
  我们接着上次的内容继续来整理与解析一些比较高频的测试行业面试题,大家可以通过面试题内的一些解析再结合自己的真实工作经验来进行答题思路的提取、整理。友情提示:硬背答案虽可,但容易翻车哦。

 
 

2. 题目解析

在这里插入图片描述
 

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

  三种方法自不必多说,自然是隐式等待、显示等待、强制等待。隐式等待implicitly_wait()是全局性的等待方式,一旦使用将会适用于每个元素定位操作,而且他无法设置等待条件,基于这两个特性其实使用的时候是需要根据实际场景进行酌情使用的,不然基于其方法的特性可能会导致某些潜在的性能影响,另外隐式等待一旦出错或找不到元素也不会抛出异常。显示等待WebDriverWait()则与隐式等待不同,它更加有明确的针对性,因为它可以设定各类的条件(expected_conditions),针对目标元素的各类属性与状态(出现、消失、可点击、可见)来进行详细的等待触发条件设定;故而与隐式等待的影响范围也不同,它是针对元素级别的,等待后定位失败会抛出一个timeout的异常。至于强制等待,简单点来说就是三者中最简单最粗暴的等待方式,它是完全不关注页面中元素的各类条件,当然基于此等特性博主是不建议在我们的自动化测试脚本和框架中频繁出现强制等待这种方法的。

 

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

  selenium的底层原理就不简述了,之前的《web自动化测试入门篇01——框架介绍》已经完整的介绍了其运行工作原理。这里我们重点说一下二次封装,在我们的日常测试开发工作中经常会碰到一些框架提供的自带方法无法和现有业务完美契合的场景,为了追求测试的执行质量与高效或脚本框架的维护便利性,我们一般都会把原先的方法进行封装与抽象。包含以下但不限于:创建自定义库、抽象页面元素、异常处理、通用配置管理等。这个还是需要结合各自日常的开发工作内容与业务特点结合来进行铺开描述,推荐将一些框架开发中的技术难点与落地方案进行阐述,让面试官对于你们项目的真实性与工作内容可信度会有相当高的加成。

 

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

  其实简单来说分层理念就是将自动化测试代码拆分成不同的层次和模块功能,一般是基于软件中的分层架构原则,不同的分层的代码分别负责不同的任务和功能。采用分层理念的自动化测试框架都有着较高的管理便利性与低耦合的特点,也易于扩展与维护。如果是多人维护的化那就等同于开发项目中的模块分布,不同的测开可以专注于各自维护的模块,从而提高代码质量与效率。那么在我们的实际工作中一般会将自动化测试代码切分为3层,最底层的是一些通用的库与方法,如测试框架中基础的元素查找、页面跳转,另外根据测试对象的运行平台我们会将各类客户端的驱动也封装在这一层(web、app、桌面端等);如果涉及到数据访问与交互的也同样的设计在这一层。第二层我们存放被测业务与功能逻辑,比如会抽象一些方法,用于管理页面元素和页面业务操作,也就是我们常说的页面对象模型(PO);然后一些连贯的业务操作逻辑(登录、搜索、结算等)同样也会封装进PO;如果有对应的测试数据的话也可以放置在这一层。第三层就是放置我们的业务测试用例了,因为已经有了第二层的PO对象了,所以构建测试用例中的业务操作也已经是十分简单的事了。其实测试用例本身就应该是注重功能、场景与业务逻辑的,所以第一与第二层的代码实现技术与对象构成尽量要与其分隔开来。

 

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

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

 

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

  对于页面元素的成功保障率来说,应该是绝大多数测开人员日常最基本的课题了,在测试开发的脚本与框架中,随着需求日益的增加与改变,也会让代码的维护量变得越来越大,所以在代码中如何尽量保障元素的定位准确就变得极为的重要。那么在我们设计测试代码的过程中同样也需要用大量的策略来实现这些效果,比如正确高效的使用三种等待方法,或者与开发人员沟通并协商代码的编写规范,又或者使用完善的机制来保障代码的健壮性(尝试在代码出错的情况下抛出正确的提示或错误,或者尝试在首次错误的情况下尝试其他的执行或定位方式)。

 
 

3. 后话

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

更多推荐

大模型应用发展的方向|代理 Agent 的兴起及其未来(上)

“介绍了人工智能代理的历史渊源与演进,接着探讨了大型语言模型(LLMs)的发展,以及它们在知识获取、指令理解、泛化、规划和推理等方面所展现出的强大潜力。在此基础上,提出了一个以大型语言模型为核心的智能代理概念框架,该框架包括大脑、感知和行动这三个主要组成部分。”01—长期以来人工智能领域一直追求与人类水平相当甚至超越人

视频画面噪点太多难处理?AI工具一键消除

很多时候我们下载或者录制的视频画面都会有带噪点的问题,噪点就像密密麻麻的小颗粒,这样非常影响观看,这个时候我们需要使用视频降噪功能,视频降噪可以提升视频内容的保真。那么视频画面噪点如何处理呢?视频噪点,也称为视频噪声,是指由于各种原因导致的视频图像中出现的不规则的杂点、花点或小斑点。这些噪点会严重影响视频的观感和质量,

Java基于SpringBoot的校园博客系统

第一章:简介本系统主要根据博主的需求做出分析,让博主更好的在线查看校园博客系统信息等,管理员后台管理系统数据等功能。从这个系统的操作来说,能够有效的进行信息的添加、修改、查询、删除一些校园博客系统信息,在一定的程序上能够实现了自动化。设计该系统的主要目的是为实现通过网络来减少人力和财力的投入,不断提高工作效率。文章首发

强化学习从基础到进阶--案例与实践[7]:深度确定性策略梯度DDPG算法、双延迟深度确定性策略梯度TD3算法详解

【强化学习原理+项目专栏】必看系列:单智能体、多智能体算法原理+项目实战、相关技巧(调参、画图等、趣味项目实现、学术应用项目实现专栏详细介绍:【强化学习原理+项目专栏】必看系列:单智能体、多智能体算法原理+项目实战、相关技巧(调参、画图等、趣味项目实现、学术应用项目实现对于深度强化学习这块规划为:基础单智能算法教学(g

27、Flink 的SQL之SELECT (SQL Hints 和 Joins)介绍及详细示例(2-2)

Flink系列文章1、Flink部署、概念介绍、source、transformation、sink使用示例、四大基石介绍和示例等系列综合文章链接13、Flink的tableapi与sql的基本概念、通用api介绍及入门示例14、Flink的tableapi与sql之数据类型:内置数据类型以及它们的属性15、Flink

安防视频/视频汇聚平台EasyCVR使用onvif探测添加设备通道详细步骤来啦!

视频云存储/安防监控EasyCVR视频汇聚平台基于云边端智能协同,支持海量视频的轻量化接入与汇聚、转码与处理、全网智能分发、视频集中存储等。音视频流媒体视频平台EasyCVR拓展性强,视频能力丰富,具体可实现视频监控直播、视频轮播、视频录像、云存储、回放与检索、智能告警、服务器集群、语音对讲、云台控制、电子地图、H.2

基于SpringBoot的甘肃非物质文化网站设计与实现

目录前言一、技术栈二、系统功能介绍用户信息管理商品分类管理申请信息管理订单信息管理三、核心代码1、登录模块2、文件上传模块3、代码封装前言现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本甘肃非物质文化网站就是在这样的大环境下诞生,其可以帮助管理者在

数据分享|R语言分析上海空气质量指数数据:kmean聚类、层次聚类、时间序列分析:arima模型、指数平滑法...

全文链接:http://tecdat.cn/?p=30131最近我们被客户要求撰写关于上海空气质量指数的研究报告。本文向大家介绍R语言对上海PM2.5等空气质量数据(查看文末了解数据免费获取方式)间的相关分析和预测分析,主要内容包括其使用实例,具有一定的参考价值,需要的朋友可以参考一下(点击文末“阅读原文”获取完整代码

K8s的网络——Underlay和Overlay网络

0.基础知识1)网络7层基础知识在网络7层协议基础里,第一层物理链路;第二层是数据链路层,在第一层的基础上引入MAC地址做数据转发。MAC地址在局域网内具有唯一性,主机A发送数据时,会向局域网内进行广播,每个主机根据mac地址自动匹配。网桥、交换机都是工作在数据链路层。由MAC地址构建的网络可以叫以太网。在网络中接入设

K8S入门前奏之VMware虚拟机网络配置

为了能在本地搭建K8S的运行服务器,在个人电脑上安装了虚拟机VMware16版本,并且在阿里巴巴开源镜像站下载了CentOS-7操作系统:阿里巴巴开源镜像站做完一些列准备工作后,在虚拟机安装完CentOS-7操作系统后,需要对VMware虚拟机网络进行配置,让其满足我们搭建K8S的要求。查看物理机ip信息命令:ipco

HTML中的<canvas>元素

聚沙成塔·每天进步一点点⭐专栏简介⭐canvas元素⭐用途⭐示例⭐写在最后⭐专栏简介前端入门之旅:探索Web开发的奇妙世界欢迎来到前端入门之旅!感兴趣的可以订阅本专栏哦!这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发者,这里都将为你提供一个系统而又亲切的学

热文推荐