100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 全网最全软件测试面试题含答案(性能测试+功能测试+接口测试+自动化测试)

全网最全软件测试面试题含答案(性能测试+功能测试+接口测试+自动化测试)

时间:2021-03-10 08:23:26

相关推荐

全网最全软件测试面试题含答案(性能测试+功能测试+接口测试+自动化测试)

前言

因为篇幅有限,截图不代表所有资料,图中的资料我都放在公众号【程序员阿信】里面了,回复66就可以领取了。

性能测试方面

简述性能测试流程?

1.分析性能需求。

2.制定性能测试计划。

3.编写测试用例

4.搭建测试环境,准备好测试数据

5.编写性能测试脚本

6.性能测试脚本调优。

7.设计测试场景。

8.分析测试结果。

9.回归性能测试。

10.编写测试报告。

你们性能测试在什么环境什么时间执行?

我们会搭建一套独立的性能测试环境进行测试,时间方面的话,

基准测试:功能测试之后,系统比较稳定的时候再做。

负载测试:夜深人静,系统没人用的时候

think_time的作用是什么?

模拟真实生产用户操作,考察对服务器所造成的影响。

在确定性能测试结果可信后,如果发现以下问题,按下面提供的思路来定位问题

有验证码的功能,怎么做性能测试?

1、将验证码暂时屏蔽,完成性能测试后,再恢复

2、使用万能的验证码

性能测试指标有哪些?

响应时间

吞吐量

cpu

内存

io

disk

功能测试方面

你对软件测试这个行业的看法,为什么要选择软件测试?

软件测试是一个很有前途的职业,我在该行业有了比较多的经验,我觉得我很适合这个职位,也想坚定地走下去。

如果测试过程中发现bug但是开发人员认为不是bug,你应当怎么处理

首先,将问题提交到缺陷管理平台里面进行备案登记。然后,要获取判断的依据和标准:

根据需求说明书、产品说明、设计文档等,确认实际结果是否与计划有不一致的地方,提供缺陷是否确认的直接依据;

如果没有文档依据,可以根据类似软件的一般特性来说明是否存在不一致的地方,来确认是否是缺陷;

根据用户的一般使用习惯,来确认是否是缺陷;

与设计人员、开发人员和产品经理等相关人员探讨,确认是否是缺陷。

合理的论述,向测试经理说明自己的判断的理由,注意客观、严谨,不参杂个人情绪。等待产品经理做出最终决定,如果仍然存在争议,跟测试经理确认,在发上线报告时把这个bug的风险遗留,预警,让全项目方的人都知悉这个情况。

设计测试用例的方法有哪些?

等价类、边界值、判定表、因果图。

软件测试的策略是什么?

软件测试策略:在一定的软件测试标准、测试规范的指导下,依据测试项目的特定环境约束而规定的软件测试的原则、方式、方法的集合。

测试人员在软件开发过程中的任务是什么?

(1)尽可能早的找出系统中的Bug;

(2)避免软件开发过程中缺陷的出现;

(3)衡量软件的品质,保证系统的质量;

(4)关注用户的需求,并保证系统符合用户需求。总的目标是:确保软件的质量。

接口自动化测试方面

get和post的区别?

Get请求,浏览器会把http header和data一起发送,服务器返回200响应码

Psot请求,浏览器先发送header,服务器响应100(continue),然后再发送data,服务器返回200响应码

Post的安全性比get高

接口自动化中的关联怎么处理?

把上一个请求返回的结果传入到下一个请求的参数中,将请求的结果反射到一个类属性(使用setattr()函数),下一个请求去调用这个类属性

自动化测试怎么校验结果?

断言 ,预期结果与实际结果对比

数据库校验,根据测试场景来查询数据库里的数据和请求之前的数据进行比对

说一说你对于参数化和数据驱动的理解?

这个问题牵扯到自动化测试中很重要的两个概念:参数化和数据驱动。其实在我看来他们两个是一回事–测试脚本与数据的分离。举个例子:你的登录脚本原本固定写了一组测试数据:用户名、密码。每次改数据还要改脚本,我要把数据和脚本分离出来,那就把用户名、密码提取到外面,最好放在一个外部文件中,这个就叫参数化。

对于性能测试来说,我想保证每个虚拟用户都使用不同的用户名和密码登录,这样更加贴近真实的业务场景。对于自动化测试来说,我想测试多种数据组合–比如各种类型的用户名、密码。不管是哪种场景,都要有多组数据,但登录操作流程固定不变。这个就叫数据驱动。

对于一般开发语言的单元测试框架都有数据驱动的功能,比如Python的ddt模块,TestNG的DataProvider注解。

接口产生的垃圾数据如何清理

跟上面一样,造数据和数据清理,需用python连数据库了,做增删改查的操作

测试用例前置操作,setUp做数据准备

后置操作,tearDown做数据清理

WebUI自动化测试方面

selenium中如何判断元素是否存在?

没有提供原生的方法判断元素是否存在,一般我们可以通过定位元素+异常捕获的方式判断

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

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

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

1.优化测试用例。

2.减少不必要的操作步骤。

3.中断页面加载。

4.使用Selenium grid。

什么是持续集成?

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

什么是分层测试?

1.数据层

2.接口层’

3.UI层

App测试方面

请说明IOS手机和Android手机,系统有什么区别?

两者运行机制不同:IOS采用的是沙盒运行机制,安卓采用的是虚拟机运行机制。

两者后台制度不同:IOS中任何第三方程序都不能在后台运行;安卓中任何程序都能在后台运行,直到没有内存才会关闭。

你觉得app的性能测试,即专项测试,需要重点关注那些方面?

内存、cpu占用、耗电量、流量等

请简要介绍一下安卓系统四层架构?

从上到下,依次是应用程序层、应用程序框架层、系统运行库层、Linux核心层

试过程中遇到app出现crash或者ANR,你会怎么处理?

可以先把日志过滤出来: adb logcat | findstr xxxxx(过滤日志信息) ,然后再搜索其中的关键字,比如:exception、crash,看看是那些方法或者异常导致了问题的发送,初步定位问题原因后,可以交给开发人员去具体查找深层原因并修复。

请简单介绍一下实用过的安卓UI自动化测试工具?

appium:是一个移动端的自动化框架,可用于测试原生应用,移动网页应用和混合型应用,且是跨平台的。

robotium:是一款国外的Android自动化测试框架,主要针对Android平台的应用进行黑盒自动化测试,它提供了模拟各种手势操作(点击、长按、滑动等)、查找和断言机制的API,能够对各种控件进行操作。

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