1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > ❤️❤️熬夜整理!最新零基础至高级自动化测试面试题 题多涵盖面广(建议收藏)❤️❤️

❤️❤️熬夜整理!最新零基础至高级自动化测试面试题 题多涵盖面广(建议收藏)❤️❤️

时间:2024-08-07 19:18:04

相关推荐

❤️❤️熬夜整理!最新零基础至高级自动化测试面试题 题多涵盖面广(建议收藏)❤️❤️

这里写目录标题

面试第一问:请做个自我介绍个人的基本信息,扬长避短突出自己的技能个人兴趣爱好与结尾总体案例 软件测试基础面试题软件生存周期及其模型是什么?软件配置管理的作用?软件配置包括什么?你们公司测试的一个基本测试流程是什么?测试用例是什么?编写测试用例时会用到什么方法?如何提交高质量的软件缺陷(Bug)记录?简述BUG 管理工具的跟踪过程 软件测试--自动化面试题selenium中hidden或者是display = none的元素是否可以定位到?selenium中如何保证操作元素的成功率?也就是说如何保证我点击的元素一定是可以点击的?如何提高selenium脚本的执行速度?如何设计高质量自动化脚本你的自动化用例的执行策略是什么?什么是持续集成?自动化测试的时候是不是需要连接数据库做数据校验?Web定位如何去定位页面上动态加载的元素?如何去定位属性动态变化的元素?点击链接以后,selenium是否会自动等待该页面加载完毕?webdriver client的原理是什么?webdriver的协议是什么?什么是page object设计模式?怎样去选择一个下拉框中的value=xx的option?如何在定位元素后高亮元素(以调试为目的)?什么是断言和验证?page object设置模式中,是否需要在page里定位的方法中加上断言?page object设计模式中,如何实现页面的跳转?自动化测试用例从哪里来?你觉得自动化测试最大的缺陷是什么?什么是分层测试?webdriver可以用来做接口测试吗?get和post 的区别? Android 和 ios 测试区别App 测试中 ios 和 Android 有哪些区别呢?注意点:

随着企业对于软件质量的重视,软件测试工程师倍受青睐,对于求职者的要求也在提高,不仅要求求职者具备扎实的理论功底,还要有丰富的实战经验,这就给软件测试工程师求职增加了难度。今天就给大家分享一些常见的软件测试面试题及答案。

面试第一问:请做个自我介绍

面试问题第一问,99.99999%都是:请先做个自我介绍吧

个人的基本信息,扬长避短

1、年纪太大与太小,都不需要主动去说明。

软件测试年龄大是弱势,如我年纪只有30+

例子:面试官您好,我叫***,来自于哪里,从事软件测试工作有几年了。

2、专业不对口也不要过多的去提及(提到了就会增加问你的概率)。

比如你的专业是机械专业,面试官就可能会问你为什么转到测试行业?什么机遇转到软件测试行业的

例子:面试官您好,我叫***,来自于哪里,从事软件测试工作有几年了。

比如你的专业是计算机专业

例子:面试官您好,我叫***,来自于哪里,计算机专业毕业后,从事软件测试工作有几年了。

二、突出自己的工作经验

自己的项目经验(重点突出跟你面试公司相关或者同类型的项目)。

比如公司从事的主要是app项目:

以前主要是从事的web与app的项目,最近做的项目主要是app为主,做过不少的项目,也积累了不少的测试经验,能够独立完成产品的测试。

还要突出自己在项目承担的角色

突出自己的技能

1、测试熟练的开发语言(Python中高级必备)

2、测试流程

3、测试需求分析

4、linux系统(熟练搭建测试环境)

5、数据库

6、接口测试

7、自动化测试

8、性能测试

9、安全测试

基于目前市场情况,基本前面7个必备,市场的竞争会越来越大,后期大家需要好好的学习。

个人兴趣爱好与结尾

简单说下就ok。

例子:我平常喜欢看看书,有的时候也喜欢打打游戏,这个是我一个简单的自我介绍,您看,我这边还需要做什么补充吗?

总体案例

面试官您好,我叫****,来自于***。做软件测试工作有N年了。在期间做了不少的项目,也积累了不少的测试经验,能够独立完成软件测试的测试工作。

主要做过功能测试、app专项测试和接口测试方面的工作。对于linux、数据库、fiddler、jmeter的应用都比较熟悉。也用jmeter做过一些性能测试,最近一段时间也做了接口自动化测试,主要是用的python+requests框架实现的。一定要突出自己的技能优势。

