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。
他们的区别如下:
-
HTTP 信息是明文传输的,而 HTTPS 是安全的 具有安全性的ssl加密传输
-
HTTP 标准端口是 80 ,而 HTTPS 的标准端口是 443
-
HTTP 无需证书,而 HTTPS 需要认证证书.需要到CA申请证书,一般免费证书较少,因而需要一定费用。
最后: 可以在公众号:伤心的辣条 ! 自行领取一份216页软件测试工程师面试宝典文档资料【免费的】。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。
学习不要孤军奋战,最好是能抱团取暖,相互成就一起成长,群众效应的效果是非常强大的,大家一起学习,一起打卡,会更有学习动力,也更能坚持下去。你可以加入我们的测试技术交流扣扣群:914172719(里面有各种软件测试资源和技术讨论)
喜欢软件测试的小伙伴们,如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一 键三连哦!