八年测开经验面试28K公司后,吐血整理出高频面试题和答案!

#01

如何制定测试计划?

参考点

1.是否拥有测试计划的制定经验

2.是否具备合理安排测试的能力

3.是否具备文档输出的能力

面试命中率

  80%

参考答案

测试计划包括测试目标、测试范围、测试环境的说明、测试类型的说明(功能,安全,性能,稳定性)、测试工具、模块的划分、测试负责人、测试执行轮次的时间安排、相关文档在文档管理库中的位置、测试的风险 。其中模块划分需要根据测试人员对于业务的熟悉程度及个人能力进行分配,工作量的估算需要根据以往测试时的经验,结合本次需求的修改,可以大致估算出测试量

#02

APP测试和web测试有什么区别?

参考点

1.对各种测试类型的掌握程度 

2.对测试理论知识的掌握程度

面试命中率

  90%

参考答案

Web端测试和移动端测试类型基本相似,都需要进行功能测试、性能测试、安全性测试,他们主要区分web端一般都是b/s架构,基于浏览器的,app是c/s架构,是有客户端的。

(1) 从系统架构来看的话:web测试只要更新了服务器端,客户端就会同步更新;而如果是app端下修改了服务端,意味着客户端用户所有使用的核心版本都需要进行回归测试一遍。

(2) 客户端性能方面:Web端可能只会关注响应时间;App则还要关心流量、电量、cpu、等;

(3) 兼容方面:Web是基于浏览器的,所以更倾向于浏览器(IE、Chrome、firefox)和电脑硬件,电脑系统方向的兼容;App测试则必须依赖于手机或者pad,不仅要看分辨率、频目尺寸、重要看设备系统。

#03

发现一个bug,怎么定位是APP端还是服务端的问题

参考点

1.考察对测试基础的理解

2.考察实际工作中问题排查的能力

面试命中率

  85%

参考答案

1、抓包分析 通过对客户端进行抓包,分析服务端返回的数据是否符合预期,如果服务端数据是正确的,那就是客户端的问题 

2、日志分析 可以通过查看客户端/服务端的日志,分析有没有异常的日志信息,从而确定具体原因

#04

用一条SQL语句 查询出每门课都大于80分的学生姓名。表scores如下:

name     course    score

张三       语文         81

张三       数学         75

李四       语文         76

李四       数学      90

王五       数学         100

王五       英语   90

图片

参考点

1.数据库查询

2.聚合函数

3.having筛选

面试命中率

  89%

参考答案

学生的最低分数大于80,那么就可以查询出每门课都大于80分的学生姓名

select name,min(score) from scores group by name having min(scor

e)>80);

#05

SQL中常用的聚合函数都有哪些?

参考点

1.考察SQL基础能力

2.考察常见的数据库函数

面试命中率

  90%

参考答案

max():最大值

min():最小值

avg():平均值

sum():求和

count():统计总数

#06

主键、外键和索引的区别?

参考点

对数据库常用索引的理解

面试命中率

  90%

参考答案

1)定义

主键:唯一标识一条记录,不能有重复的,不允许为空

外键:表的外键是另一表的主键, 外键可以有重复的, 可以是空值

索引:该字段没有重复值,但可以有一个空值

2)作用

主键:用来保证数据完整性

外键:用来和其他表建立联系用的

索引:提高查询排序的速度

3)个数

主键:只能有一个

外键:一个表可以有多个外键

索引:一个表可以有多个索引

#07

说几个工作中常用的Linux命令?

图片

参考点

1.考察是否有Linux使用经验 

2.考察对Linux的熟悉程度

面试命中率

  95%

参考答案

  • cd:切换目录

  • ls:查看文件列表

  • cp:拷贝文件 

  • mv:移动文件 

  • rm:删除文件 

  • chmod:设置文件权限 

  • cat:浏览文件内容 

  • vi:文件编辑 

  • find:搜索文件 

  • grep:过滤文件内容

#08

用过docker吗?常用的docker命令有哪些?

图片

参考点

1.考察Devopts相关技术

2.考察是否具备docker实际使用经验

面试命中率

 95%

参考答案

docker pull:拉取镜像 

docker images:查看本地镜像 

docker run:运行镜像为容器 

docker ps:查看正在运行的容器 

docker logs:查看容器日志 

docker cp:拷贝容器文件 

docker start/stop/restart:启动、停止、重启容器

#09

linux下查看/web.log第25行第三列的内容?

参考点

1.查看文件内容中的指定行指定列