我平常喜欢看看书,有的时候也喜欢打打游戏,这个是我一个简单的自我介绍,您看,我这边还需要做什么补充吗?

最后一点:对于自己“会”的重点强调,如果性能跟自动化不会就说只是了解一些,根据自己的情况来定,切记不要照搬。

技术人一定要坚持学习,越努力越幸福。

软件测试基础面试题

软件生存周期及其模型是什么?

答:软件生存周期(Software life cycle)又称为软件生命期,生存期。是指从形成开发软件概念起,所开发的软件使用以后,知道失去使用价值消亡为止的整个过程。一般来说,整个生存周期包括计划(定义)、开发、运行(维护)三个时期,每个时期又划分为若干个阶段,每个阶段有明确的任务。

软件配置管理的作用?软件配置包括什么?

 答:软件配置管理(Software Configuration Management,SCM)是一种标识、组织和控制修改的技术。软件配置管理应用于整个软件工程过程。在软件建立时变更是不可避免的,而变更加剧了项目中软件开发者之间的混乱。SCM活动的目标就是为了标识变更、控制变更、确保变更正确实现并向其他有关人员报告变更。从某种角度讲,SCM是一种标识、组织和控制修改的技术,目的是使错误降为最小并最有效地提高生产效率。软件配置包括如下内容:配置项识别、工作空间管理、版本控制、变更控制、状态报告、配置审计。

你们公司测试的一个基本测试流程是什么?

答:首先会召开需求分析会议,参加人员有产品、开发和测试,主要是探讨需求主要的一些功能点,完了之后,开发就排期进行开发,我们就根据主管写出来的计划、分配到的任务编写测试用例,写完之后会进行用例评审,有评审修改的就修改整理形成最终的用例版本,之后开发人员版本编译完成后,我们会依据测试用例来执行测试,测试过程中,提交bug,跟踪bug,直至关闭,测试完后编写测试报告。

测试用例是什么?编写测试用例时会用到什么方法?

答:测试用例是为实施测试而向被测试系统提供的输入数据、操作或各种环境设置以及期望结果的一个特定的集合。测试脚本是为了进行自动化测试而编写的脚本,测试脚本的编写必须对应相应的测试用例。测试用例的方法有两种,白盒测试:逻辑覆盖、循环覆盖、基本路径覆盖;黑盒测试:边界值分析法、等价类划分、错误猜测法、因果图法、状态图法、测试大纲法、随机测试、场景法。

如何提交高质量的软件缺陷(Bug)记录?

答:

通用UI要统一、准确。缺陷报告的UI要与测试的软件UI保持一致,便于查找定位。尽量使用业界惯用的表达术语和表达方法,保证表达准确,体现专业化。每条缺陷报告只包括一个缺陷。不可重现的缺陷也要报告。明确指明缺陷类型根据缺陷的现象,总结判断缺陷的类型。明确指明缺陷严重等级和优先等级。描述 (Description) ,简洁、准确,完整,揭示缺陷实质,记录缺陷或缺陷出现的位置。短行之间使用自动数字序号,使用相同的字体、字号、行间距。每一个步骤尽量只记录一个操作。确认步骤完整,准确,简短。根据缺陷,可选择是否进行图象捕捉。检查拼写和语法缺陷。尽量使用短语和短句,避免复杂句型句式。缺陷描述内容。

简述BUG 管理工具的跟踪过程

测试人员发现了 BUG,提交到 Bugzilla 中,状态为 new,BUG 的接受者为开发接口人员;开发接口将 BUG 分配给相关的模块的开发人员,状态修改为已分配,开发人员和测试确认BUG。如果是本人的 BUG,则设置为接收;如果是别的开发人员的问题,则转发出去,由下一个开发人员来进行此行为;如果认为不是问题,则需要大家讨论并确认后,拒绝这个 BUG,然后测试人员关闭此问题。

如果开发人员接受了 BUG,并修改好以后,将 BUG 状态修改为已修复,并告知测试在哪个版本中

可以测试。测试人员在新版本中测试,如果发现问题依然存在,则拒绝验证;如果已经修复,则关闭BUG。

软件测试–自动化面试题

selenium中hidden或者是display = none的元素是否可以定位到?

不可以,想点击的话,可以用js去掉dispalay=none的属性

