2022软件测试高频面试题汇总(附带答案)「 建议收藏 」_测试开发高频面试题

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

根据性能测试结果先检查看下是否是服务器带宽存在问题,如果带宽存在瓶颈,则会考虑增加带宽或者压缩传输数据,如果带宽没有问题的话,我们会从服务器上导出日志,开发一起讨论分析是哪个地方导致响应时间过长,确定问题后,就提单给开发修复,修复好了就进行回归测试。

6.如何判断CPU使用率不达标

CPU使用率不达标,我们会从服务器上导出日志,分析是哪个地方导致CPU使用率不达标,如果分析不出来,就叫上开发一起讨论,确定问题后,就提单给开发修复,修复好了就进行回归测试。

7.app的性能测试怎么做的

APP的性能测试分为服务器端的性能和手机端的性能。

服务器端的性能:jmeter工具进行测试的,和web端性能测试的方法一样的。

手机端APP的稳定测试:使用monkey做。

8.用monkey做app测试,怎么做的?如果有问题的话怎么定位

先使用 adb logcat -c 清空手机的logcat日志;

接下来使用 adb logcat -v time 获取logcat 日志,并导入本地文件使用 monkey 运行被测应用 adb shell monkey -p 包名 -v ;

100000 并将执行结果导入到本地测试;

如果中途失败了就要去看monkey日志中有没有crash或者anr的关键字;

如果还需要定位到是什么原因导致的anr或者crash的问题,将相关日志和logcat日志与进程号提交给开发定位;

如果是anr的问题,还需要从安卓中获取/data/anr/traces.txt文件提交给开发定位。

9.app出现ANR的原因

线程阻塞,内存不足,CPU满负荷(现在手机基本都是8核CPU,基本不会出现CPU满负荷的情况)

10.app出现CRASH的原因

空指针值,数组越界,内存不足,CPU满负荷(现在手机基本都是8核CPU,基本不会出现CPU满负荷的情况)

11.APP常见崩溃原因

设备碎片化:由于设备极具多样性,App在不同的设备上可能有不同表现形式;

宽带限制:宽带不佳的网络对App所需的快速响应时间不够;

网络的变化:不同网络的切换可能会影响App的稳定性;

内存管理:可能内存过低,或者是授权的内存位置的使用可能会导致App失败;

用户过多:连续数量过多可能会导致App崩溃;

代码错误:没有经过测试的新功能,可能会导致App在生产环境中失败;

第三方服务:广告或弹出屏幕可能会导致App崩溃。

12.说几个常用的adb指令

adb install(apk的文件路径) 安装软件到手机或者模拟器;

adb uninstall(包名) 卸载手机或模拟器上的某款软件;

adb devices 查看与当前电脑连接的移动设备;

adb adb start-server 启动;

adb kill-server 杀死;

adb logcat 查看日志;

adb logcat -v time process >;

13.软件覆盖安装的adb命令

adb install -r xx.apk 覆盖低版本的

adb install -r -d 覆盖高版本的

14.性能测试的adb命令

adb shell dumpsys cpuinfo 查看手机cpu的使用情况

adb shell getprop|findstr dalvik 手机系统自己运行的内存使用

15.说几个monkey指令

adb shell monkey -p 包名

adb-shell–ignore-crashes 忽略崩溃

adb-shell–ignore-timeouts 忽略延时

adb-shell–ignore-throttle 延时毫秒值

adb-shell–pct-touch–pct-motion 触摸与滑动事件的比例

16.弱网情况下你是如何测试的

2G的网速150kbps,折合下载速度15-20k/s

3G的网速1-6mbps,折合下载速度120k/s-600k/s

4G的网速10-100mbps,折合下载速度1.5m/s-10m/s

使用真实的SIM卡,运营商网络来进行测试

通过代理的方式模拟弱网环境下进行测试(Charles延迟)

链接模拟弱网的热点进行测试(如360WiFi助手可以设置)

17.接口测试流程

后端完成开发,输出接口文档;

前端开发和后端开发进行前后端联调,结束后后端开发人员提测接口;

测试人员进行接口测试;

进行验收测试;

利用持续集成技术进行持续的校验。

18.如何进行接口测试

通过性验证:保证接口好使,能正常传入且返回正确的结果;

参数组合:有必传项时检查必传项;

接口安全:

①绕过验证(比如商品价格不能被外部修改)

②绕过身份授权(商品必须商家本人才能修改)

③参数是否加密(用户名密码加密)