2.常用的常看文件命令

面试命中率

  70%

参考答案

常用的三种实现方式如下所示:

sed  -n  25p  /web.log | cut -d " " -f3

head  -n25  /web.log  |  tail  -n1  | cut  -d  " "  -f3

awk  -F " "  'NR==25{print $3}'  /web.log

#10

pytest参数化怎么实现?

参考点

pytest对参数化的理解

面试命中率

  90%

参考答案

使用@pytest.mark.parametrize装饰器

范例:

@pytest.mark.parametrize('字符串形式接收参数名', [(参数1-1, '参数2-1'), (参数1-2, '参数2-2')],ids=['第1条参数对应的用例名', '第2条参数对应的用例名'])

@pytest.mark.parametrize('goods_id,stock,exp', [(12, 1, '缺失规格'), ('商品编号', '1', '商品不存在或已删除')],ids=['不填写规格参数加购', '商品编号为异常值'])

#11

什么是PO模式,Po模式的优点是什么?

参考点

1.po模式理论

2.po模式分层思路

面试命中率

  80%

参考答案

页面对象模型(PageObject)是一种设计模式,用来编写和维护自动化测试

Po模式的优点:

1、PO提供了一种业务流程与页面元素操作分离的模式,这使得测试代码变得更加清晰。

2、页面对象与用例分离,使得我们更好的复用对象。

3、可复用的页面方法代码会变得更加优化

4、更加有效的命名方式使得我们更加清晰的知道方法所操作的UI元素

如何编写PO模式:

1.抽象每一个页面

2.页面中元素不暴露,仅报错操作元素的方法

3.页面不应该有繁琐的继承关系

4.页面中不是所有元素都需要涉及到,核型业务元素做建模使用

5.把页面划分功能模块,在Page中实现这些功能方法

#12

使用jmeter如何做接口之间的关联?

图片

参考点

1.是否熟悉jmeter

2.是否熟悉关联的业务场景

3.是否熟练关联所用到的组件

面试命中率

  85%

参考答案

接口关联指的就是一个接口要使用另一个接口的返回值作为参数,在jmeter中针对不同的响应数据格式都有不同的处理组件,

json格式的采用json提取器,
xml或者html格式的采用xpath提取器,

其他格式的可以采用正则表达式提取器,

BeanShell后置处理器也可以从响应结果中提取响应内容,通过这些组件提取所需内容后,在需要关联的接口中引用变量即可完成关联

#13

说一下你知道的HTTP状态码,以及它们代表什么意思?

图片

参考点

1.考察求职者对HTTP协议是否有一定了解

2.考察工作中常见HTTP状态码的含义

面试命中率

 90%

参考答案

200(请求成功)

302(重定向)

400(Bad Request/错误请求)

401(Unauthorized/未授权)

403(Forbidden/禁止)

404(Not Found/未找到)

405(Method Not Allowed/方法未允许)

500(Internal Server Error/内部服务器错误)

502(Bad Gateway/错误的网关)

503(Service Unavailable/服务无法获得)

504(Gateway Timeout/网关超时)

#14

Tcp三次握手流程?

参考点

1.考察网络协议的理论基础

2.考察Tcp链接的创建过程

面试命中率

  95%

参考答案

第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SENT状态,等待服务器确认

第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态

第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手。

#15

http和https的区别?

参考点

http协议和https协议

面试命中率

  95%

参考答案

HTTP:超文本传输协议,是一个客户端和服务器端的请求和应答的标准。

HTTPS:是以安全为目标的HTTP通道,HTTP的安全版本,HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。

他们的区别如下:

1. HTTP 信息是明文传输的,而 HTTPS 是安全的 具有安全性的ssl加密传输

2. HTTP 标准端口是 80 ,而 HTTPS 的标准端口是 443

3. HTTP 无需证书,而 HTTPS 需要认证证书.需要到CA申请证书,一般免费证书较少,因而需要一定费用。

 总结:给大家准备了从功能测试到测试开发全套视频教程+项目实战+简历模板+面试宝典+各种测试计划.....

需要的小伙伴可以点击小编主页推广小卡片,验证消息填写:000即可获取喔

    下面是我整理的2023年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

二、接口自动化项目实战

三、Web自动化项目实战

四、App自动化项目实战

五、一线大厂简历

六、测试开发DevOps体系

七、常用自动化测试工具

八、JMeter性能测试

九, 银行业务测试

十,大数据测试和业务分析

 

 十一:项目实战

你可能感兴趣的:(面试,职场和发展)