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

在这里插入图片描述

 
 

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

在这里插入图片描述

 
 

阅读目录

  • 1. 接上回
  • 2. 题目解析
    • 2.1 请介绍一下UI自动化测试中三种时间等待方法的区别
    • 2.2 selenium的运行原理是什么?工作中是否有做过相关的二次封装?
    • 2.3 如何理解自动化测试中的分层理念,在实际工作中该如何实现?
    • 2.4 自动化测试过程中你遇到过哪些问题,是如何解决的?
    • 2.5 在测试开发过程中如何保障被测元素的定位成功率?
  • 3. 后话

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. 后话

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

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

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

相关文章

redis的基础底层篇 zset的详解

一 zset的作用以及结构 1.1 zset作用 redis的zset是一个有序的集合,和普通集合set非常相似,是一个没有重复元素的字符串集合。常用作排行榜等功能,以用户 id 为 value,关注时间或者分数作为 score 进行排序。 1.2 zset的底层结…

Maven的介绍和使用

Maven的作用 项目构建 依赖管理:避免资源间版本冲突问题 统一开发结构:提供统一的项目结构 Maven的使用 下载完压缩包之后放在合适的目录下,其中apache-maven-3.8.8文件夹是安装的maven,下面的repository是本地仓库&#xff…

设计模式Java实战

文章目录 一、前置1.1 目的1.2 面向对象1.3 接口和抽象类 二、七大设计原则2.1 单一职责2.2 接口隔离原则2.3 依赖倒转原则2.4 里氏替换原则2.5 开闭原则2.6 不要重复原则2.7 迪米特最少知道法则 三、23种设计模式3.1创建型:创建对象3.1.1 单例模式定义最佳实践场景…

【送书】实现可观测性平台的技术要点是什么?

文章目录 实现可观测性平台的技术要点是什么?兼容全域信号量所谓全域信号量有哪些?统一采集和上传工具统一的存储后台自由探索和综合使用数据总结 实现可观测性平台的技术要点是什么? 随着可观测性理念的深入人心,可观测性平台已经开始进入了落地阶段…

Spring学习笔记2 Spring的入门程序

Spring学习笔记1 启示录_biubiubiu0706的博客-CSDN博客 Spring官网地址:https://spring.io 进入github往下拉 用maven引入spring-context依赖 写spring的第一个程序 引入下面依赖,好比引入Spring的基本依赖 <dependency><groupId>org.springframework</groupId&…

使用vue-cli搭建spa项目

