软件测试面试?太简单了 2023测试面经 (答案+思路+史上最全)

Posted 程序媛月下

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了软件测试面试?太简单了 2023测试面经 (答案+思路+史上最全)相关的知识,希望对你有一定的参考价值。

从年后开始投简历面试的,在boss和拉钩上投了有几十份简历,其中70%未读状态,30%已读,已读的一半回复要求发送附件简历,然后这周接到面试的有七、八家公司,所以,当前这个大环境真的难

这半个月来,每天安排三到四场面试,平均每个公司至少都是两轮面试打底,经此一役,截止今天下午,算是拿到四个offer,两个已经发了,两个口头约定好了。个人比较心仪其中的一家外企,毕竟不太卷,真的国内的互联网公司真的卷怕了,还不稳定,说不定哪天就被优化了,那么今天我就先分享一些此次面试第一面技术面试的经验,金三银四的面试季希望对大家有所帮助,加油!冲!

技术面试题整理了个十来页的文档,有需要的留言,我发你,当前的就业局势能帮一个算一个

技术面试题

一、项目及业务相关

1.请描述一下你现在项目中的测试流程是怎么样的?

需求宣讲-->需求评审-->技术评审-->测试用例评审-->研发冒烟-->研发提测-->测试提测预检.->测试泳道测试.>发布班车..>测试集成测试(产品验收)->预发环境发布-->生产环境发布(产品测试验收)-->线上数据监控(1-2天)-->业务文档沉淀(我公司是这样,大家根据实际情况说明即可)

2.测试流程有没有什么可以改进的地方?这些问题,你有反馈并且拿到结果吗?

1)规范发版流程,周二周四窗口期,APP类双周迭代,回收研发线上发布权限2)规范提测流程,增加提测准入条件,提测打回流程,冒烟不通过惩罚机制3)规范产品评审,新增需求宣讲,产品完成度90%以上进入评审,需求完成度较低打回

4)引入线上CS机制,PO,P1故院复盘,P3,P4 CS沉淀,记录踩坑经验,反推流程优化或者基础功能建设

3. 需求不明确,通过哪些方式解决?

1)根本还是流程机制的问题。团队合作不能依赖个人的靠谱,而是需要一种流程机制来建立,责任人和协作方式是机制运作两个不可或缺的要素。流程机制方面的建立也可以参考敏捷和精益思想。

2)从沟通上去突破,项目的高质量和及时交付是产研的共同目标,从共同目标出发去沟通解决合作中的问题。

4.测试任务多,时间不够,怎么办?

1)个别项目问题

是否测试范围为评估不全,导致估时过于乐观,估时研发测试工时比3:1(加时间)

是否有阻塞测试进度的问题(bug,测试环境等),占用测试时间倒排期项目,功能较多,测试时间不足(砍需求,分批上线)2)多数项目问题

测试效率是否有问题,是否有过多冗余测试用例

是否经常有并行测试,导致测试节奉达不到预期(资源分配)

长时间人员负荷大于80%,任务安排是否合理,测试人力是否达到瓶颈(加人)

 

5.介绍一下cookie, session 和token的区别

1)session存储于服务器,可以理解为一个状态列表,拥有一个唯一识别符号 sessionId,通常存放于cookie中,

服务器收到cookie后解析出sessionld,再去session列表中查找,才能找到相应 session。依赖cookie

2)cookie类似一个令牌,装有sessionId,存储在客户端,浏览器通常会自动添加。

3)cookie安全性比session差

4)token也类似一个令牌,无状态,用户信息都被加密到token中,服务器收到 token后解密就可知道是哪个用户

6. Get 和 Post请求的区别

1)get 是从服务器上获取的数据,post 则是向服务器传送数据2)get 的参数在 URL 中可以看到,post 的参数用户看不到

3)get 传送的数据量较小,不能大于 2KB。post 传送的数据量较大,一般被默认为不受限制

4)get 安全性比较低,post 安全性较高

7.常见的状态码有哪些?

2 代表成功

200:请求正常处理完毕3 代表重定向

301:永久重定向,资源已分配新 URI

302:临时重定向,资源已临时分配新 URI4 代表客户端错误

400:请求报文语法错误,或者参数错误401:需要通过HTTP认证,或认证失败403:请求资源被拒绝

404:无法找到请求资源,服务器无理由拒绝5 代表服务端错误

500:服务器内部错误

501:请求未完成。服务器不支持所请求的功能503:服务器超负荷,或者停机维护

8. HTTP 和 HTTPS 的区别?

1)http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。

2)http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80

 

9.怎么排查是前端问题还是后端问题或者数据问题?

1)通过抓包确认前端是否调用接口,如果接口未调用,那就前端问题。

2)如果接口正常返回结果,但是结果不是预期结果,要确认前端传参是否正确,若是传参不对,则是前端问题,若传参正确,但结果返回错误,那就是后端问题。

3)如果后端接口返回数据正确,但是页面显示和渲染错误,这也是前端问题