selenium中如何保证操作元素的成功率?也就是说如何保证我点击的元素一定是可以点击的?

1.首先通过封装find方法,实现wait_for_element_ispresent(WebDriverWait)

2.在对页面进行click之前,先滚动到该元素(通过Js封装),避免在页面未加载完成前或是在下拉之后才能显示。

3.不同方式进行定位,与expected_conditions判断方法封装,循环判断页面元素出现后再操作;

4.开发人员规范开发习惯,如给页面元素加上唯一的name,id等。

如何提高selenium脚本的执行速度?

1.优化测试用例。设置等待时间的时候,少用sleep,尽量不用implicitly_wait,多用显式等待方法;

2.减少不必要的操作步骤。如经过三四步才能打开要测试的页面的话,可以直接通过网址来打开;

3.中断页面加载。如果加载的内容不影响我们测试,就设置超时时间,中断页面加载;

4.使用Selenium grid,通过testNG实现并发执行。 在编写测试用例的时候,实现松耦合,然后再服务器允许的情况下,尽量设置多线程实现并发运行。

用例在运行过程中经常会出现不稳定的情况,也就是说这次可以通过,下次就没办法通过了,如何去提升用例的稳定性?

1.在经常检测失败的元素前尽量加上显式等待时间,等要操作的元素出现之后再执行下面的操作;

2.多线程的时候,减少测试用例耦合度,因为多线程的执行顺序是不受控制的;

3.多用 try 捕捉,处理异常;

4.尽量使用测试专用环境,避免其他类型的测试同时进行,对数据造成干扰。

如何设计高质量自动化脚本

1.使用四层结构实现业务逻辑、脚本、数据分离。

2.使用PO设计模式,将一个页面用到的元素和操作步骤封装在一个页面类中。如果一个元素定位发生了改变,我们只用修改这个页面的元素属性

3.对于页面类的方法,我们尽量从客户的正向逻辑去分析,方法中是一个独立场景,例如:登录到退出,而且不要想着把所有的步骤都封装在一个方法中。

4 测试用例设计中,减少测试用例之间的耦合度。

你的自动化用例的执行策略是什么?

1.自动化测试用例是用来监控的。集成到jenkins,创建定时任务定时执行;

2.有些用例在产品上线前必须回归。jenkins上将任务绑定到开发的build任务上,触发执行;

3.有些用例不需要经常执行。jenkins创建一个任务,需要执行的时候人工构建即可。

什么是持续集成?

频繁的将代码集成到主干,持续性的进行项目的构架,以便能能够快速发现错误,防止分支大幅度偏离主干

自动化测试的时候是不是需要连接数据库做数据校验?

UI自动化不需要接口测试会需要

Web定位

Selenium有几种定位方式?你最偏爱哪一种,为什么?

Selenium有八种定位方式:

与name有关的有三种:name、class_name、tag_name

与link相关的有两种:link_text、partitial_link_text

与id有关:id

全能选手:xpath、css_selector

如果存在id,我一定使用Id,因为简单方便,定位最快。其次是Xpath,因为很多情况下html标签的属性不够规范,无法唯一定位。Xpath是通过相对位置定位

如果没有,那么CSS定位器应该被优先考虑,因为在大多数现代浏览器中,它们的评估速度比XPath更快。

如何去定位页面上动态加载的元素?

首先触发动态事件,然后再定位。如果是动态菜单,则需要层级定位。——JS实现(对动态事件封装)

如何去定位属性动态变化的元素?

先去找该元素不变的属性,要是都变,那就找不变的父元素,用层级定位(以不变应万变)

属性动态变化也就是指该元素没有固定的属性值,可以通过:

JS实现,

通过相对位置来定位,比如xpath的轴,paren/following-sibling/percent-sibling

/zhaozhan/archive//09/10/1564332.html

点击链接以后,selenium是否会自动等待该页面加载完毕?

不会的。所以有的时候,当selenium并未加载完一个页面时再请求页面资源,则会误报不存在此元素。所以首先我们应该考虑判断,selenium是否加载完此页面。其次再通过函数查找该元素。

webdriver client的原理是什么?

在selenium启动以后,driver充当了服务器的角色,跟client和浏览器通信,client根据webdriver协议发送请求给driver。driver解析请求,并在浏览器上执行相应的操作,并把执行结果返回给client.

webdriver的协议是什么?