目录 什么是vue-cli 安装vue-cli 使用脚手架vue-cli(来构建项目&#xff09; vue项目结构的说明 基于spa项目完成路由 基于spa项目完成嵌套路由 什么是vue-cli Vue CLI是一个官方发布的用于快速搭建Vue.js项目的命令行工具。它提供了一套交互式的脚手架&#xff0c;可以帮…

计算物理专题----随机游走实战

计算物理专题----随机游走实战 Problem 1 Implement the 3D random walk 拟合线 自旋的 拟合函数&#xff08;没有数学意义&#xff09; 参数&#xff1a;0.627,3.336,0.603&#xff0c;-3.234 自由程满足在一定范围内的均匀分布以标准自由程为单位长度&#xff0c;…

数据结构 - 线性表(顺序表)

线性表是什么 线性表是包含若干数据元素的一个线性序列&#xff0c;记为&#xff1a; L (a0&#xff0c;…ai-1&#xff0c;ai,ai1,…an-1) L为表名&#xff0c;ai&#xff08;0≤ i ≤n-1&#xff09;为数据元素&#xff1b;n为表长&#xff0c;n>0时&#xff0c;线性表…

MySQL全局优化与Mysql8.0新增特性

Mysql全局优化总结 ​ 从上图可以看出SQL及索引的优化效果是最好的&#xff0c;而且成本最低&#xff0c;所以工作中我们要在这块花更多时间。 补充一点配置文件my.ini或my.cnf的全局参数&#xff1a; 假设服务器配置为&#xff1a; CPU&#xff1a;32核内存&#xff1a;6…

vue+express、gitee pm2部署轻量服务器

一、代码配置 前后端接口都保持 127.0.0.1:3000 vue创建文件 pm2.config.cjs module.exports {apps: [{name: xin-web, // 应用程序的名称script: npm, // 启动脚本args: run dev, // 启动脚本的参数cwd: /home/vue/xin_web, // Vite 项目的根目录interpreter: none, // 告诉…

burpsuite+proxifier小程序抓包

burpsuiteproxifier小程序抓包 安装bp证书到系统 配置

推荐一款可以快速抽取sap数据的ETL工具

使用SAP在数据分析上面临的问题 SAP Enterprise Resource Planning (ERP) 是国内最广泛使用的ERP系统之一。然而&#xff0c;使用SAP ERP系统面临着一些数据分析不方便&#xff0c;数据导出困难等问题&#xff1a; 数据集成困难&#xff1a;将SAP中的数据整合到其他系统或本地…

局部变量,全局变量与内存

本文会使用IDA分析局部变量&#xff0c;全局变量在内存的存储 目录 使用IDA分析局部变量 使用IDA分析全局变量 总结 使用IDA分析局部变量 #include <stdio.h>int main() {int nNum 1;float fNum 2.5;char ch A;printf("int %d, float %f, char %c", nNu…

opencv dnn模块 示例(16) 目标检测 object_detection 之 yolov4

博客【opencv dnn模块 示例(3) 目标检测 object_detection (2) YOLO object detection】 测试了yolov3 及之前系列的模型&#xff0c;有在博客【opencv dnn模块 示例(15) opencv4.2版本dnn支持cuda加速&#xff08;vs2015异常解决&#xff09;】 说明了如何使用dnn模块进行cuda…

vue2中年份季度选择器(需要安装element)

调用 <!--父组件调用--><QuarterCom v-model"quart" clearable default-current/> 组件代码 <template><div><span style"margin-right: 10px">{{ label }}</span><markstyle"position:fixed;top:0;bottom:0…

路由器ip地址设置

当你使用路由器时&#xff0c;你可以按照以下步骤设置路由器的IP地址。这样可以确保你的网络连接正常并允许其他设备连接到你的路由器。 **步骤一&#xff1a;登录路由器管理界面** 首先&#xff0c;你需要登录到路由器的管理界面。打开你的浏览器&#xff0c;并输入路由器的…

本地Docker Registry远程连接,为你带来高效便捷的镜像管理体验!

Linux 本地 Docker Registry本地镜像仓库远程连接 文章目录 Linux 本地 Docker Registry本地镜像仓库远程连接1. 部署Docker Registry2. 本地测试推送镜像3. Linux 安装cpolar4. 配置Docker Registry公网访问地址5. 公网远程推送Docker Registry6. 固定Docker Registry公网地址…

ChatGLM Pytorch从0编写Transformer算法

预备工作 # !pip install http://download.pytorch.org/whl/cu80/torch-0.3.0.post4-cp36-cp36m-linux_x86_64.whl numpy matplotlib spacy torchtext seaborn import numpy as np import torch import torch.nn as nn import torch.nn.functional as F import math, copy, tim…

【漏洞复现】企望制造 ERP命令执行

漏洞描述 由于企望制造 ERP comboxstore.action接口权限设置不当&#xff0c;默认的配置可执行任意SQL语句&#xff0c;利用xp_cmdshell函数可远程执行命令&#xff0c;未经认证的攻击者可通过该漏洞获取服务器权限。 免责声明 技术文章仅供参考&#xff0c;任何个人和组织…

golang入门笔记——pprof性能分析

文章目录 简介runtime/pprof的使用命令行交互网络服务性能分析pprof与性能测试结合压测工具go-wrk 简介 golang性能分析工具pprof的8个指标 1.性能分析的5个方面&#xff1a;CPU、内存、I/O、goroutine&#xff08;协程使用情况和泄漏检查&#xff09;、死锁检测以及数据竟态…