软件测试必问的面试题(答案+文档)

news2024/12/23 14:15:14

前言

(第一个就刷掉一大批人)

有很多“会自动化”的同学来咨询技术问题,他总会问到我一些元素定位的问题。元素定位其实都不算自动化面试的问题。

一般我都会问:你是定位不到吗?通常结果都是说确实定位不到。

做自动化,首先你得保证一点,没有你定位不到的元素,这个你才能做UI自动化。如果有些元素都定位不到,你说你拿什么去点?就好像你的手你的鼠标点不到需要的元素,就没法去操作。

第一个,自动化分为UI自动化与接口自动化

UI自动化又包括APP自动化、H5、小程序等

接口自动化也包括很多,你用什么类型的工具做自动化?HTTP类型接口自动化DUBBO类型接口自动化等

所以这还只是自动化方面。

自动化你怎么去做的自动化运行环境、自动化如何分布式、批量运行如何持续集成这里面问题太多了,给大家简单的看几个典型面试题

在这里插入图片描述

同时,我也为大家准备了一份软件测试视频教程(含面试、接口、自动化、性能测试等),就在下方,需要的可以直接去观看,也可以直接点击文末小卡片免费领取资料文档

软件测试视频教程观看处:

2023最新【软件测试面试300问】面试八股文教程,涵盖自动化测试/接口测试/性能测试/测试开发等内容

 

题目解析 

大家看一看这十个问题能答出几个? 

1、三种等待时间的区别和场景应用?

强制等待、隐式等待、显示等待。

在这里插入图片描述
第一个强制等待:就是说,当我去点击


这是一个输入用户名字的一行代码 

当我把这两行代码

在这里插入图片描述

 放到这里

在这里插入图片描述
不管你这个元素,有没有在页面出现我都等3秒,我再去操作它。是强制,命令式的。但是这些往往一般都只用在脚本的调试,不会真正的出现在自动化测试用例中。你想一想,一个用例十行你加了十个,一个等三秒那十个等三十秒,一个用例三十秒是不可取的。

第二个

隐式等待:一般用在什么地方呢?

在这里插入图片描述 这个就是隐式等待。

比如说隐式等待它是一个什么样的区别?就是说你不管点哪里它只要写一次就可以了。像time.sleep(3)你每次都要去写,像driver .implicitly_wait( 3)#一次就好了。它每次去点都会等待三秒,那中间这个三秒它在等什么呢?

重点来了,一个页面它可能有非常多的图片,jss、css、img。就是再加载jss的图片,举个例子我想点击搜索按钮

在这里插入图片描述
隐式等待的三秒钟就是在等待这个页面的所有js和图片加载出来。就算你搜索按钮出来了,我还要去等js、img加载完成。理解了吗?软件测试全栈内容欢迎来公众号一诺教育软件测试交流学习。那么如果三秒钟之类jss、css没有加载完成我还是不会去点你,这就是一个隐式等待。它虽然很方便但是有瑕疵。

第三个:

那么什么叫显示等待呢?

字面意思就是和隐式等待相反。一个是隐藏的一个是非常明显的,我想要去做什么就做什么,不需要等待。

在这里插入图片描述
当这个搜索按钮一显示出来,我马上就去点它。 

我不管页面的其他LOGO、图片有没有加载出来,只要我的想要的比如搜索按钮出来了,我就马上去点击它。

这个题目是做自动化测试非常重要也非常基础的问题,所以我把这个问题排在了第一。

这个问题以后被问到,就难不到你了。

听懂了的朋友,点赞支持一波~

2、之前项目做过自动化测试吗?如何推进的?

工资想超过15K,这个问题是必问的!

不要看这个问题很简单?这个问题其实有点难度的。面试官问你有没有做过自动化测试,那么你肯定不能简单的说:额~我做过!

你要告诉面试官,你如何自动化开展到推进。如何推进的非常重要,你如何开始自动化入和推进,咱们不要片面的去回答,会或者不会。