④密码复杂程度校验

根据业务逻辑来设计用例

工具:postman和jmeter。一般用postman测接口,jmeter也能测,但一般不用。

19.举例说一下你的接口测试是怎么做的

先看接口文档,根据接口文档进行测试,包含接口的URL,请求参数,响应结果。如果没有接口文档,就自己抓包。我们是用jmeter来做接口测试的,首先,要新建一个线程组,在线程组下面添加一个http请求,然后填写好服务器地址,接口路径,请求方式,请求参数。如果需要参数化,先在本地创建一个TXT文档,把参数填写到文档里面,在jmeter中添加一个csv文件设置,填写好txt文档的路径,然后在请求参数中使用json提取器把token值关联出来,然后在下单接口中使用${参数名}的方式引用;接下来添加断言,检查服务器返回的结果和预期结果是不是一致的。最后,添加查看结果数查看测试结果。

20.请描述下接口测试与UI测试是如何协同测试的

1.有一部分是重叠的,UI测试是通过前端写的界面,是来调用接口的,而接口测试是直接调用接口;

2.排除前端的处理逻辑与调用的正确性,在理论上接口测试是可以覆盖所有的UI测试,但实际中,如几口层覆盖所有的业务流,在UI上只测试前端的逻辑,而最终的结果会忽视很多原有的功能点,导致了UI测试的不充分,那么会存在人多分工且实践充分的时候可以尝试接口去做业务流的全覆盖,否则不要轻易地去尝试。

21.为什么要进行抓包

有些公司没有标准的接口文档,只能通过抓包获取接口信息;

通过抓包可以查看整个请求过程以及相应过程,从而分辨是前台bug还是后台bug;

可以查看是否有敏感信息泄漏;

抓包进行测试,拦截请求,修改请求数据,查看响应结果本来就是接口测试的一部分。

22.一般抓包用什么工具,怎么进行抓包

如Charles,Fiddler,LightProxy
在工具设置http代理,设置端口号,在手机上设置同一网段,设置代理IP,设置代理端口,手机上的请求就可以抓取到了。

可以设置过滤,找到自己域名下的请求,通过分析请求地址,请求参数,响应结果来查找问题。

https,下载证书就可以抓取到请求了。

23.jmeter是如何进行测试的/请您介绍一下jmeter是如何使用的

打开jmeter;

创建线程组;

设置线程数和循环次数;

配置元件;

配置我们需要进行测试的程序协议、地址和端口;

构造http请求;

添加http请求头;

添加断言;

添加查看结果树;

添加Summary Report;

执行测试计划,执行测试计划不能用GUI,需要用命令来执行;

web报告。

24.jmeter连接数据库

1.在jmeter的线程组中分别添加JDBC Connection Configuration,JDBC Request,Debug Sampler,查看结果树。

2.在测试计划中将连接mysql需要的包加到classpath中。

3.在JDBC Connection Configuration中添加JDBC的配置。

25.jmeter为什么要参数化

做压力测试时,我们经常需要替换参数,在jmeter中,有多种参数化的形式。可以在测试计划中设置全局参数,可以设置用户参数,还可以在前置处理器中设置用户参数。在进行多线程并发的时候,如果需要多个参数,可以使用csv配置元件。比如做登录操作,后台有可能会限制一个用户不能重复登录多次,如果演示登录的并发操作,可以使用jmeter中的csv元件,将用户信息导出来,放到文件中,就可以让线程共享这些数据。另外,对于一些随机变化的参数,可以使用jmeter中的函数助手,生成随机函数,进行参数化测试。比如注册这样的操作,用户名要求唯一的,那就可以使用随机函数模拟出来。

26.jmeter如何进行压力测试

当测试接口的时候,发现某个接口性能比较差,需要进一步判定问题的时候,会压测数据库。压测数据库需要配置驱动,设置连接池大小,需要使用sql去操作数据库。具体的哪条sql问题需要问开发要具体的sql进行压测。

27.postman与jmeter的区别是什么

用例组织不同:jmeter的组织是比较偏扁平,首先它没有工作空间的概念,直接就是测试计划,而postman功能上更简单,组织方式是轻量级,他主要针对的是单个的http请求。

支持接口的类型与测试的类型不同:jmeter的功能更强大,可以通过各种类型的接口,不支持的页可以通过网上或者自己编写的插件进行扩展,而postman更轻量级,定位不同,可用来测试rest接口。