10. Web测试和APP测试不同点

1)手机作为通信工具,来电、去电、接收短信等操作都会对app应用程序产生影响,所以app测试第一个要考虑的属性特征是:中断测试,来电中断:呼叫挂断、被呼叫挂断、通话挂断、通话被挂断短信中断:接收短信、查看短信

其他中断:蓝牙、闹钟、插拔数据线、手机锁定、手机断电、手机问题(系统死机、重启)

2)手机用户对app产品的安装卸载操作:从上一个版本/上两个版本直接升级到最新版本

全新安装新版本

新版本覆盖旧版本安装卸载旧版本,安装新版本卸载新版本,安装新版本

web和app测试,单从功能界面测试来说,没有什么差异。有差异的主要是以下几点:

1.系统结构

web端,是B/S架构的,服务端有修改的话,客户端会同步更新

app,是C/S架构的,如果服务端有修改的话,客户端必须更新,核心版本的客户端都要重新回归测试

2.性能指标

web端:响应时间、CPU、内存、吞吐量

app:响应时间、CPU、内存、吞吐量、手机流量、手机电量

3.兼容测试方面

web端:浏览器兼容;PC端的操作系统(windows、mac、linux)

app:手机操作系统(安卓、ios、windows);手机型号;分辨率(手机屏幕大小)

4.相对于web,app有一些专项测试干扰测试(来电、信息、其他应用)弱网络测试、网络切换测试安装、更新、卸载

5.测试工具 app:appium web:selenium

6.界面操作

web端:屏幕左上角、右下角

app:手势、手机横屏竖屏、触控、前后台切换,边角测试

 

10. 性能测试关注哪些指标?

1)响应时间(RT):响应时间是指系统对请求作出响应的时间。

2)吞吐量(Throughput):吞吐量是指系统在单位时间内处理请求的数量。

3)并发数:并发用户数是指系统可以同时承载的正常使用系统功能的用户的数量。

4)OPS:Queries Per Second意思是“每秒查询率”,是一台服务器每秒能够响应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。

5)TPS:是TransactionsPerSecond的缩写,是一台服务器每秒能够出处理的事务数。它是软件测试结果的测量单位。一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数

11. 请问你们公司是如何做接口测试的?

接口测试实际跟一般测试不同就是测试用例的设计部分。①获取接口规范。

2设计接口测试功能用例(主要从用户角度出发看接口能否实现业务需求,用例设计就是黑

盒用例那一套)。

3各种入参验证(正常情况,异常情况包括输入参数个数不对,类型不对,可选/必选,还

有考虑参数有互斥或关联的情况)。

④接口返回值各种验证(符合接口文档需求)

⑤了解接口实现逻辑,实现逻辑覆盖(语句/条件/分支/判定/...)⑥接口能并发执行吗、安全吗,性能满足要求吗?⑦采用工具或者自写代码来验证。

⑧发现问题跟功能测试一样,该报 bug 报 bug,该跟踪状态的跟踪状态。

12.怎么设计接口测试用例?

通常,设计接口测试用例需要考虑以下几个方面:①是否满足前提条件

有些接口需要满足前提,才可成功获取数据。常见的,需要登录 Token逆向用例:针对是否满足前置条件(假设为n个条件),设计 0~n 条用例②是否携带默认值参数

正向用例:带默认值的参数都不填写,不传参,必填参数都填写正确且存在的““常规”值,

其他不填写,设计1条用例③业务规则、功能需求

这里根据时间情况,结合接口参数说明,可能需要设计N条正向用例和详向思例

 


1. 简述一下UI自动化框架及怎么实现的

需要这个答案的找我,我整理了另外一个博客

2. selenium 的元素定位方式有哪些?

这个也是博客里分享过了,具体不写了

定位方式有8种:id、name、tag name、class name、link text、 partial link text、xpath 以及css selector

id 唯一,有 id 尽量使用 id 定位,但要注意动态 id 的情况,

css selector 和 xpath 几乎可以定位到所有的元素,css的定位速度更快。

3. 切换窗口、切换iframe、弹窗怎么处理、下拉框怎么定位

切换窗口:driver.switch to window(handle)切换iframe: driver.switch to frame弹窗:使用alert

下拉框定位:select by index(0) #通过索引选择 select by visible text("测试") #通过下拉文本值选择 select_by_value("python") #通过option value值选择

4. 三种等待

time.sleep

固定等待,本质:让当前的线程睡眠,实质是线程的阻塞(blocking),用wait方式实现。

缺点:网络条件好浪费时间,严重影响项目的性能。

好处:调试脚本可以用。

implicitly wait

隐式等待。本质:在脚本的开始设置一个最长等待时间,如果在规定时间内网页加载完成,则执行下一步,否则可能抛出异常。隐式等待对整个driver周期都起作用,在最开始设置一次就可以了,不要当作固定等待使用。

缺点:javascript一般都是放在我们的bodv的最后进行加载,实际这时页面的元素都已经加载完毕,我们却还在等待全部页面加载结束。