比如你这样回答:我会,之前公司我们的项目接口方面,前端UI方面我是用selenium这个开源框架加上Python基础架构来实现我的自动化来实现的。

实现原理:用一些单元测试框架unittest去组织我们的测试用例,(或者用Pytest)

数据驱动:比如说我们用execl表去做一个数据驱动,然后我们用到一些关键字驱动,还有你在做自动化你遇到哪一些问题,大家一定要准备几个自动化遇到的问题!这个即使你不说,也是必问的!然后就是这些问题你是如何解决的。

给大家分享一个公式:

如何解决这些问题呢

对你公司项目产生了什么样的价值?像我去面试的时候,我就会说成为我们公司的一个固定资产。

不管是开发、产品、运营,都会用到咱们的这个自动化脚本。可以帮我们线上监控,帮我们自动化回归,帮我们造数据,帮我们跑数据,提高了迭代效率,释放了很多人力。

自动化测试有什么用,是对自动化最大的误解。

很多做软件测试的同行,他没有用过确实感受不到。我之前开始做自动化的时候,在一个人工智能的公司。产品上线之前,CTO只问我一句话,能不能上?因为我这边有很多自动化项目已经不停的在回归,然后功能测试也测了。所以功能+自动化结合就能很自信的上线。它校验出了很多隐藏的BUG,很多因为代码提交、新功能的开发产品的BUG。

3、RF框架用过吗?关键字驱动的原理?如何开发系统关键字?

4、selenium的底层核心原理是什么?有没有做过二次封装?

5、requests中的session会话管理的作用是什么?

6、unittest/pytest有什么区别?

7、谈谈你对自动化分层思想的理解?

其实这句话,经常会被写到一些大型招聘网上去。你会自动化而且还要会自动化分层思想。

做自动化和做功能测试一样,那么它分为哪些东西?

第一个:自动化用例它有一个业务层/业务逻辑

比如登录的业务逻辑是什么?

输入用户名-输入密码-点击登录按钮

分层:
业务逻辑

关键字驱动:

业务层的关键字,比如说你登录,那么你要去做其他的用例是不是会用到登录这个关键字。这个业务也封装成一个关键字,你其他的一个用例是不是可以用到它了?那接口,接口之间不是有很多的关联对吧,如果你把下单这些接口弄在一起,退货发货这些弄在一起,这就是一个业务层的关键字。

关键字驱动不仅有业务层,还有逻辑层。比如说你需要用到很多的公共方法,比如说随机数、随机号码、数据库等等。大家都能用到的,就都封装成一个关键字。

二次封装

click()

有时候我们需要根据需求去二次封装。

关键字驱动不仅仅这三层。还有很多东西要分层,很多驱动、第三方的库、日志、页面、图片、报告等等……

数据驱动

配置文件

8、自动化用例在什么环境下运行、如何批量运行?

能对公司真正的产生效益的自动化肯定是成千上万级别的用例。如果没有达到这个级别,收益一定是很小的。既然是机器在运行的,为什么不去覆盖全面呢?

在这里给大家推荐一个docker容器技术+jenkins定时构建+git

你的代码放在git上面然后用jenkins去关联定时构建,docker保证你的自动化干净的环境(虚拟机的进阶版)运行还可以分布式运行。

在这里插入图片描述

在这里插入图片描述 我们不管学什么技术,结合实战、自动化应用。很多朋友想学测试开发、测试平台,你自动化、接口、框架你都不会,你谈何去学测试开发?那是不大现实的。

经常有人问题,学习软件测试有什么捷径?

学习一步一步来,有计划性的,不走弯路!就是最大的捷径。

9、有没有独立搭建过自动化测试框架?

10、测试开发在企业中具体是做什么的?

写在最后

PS:这里分享一套软件测试的自学教程合集。对于在测试行业发展的小伙伴们来说应该会很有帮助。除了基础入门的资源,博主也收集不少进阶自动化的资源,从理论到实战,知行合一才能真正的掌握。全套内容已经打包到网盘,内容总量接近500个G。