配置不同:jmeter可以在线程组里添加http,tcp,而postman只支持rest接口。

28.postman做哪些操作

用它来做接口测试。

查看接口的返回结果;

查看接口是get请求还是post请求;

29.MySQL数据库查询语言有哪些?会多表联查吗

数据库语言最常用的是SQL

多表联查:select * from table1 t1,table2 t2 where tl.id=t2.id这样就是多表联查。

left join,right join,inner join

30.MySQL数据库的增删改查

#增

alter table 数据表名 add birthday datetime;

#删

alter table 表名 drop 列名;

#改

1.修改字段,不重命名,用modify

alter table 数据表名 modify birthday date;

2.修改字段,重命名,用change

alter table 表名 change 原名 新名 类型及约束

alter table 数据表名 change birthday birth date;

#查

查询表使用数据 select * from 表名;

部分查询 select * from 表名 where 条件;

可以使用as 为列表指定别名

select 字段 as 别名,字段 as 别名 from 数据表名 where…;

31.SQL内关联和外关联的区别

内关联是求交集

外关联是以主表为标准,去附表找需要的信息

32.Linux上能不能直接进行性能测试

不能,脚本需要通过Windows调试好之后,才能在Linux上运行,运行的时候,只能通过non GUL的形式进行启动jmeter,但需要注意的是,csv文件在Windows上与Linux上要统一路径,最好使用相对路径,放到统一目录下边。

33.Linux系统操作的指令说一下:增加,删除,复制,移动等问题

cd:进入目录

cd app:切换到app目录

cd… :切换到上一层目录

cd /:切换到系统根目录

tail -10 a.txt:查看后10行数据

ifconfig:查看ip

ll:查看文件及其属性

vi:编辑

rm-rf:删除

car:解压及压缩命令

cp:复制

mv:移动

touch:创建文件

tail logcat:查看日志

cat logcat:查看日志

tail:查看日志记录信息,tail -f catinalia out

34.Linux系统日志查看指令,压缩,解压指令等问题

tar -xvf 文件名 :解压

tar -n logcat:查看系统日志

tar -zcvf 文件名:压缩

35.Linux系统TOP命令介绍

显示,管理执行中的程序,就是任务管理器

36.自动化测试有了解吗?自动化测试的工具有哪些

通过脚本代替一些手动化测试的步骤。unittest, web端:selenium ;app端:appium

37.selenium元素定位的方法有哪些

find_element_by_id()(常用)

find_element_by_name()(常用)

find_element_by_class_name()

find_element_by_tag_name()

find_element_by_link_text()

find_element_by_partial_link_text()

find_element_by_xpath()(常用)

find_element_by_css_selector()

38.appium的工作原理是什么

我们的电脑(c端)上运行自动化测试脚本,调用的是appium的webdriver的接口,appium服务器(s端)接收到我们client上发送过来的命令后,它会将这些命令转换为UIautomator认识的命令,然后由UIautomator来在设备上执行自动化。

39.安全性测试包括哪些方面

用户程序安全;

系统网络安全;

数据库安全。

40.写好测试用例的关键/写好用例要关注的维度

覆盖用户的需求;

从用户使用场景触发,考虑用户的各种正常和异常的使用场景;

用例的颗粒大小要均匀。通常,一个测试用例对应一个场景;

用例各个要素要齐全,步骤应该足够详细,容易被其它测试工程师读懂,并能顺利执行;

做好用例评审,及时更新测试用例。

41.如果给你购物商城网页(京东,淘宝等)你会怎样测试?测试那些主要功能

首先进行需求分析,用XMind梳理测试点,再编写案例,之后就进行案例评审,寻求他人意见。之后再完善案例,发出来给其他人检查。

测试点,首先是UI方面,美观度和易操作性,易理解性方面进行测试。

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

均匀。通常,一个测试用例对应一个场景;

用例各个要素要齐全,步骤应该足够详细,容易被其它测试工程师读懂,并能顺利执行;

做好用例评审,及时更新测试用例。

41.如果给你购物商城网页(京东,淘宝等)你会怎样测试?测试那些主要功能

首先进行需求分析,用XMind梳理测试点,再编写案例,之后就进行案例评审,寻求他人意见。之后再完善案例,发出来给其他人检查。

测试点,首先是UI方面,美观度和易操作性,易理解性方面进行测试。

[外链图片转存中…(img-BpxOmSOn-1715706678678)]
[外链图片转存中…(img-jOgLnk2O-1715706678678)]

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值