WebDriverWait

显式等待。本质:动态的等待,判断某一个元素是不是已经出现了,比如tte是

显式等待,本质:动态的等待,判断某一个元素是不是已经出现了,比如title是不是叫百度或百度搜索。根据动态的一些条件来轮询,它会不停的轮询去给我们检测,条件是成功还是失败,比如0.5s就检测一次这个元素在这个条件下是成功还是失败。同时设置轮询的超时时间。

 

6. Linux

1. 详细讲几个常用的Linux命令

ps:查看当前正在运行的进程

netstat:检查 Linux网络状态,比如查看开启的端口,为哪些用户提供服务,以及服务的状态 sed:文本编辑 cd:切换目录 mkdir:创建目录 mv:移动文件 rm:删除文件 rmdir:删除目录

pwd:获取当前所在地址

2.怎么查看实时更新的日志文件?

tail -ftest.log | grep 'error

3. Linux的 top 命令可以查看到哪些信息

top 经常用来监控linux的系统状况,比如cpu、内存的使用,PID,TIME,STATE(状态)

4. Linux的 find 和 grep 命令的使用

查找本地目录下所有文件中,文件内容包含AAA的文件 grep AAA./*

查找本地目录下所有文件中,文件名字包含AAA的文件 find /*-name *AAA*

两个命令的语法不通,grep是直接加要查找的字段, find是先加地址,再加要查找的内容

 

技术面试题整理了个十来页的文档,有需要的留言,我发你,当前的就业局势能帮一个算一个

java面试知识点太多,附答案

ClickHouse 是什么?

ClickHouse:是一个用于联机分析(OLAP)的列式数据库管理系统(DBMS)

我们首先理清一些基础概念

  • OLTP:是传统的关系型数据库,主要操作增删改查,强调事务一致性,比如银行系统、电商系统
  • OLAP:是仓库型数据库,主要是读取数据,做复杂数据分析,侧重技术决策支持,提供直观简单的结果

接着我们用图示,来理解一下列式数据库行式数据库区别

在传统的行式数据库系统中(MySQL、Postgres和MS SQL Server),数据按如下顺序存储:

在列式数据库系统中(ClickHouse),数据按如下的顺序存储:

两者在存储方式上对比:

以上是ClickHouse基本介绍

二、业务问题

业务端现有存储在Mysql中,5000万数据量的大表及两个辅表,单次联表查询开销在3min+,执行效率极低。经过索引优化、水平分表、逻辑优化,成效较低,因此决定借助ClickHouse来解决此问题

最终通过优化,查询时间降低至1s内,查询效率提升200倍!

希望通过本文,可以帮助大家快速掌握这一利器,并能在实践中少走弯路。

三、ClickHouse实践

1.Mac下的Clickhouse安装

我是通过docker安装,也可以下载CK编译安装,相对麻烦一些。

2.数据迁移:从Mysql到ClickHouse

ClickHouse支持Mysql大多数语法,迁移成本低,目前有[五种迁移]

  • create table engin mysql,映射方案数据还是在Mysql
  • insert into select from,先建表,在导入
  • create table as select from,建表同时导入
  • csv离线导入
  • streamsets

选择第三种方案做数据迁移:

CREATE TABLE [IF NOT EXISTS] [db.]table_name ENGINE = Mergetree AS SELECT * FROM mysql('host:port', 'db', 'database', 'user', 'password')

3.性能测试对比
类型数据量表大小查询速度
Mysql5000万10G205s
ClickHouse5000万600MB1s内
4.数据同步方案

临时表

图片来源:新建temp中间表,将Mysql数据全量同步到ClickHouse内temp表,再替换原ClickHouse中的表,适用数据量适度,增量和变量频繁的场景

总结

面试建议是,一定要自信,敢于表达,面试的时候我们对知识的掌握有时候很难面面俱到,把自己的思路说出来,而不是直接告诉面试官自己不懂,这也是可以加分的。

以上就是蚂蚁技术四面和HR面试题目,以下最新总结的最全,范围包含最全MySQL、Spring、Redis、JVM等最全面试题和答案,仅用于参考

一份还热乎的蚂蚁金服面经(已拿Offer)面试流程4轮技术面+1轮HR

L、Spring、Redis、JVM等最全面试题和答案,仅用于参考

[外链图片转存中…(img-YRVGaHPu-1624787842739)]

如何获取面试参考资料?戳这里免费领取

以上是关于软件测试面试?太简单了 2023测试面经 (答案+思路+史上最全)的主要内容,如果未能解决你的问题,请参考以下文章

2023最新软件测试面试题(带答案)

2023面试自动化测试面试题含答案,建议收藏

2023最新软件测试十大必问面试题(附答案和解析)

测试面经 | 从测试螺丝钉到大厂测试开发,三点成长心得和面试经验

建议收藏2023年中高级软件测试大厂面试秘籍,为你保驾护航金三银四,直通大厂

2023春招100道软件测试高频面试题