☑ 240集-零基础到精通全套视频课程
☑ [课件+源码]-完整配套的教程
☑ 18套-测试实战项目源码
☑ 37套-测试工具软件包
☑ 268道-真实面试题
☑ 200个模板-面试简历模板、测试方案模板、软件测试报告模板、测试分析模版、测试计划模板、性能测试报告、性能测试报告、性能测试脚本用例模板(信息完整)

这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。

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

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

相关文章

视频剪辑高手必学:批量制作画中画效果的秘诀

随着社交媒体的兴起,视频制作越来越受到人们的关注。在视频制作中,画中画效果是一种常见的技术,它能够让多个画面同时出现在屏幕上,增强视频的视觉效果。然而,对于许多初学者来说,制作画中画效果可能是一项…

python会计应用实操-企业收入与发票比对

案例:企业收入与开票 公司月底或一个季度盘点一下,收入账款与开票数额是否匹配。 使用工具:jupter lab和python 数据: 上海电子税务局已开票统计excel表 银行流水单excel表 编程思路: 两个excel对比金额&#x…

4.OsgEarth加载Mbtiles

愿你出走半生,归来仍是少年&#xff01; 1.Mbtiles mbtiles是在GIS开发中最常用的瓦片包格式&#xff0c;在移动端、桌面端都是常用的格式。 2.代码 通过OsgEarth的MBTilesImageLayer图层进行加载&#xff0c;也是封装成了一个静态的方法方便调用。 /// <summary&g…

【ROS入门】机器人导航(仿真)——导航模块概述

文章结构 导航模块简介全局地图自身定位路径规划运动控制环境感知 导航之坐标系坐标系变换 导航模块简介 在ROS中机器人导航(Navigation)由多个功能包组合实现&#xff0c;ROS 中又称之为导航功能包集&#xff0c;关于导航模块&#xff0c;官方介绍如下: 一个二维导航堆栈&…

拥有DOM力量的你究竟可以干什么

如果你希望访问 HTML 页面中的任何元素&#xff0c;那么您总是从访问 document 对象开始&#xff01; 查找HTML元素 document.getElementById(id) 通过元素 id 来查找元素 <!DOCTYPE html> <html> <head><meta charset…

OSPF 的10种网络类型和5种区域类型

10种网络类型&#xff0c;也有称7类的&#xff0c;因为8、9、10类是V3专有的&#xff0c;如下&#xff1a; LSA 类型描述传播范围使用与目的Type 1路由器LSA (Router LSA)区域 (Area)描述路由器连接的直连网络和链路信息&#xff0c;用于建立拓扑图和计算最短路径。Type 2网络…

Nginx性能优化

简介 nginx作为常用的web代理服务器&#xff0c;某些场景下对于性能要求还是蛮高的&#xff0c;所以本片文章会基于操作系统调度以及网络通信两个角度来讨论一下Nginx性能的优化思路。 基于操作系统调度进行Nginx优化 CPU工作方式 对于用户进程&#xff0c;CPU会按照下面的…

10个简单好用的Python装饰器

_装饰器&#xff08;Decorators&#xff09;_是Python中一种强大而灵活的功能&#xff0c;用于修改或增强函数或类的行为。装饰器本质上是一个函数&#xff0c;它接受另一个函数或类作为参数&#xff0c;并返回一个新的函数或类。它们通常用于在不修改原始代码的情况下添加额外…

Linux操作系统概述3——进程相关操作讲解(进程概念、xinetd守护进程、进程管理命令)

目录 进程的概念 程序与进程的关系 进程的分类 守护进程的分类 进程的PID 进程的状态 xinetd 守护进程服务 xinetd基本概念 xinetd工作原理 xinetd相关文件介绍 守护进程的管理命令 chkconfig 命令 service 命令 systemctl命令 查看进程状态相关命令 一般程序处…

CLIP文章精读

核心&#xff1a; loss的设计&#xff1a;分布针对固定image匹配text和固定text匹配image设计了两个交叉熵loss

Spring Boot进阶(89):Spring Boot和Zookeeper搭建分布式系统,提高系统可靠性

