喜提阿里offer24k,软件测试面经分享

213 阅读8分钟

1、用过 awk 命令吗

linux 三大文本操作神器,gerp、sed、awk
gerp、sed 作为测试一定要会
awk 运维用得最多,测试会用是加分项

2、会 httprunner 吗
HttpRunner 是一款面向 HTTP(S) 协议的通用测试框架,会用就说会用,不
会用就回答替代品,pytest、unittest

10、会 httpclients 吗
HttpClient 是 Apache Jakarta Common 下的子项目,用来提供高效的、最
新的、功能丰富的支持 HTTP 协议的客户端编程工具包。
属于 java 开发的一个工具包,用 java 做自动化肯定是会的,用 python 做自动
化可以回答不会。

3、压力测试系统响应时间多少
根据 2-5-8 原则去回答即可
2 秒以内得到响应时,会感觉系统的响应很快
2-5 秒之间得到响应时,会感觉系统的响应速度还可以
5-8 秒以内得到响应时,会感觉系统的响应速度很慢,但是还可以接受
超过 8 秒后仍然无法得到响应时,会感觉系统糟透了

4、测试方案里面包含什么
测试人员、资源(硬件、软件环境)、测试目标、测试范围、测试完成标准

5、API 测试怎么做
API 测试就是接口测试
参数校验、幂等性、接口性能(响应时间、并发数)、安全性(参数传递安全
性、接口鉴权、数据安全性(数据隔离,数据权限))

6、postman 怎么做接口关联的测试
使用 js 提取保存到环境变量里面,其他接口可以直接使用环境变量的值即
可。

7、HTTP 和 HTTPS 有什么不同
1、https 协议需要到 ca 申请证书,一般免费证书较少,因而需要一定费用。
2、http 是超文本传输协议,信息是明文传输,https 则是具有安全性的 ssl
加密传输协议。
3、http 和 https 使用的是完全不同的连接方式,http 使用 80 端口,https
是 443。
4、http 是简单的无状态的连接;HTTPS 协议是由 SSL+HTTP 协议构建的可进
行加密传输、身份认证的网络协议,比 http 协议安全

8、简述下测试流程
根据自己公司的测试流程回答。
完整测试流程:需求评审->测试任务分配->测试用例->冒烟测试->冒烟通过后正
式测试(2 轮)-> 回归测试(主流程或者全量回归,根据公司要求) ->预发布环境
测试 -> 写测试报告 -> 找产品经理验收测试->上线验证测试

9、如果负责的系统和其他测试负责的系统测试范围有歧义怎么办?
牵头开会讨论(拉上双方的测试领导和当事人),确认各自的测试范围,避免
漏测。

10、自动化测试脚本修改频率高吗,每次版本都需要去修改自动化脚本?
自动化脚本目的是用来做主流程的回归测试,或者是前置测试参数的构造,
所以只要主流程稳定,自动化脚本就稳定。

11、有没有出现比较严重的 bug
没有严重 bug,有的话你也不能说。

12、安全测试会吗
如实说就好,但是基础的安全项要知道,比如:越权、CSRF 攻击、跨域等
等,主要是考你是否有安全意识,安全测试涉及知识面广而深,真正能玩得转安
全测试的凤毛麟角,属于加分项。

13、怎么样在不同的测试环境进行高效测试(手工和自动化在同一个环境,不同
环境指 UAT、SIT 环境等)
UAT: (User Acceptance Testing)用户验收测试
SIT: (System Integration Testing)系统集成测试
自动化测试的时候,使用特定标签的账号,在脚本前置条件处理的问题,保
证自动化测试完成后将每次测试产生的数据清理干净即可。
手工测试的时候 一样使用特定标签的账号,测试完成后使用脚本清理测试
产生的数据。

14、断言做在什么地方,怎么做断言
测试用例执行完成之后进行断言
怎么做断言分情况:
接口自动化:根据接口返回,与预期结果进行对比(预期结果事先计算好的,
或者是直接去数据库查询出来,或者其他方式,总之要保证数据准确性没有问题)
UI 自动化:根据 UI 页面元素返回进行断言,元素是否存在,或者值是否正

15、项目相关,问的比较细
项目相关的问题,总体思路:
1、注意逻辑性
2、多用专业术语(包括行业专业术语)
3、只讲业务大的流程,不要讲细节(如果你真的了解的很细,知道代码的内
部逻辑实现,这种情况可以讲细节,这是加分项)
4、问到不懂的直接说不是自己负责不知道细节

16、Try catch 的运行顺序
先运行 try 里面的代码块,如果报错了才会运行 catch 里面的代码块

17、Xpath 轴是什么
轴是相对于当前节点的节点集

18、如果一个系统调用另一个系统,出现异常了(网络异常),通过手工测试测
不出来,这时候要怎么测
通过脚本,使用 MOCK 模拟故障系统各种类型的返回来测试本系统。

19、需求分析时,有进行非功能性分析吗
有,需求分析时会做易用性分析,目标用户习惯分析,视觉效果分析,竞品
分析等等

20、ABtest 时,怎么去实现?比如设置走 A 的概率 60%,走 B 的概率 40%,怎么
去开发
ABTest:简单来说,就是为同一个产品目标制定两个方案,让一部分用户使
用 A 方案,另一部分用户使用 B 方案。
实现思路:
abtest 对于业务开发来说,最好是独立的,也就是我们需要在用户无感知切
入 abtest,同时注意保持业务一致性,通过 nginx+lua 方案,通过在 nginx 中
执行嵌入的 lua 脚本,动态计算 upstream,将不同标签的用户导向不同的程序版
本,达到 abtest 的目的。

21、怎么定位性能瓶颈,比如线程组是 10 的时候,TPS 是 60,线程组是 20 的时
候,TPS 还是 60,怎么去定位问题
10 个线程的时候事物处理能力是 60,20 个线程的时候事务处理能力是 60,
根据当前数据暂时无法判断是否存在性能问题,因为并不能证明 60 就是该服务
器的最大事物处理能力,还需要进行其他的测试来确定服务器最大事物处理能力
峰值。
建议增加测试场景如下:
场景一、超过 20 个线程场景,记录 TPS 值
场景二、10-20 之间线程场景下,记录 TPS 值
当某个场景得到的结果 TPS 到最大值后,随着线程数增加 TPS 值变小,这就
说明这个最大是就是该机器的最大 TPS。最终通过其他指标去寻找系统瓶颈即可。

22、怎么去做兼容性测试
1、web 端做浏览器内核兼容即可
Trident 内核(代表:Internet Explorer)
Gecko 内核(代表:Mozilla Firefox)
WebKit 内核(代表:Safari、Chrome)
Presto 内核(代表:Opera)
2、移动端
android 系统版本
屏幕分辨率
主流手机厂商(苹果、华为小米三星中兴、oppo、vivo

23、三方接口,第三方出现问题了,你们怎么处理
第三方接口出了问题,首先排查出现问题的原因,是我方导致还是第三方导
致。根据排查结果做对接流程和对接测试流程优化。
如果是第三方修改了接口上线了,我方不知道,导致的 bug,这个时候需要
变更对接流程,约定版本上线以及变更能及时通知我方,进行联调测试。
如果是我方的问题,优化测试流程,增加测试范围和交叉测试环节,防止漏
测。

24、带 cookie 的接口,自动化脚本怎么写
将 cookie 获取作为前置条件即可。

福利

福利大放送,从入门到实战,从电子书到面试真题,这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你。

如果需要这份学习资料,可以点击下方链接获取

资料传送门:点击链接领取吧