WebDrive协议本身是http协议,数据传输使用json

启动浏览器的时候用到的是哪个webdriver协议?

-http

什么是page object设计模式?

1.通俗来讲,把每个页面当成一个页面对象,页面层写定位元素方法和页面操作方法

2.用例层从页面层调用操作方法,写成用例

3.可以做到定位元素与脚本的分离

怎样去选择一个下拉框中的value=xx的option?

1.select类里面提供的方法:select_by_value(“xxx”)

2.xpath的语法也可以定位到

如何在定位元素后高亮元素(以调试为目的)?

-重置元素属性,给定位的元素加背景、边框

什么是断言和验证?

断言(assert):测试将会在检查失败时停止,并不运行后续的检查

优点:可以直截了当的看到检查是否通过

缺点:检查失败后,后续检查不会执行,无法收集那些检查结果状态

验证(vertify):将不会终止测试

缺点:你必须做更多的工作来检查测试结果:查看日志——>耗时多,所以更偏向于断言

page object设置模式中,是否需要在page里定位的方法中加上断言?

不需要,page页只做元素抓取和操作方法

page object设计模式中,如何实现页面的跳转?

初始化driver参数,Page类传driver参数

自动化测试用例从哪里来?

-手工用例中抽取

你觉得自动化测试最大的缺陷是什么?

-不稳定

-可靠性不强

-不易维护

-成本与收益

什么是分层测试?

1.数据层

2.接口层’

3.UI层

webdriver可以用来做接口测试吗?

不可以,webdriver是专门做web的UI自动化参数

get和post 的区别?

1、GET请求:请求的数据会附加在URL之后,以?分割URL和传输数据,多个参数用&连接。

POST请求:POST请求会把请求的数据放置在HTTP请求包的包体中。

2、传输数据的大小

使用GET请求时,传输数据会受到URL长度的限制。

对于POST,理论上是不会受限制的

3、安全性。POST的安全性比GET的高

Android 和 ios 测试区别

App 测试中 ios 和 Android 有哪些区别呢?

1.Android 长按 home 键呼出应用列表和切换应用,然后右滑则终止应用;

2.多分辨率测试,Android 端 20 多种,ios 较少;

3.手机操作系统,Android 较多,ios 较少且不能降级,只能单向升级;新的 ios系统中的资源库不能完全兼容低版本中的 ios 系统中的应用,低版本 ios 系统中的应用调用了新的资源库,会直接导致闪退(Crash);

4.操作习惯:Android,Back 键是否被重写,测试点击 Back 键后的反馈是否正确;应用数据从内存移动到 SD 卡后能否正常运行等;

5.push 测试:Android:点击 home 键,程序后台运行时,此时接收到 push,点击后唤醒应用,此时是否可以正确跳转;ios,点击 home 键关闭程序和屏幕锁屏的情况(红点的显示);

6.安装卸载测试:Android 的下载和安装的平台和工具和渠道比较多,ios 主要有 app store,iTunes 和 testflight 下载;

7.升级测试:可以被升级的必要条件:新旧版本具有相同的签名;新旧版本具有相同的包名;有一个标示符区分新旧版本(如版本号),对于 Android 若有内置的应用需检查升级之后内置文件是否匹配(如内置的输入法)

注意点:

1.并发(中断)测试:闹铃弹出框提示,另一个应用的启动、视频音频的播放,来电、用户正在输入等,语音、录音等的播放时强制其他正在播放的要暂停;

2.数据来源的测试:输入,选择、复制、语音输入,安装不同输入法输入等;

3.push(推送)测试:在开关机、待机状态下执行推送,消息先死及其推送跳转的正确性;应用在开发、未打开状态、应用启动且在后台运行的情况下是 push 显示和跳转否正确;推送消息阅读前后数字的变化是否正确;多条推送的合集的显示和跳转是否正确;

4.分享跳转:分享后的文案是否正确;分享后跳转是否正确,显示的消息来源是否正确;

5.触屏测试:同时触摸不同的位置或者同时进行不同操作,查看客户端的处理情况,是否会 crash 等

在面试的过程中,从回答问题的方式,就可以看出这个人是否有自信,是否敢于承担责任。当然,良好的准备才是打赢胜仗的基础,而只有知己知彼,才能百战不殆。如果你想学习更多软件测试相关的技能及面试技巧,加群:893694563,分享技术面试学习的资料

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。