&#x1f4e3;前言 在当今信息化时代&#xff0c;互联网公司在面对海量访问请求时往往需要采用分布式系统来提高系统的可扩展性和可靠性。分布式系统具有多节点、相互协作的特性&#xff0c;不仅可以提高系统的吞吐量&#xff0c;而且还能在某个节点出现故障时自动切换到其他节…

APC学习记录

文章目录 APC概念APC插入、执行过程逆向分析插入过程执行过程总结 代码演示参考资料 APC概念 APC全称叫做异步过程调用&#xff0c;英文名是 Asynchronous Procedure Call&#xff0c;在进行系统调用、线程切换、中断、异常时会进行触发执行的一段代码&#xff0c;其中主要分为…

【Bond随你温故Kubernetes之】壹图复盘service与内部通信

最近跟朋友聊到了k8s 我&#xff1a; “环境给了就只管用呗&#xff0c;副本自动管理地妥妥的&#xff0c;有啥可以复盘的&#xff1f;“ 朋友&#xff1a; “容器的通讯与服务暴露还是有点东西的” 我&#xff1a; “嗯&#xff5e;&#xff5e;&#xff08;抿嘴点…

Android S从桌面点击图标启动APP流程 (六)

系列文章 Android S从桌面点击图标启动APP流程 (一)Android S从桌面点击图标启动APP流程 (二) Android S从桌面点击图标启动APP流程 (三) Android S从桌面点击图标启动APP流程 (四) Android S从桌面点击图标启动APP流程 (五) Android 12的源码链接&#xff1a; android 1…

基于Or-Tools的指派问题建模求解(PythonAPI)

基于Or-Tools的指派问题建模求解&#xff08;PythonAPI&#xff09; 指派问题&#xff08;又称为分配问题&#xff0c;assignment problem&#xff09;基于Or-Tools的指派问题建模求解&#xff08;PythonAPI&#xff09;导入pywraplp库数据准备声明MIP求解器初始化决策变量初始…

自然语言处理 (NLP) 简介

自然语言处理 &#xff08;Natural Language Processing NLP&#xff09; 简介 本课程是关于NLP 101的4部分系列中的第1部分&#xff1a; 自然语言处理导论&#xff08;今天的教程&#xff09;BagofWords模型简介Word2Vec&#xff1a;自然语言处理中嵌入的研究BagofWords与Wo…

3年轻量:腾讯云轻量2核2G4M应用服务器366三年!

腾讯云轻量应用服务器三年特价&#xff0c;3年轻量2核2G4M服务器&#xff0c;2023双十一优惠价格366元三年&#xff0c;自带4M公网带宽&#xff0c;下载速度可达512KB/秒&#xff0c;300GB月流量&#xff0c;50GB SSD盘系统盘&#xff0c;阿腾云atengyun.com分享腾讯云轻量2核2…

apk反编译修改教程系列-----修改apk中的图片 任意更换apk桌面图片【三】

往期教程&#xff1a; apk反编译修改教程系列-----修改apk应用名称 任意修改名称 签名【一】 apk反编译修改教程系列-----任意修改apk版本号 版本名 防止自动更新【二】 这次实例演示下如何更换apk安装后的桌面图标图片。其实这个步骤前面我有一个教程贴。这次针对步骤做个补…

C++初阶-类和对象(中)1

类和对象&#xff08;中&#xff09;1 一、类的6个默认成员函数二、构造函数概念特性 三、析构函数概念特性 四、拷贝构造函数概念特征 一、类的6个默认成员函数 如果一个类中什么成员都没有&#xff0c;简称为空类。 空类中真的什么都没有吗&#xff1f;并不是&#xff0c;任何…

ASP.NET WebApi 极简依赖注入

文章目录 环境服务类启动项注入使用依赖注入的优点 环境 .NET Core 7.0ASP.NET CoreVisual Studio 2022 服务类 public class T_TempService {public T_TempService(){}public void Test(){}}启动项注入 #region 依赖注入 builder.Services.AddTransient<T_TempService&g…