3年经验软件测试找工作的一些想法

一、前言

本人双非本,校招进了一个中等偏小的公司干了3年,但都是混日子多,对前公司业务熟了,领导叫干什么就干什么。大点的公司就爱抱团,从我进公司开始就隔几个月裁一波人。我靠着最低的工资狗了三年,果不其然还是被裁了。于是年后开始找工作,之前没有总结复盘的习惯,这次找工作发现这样不行,于是到这里来记录一些

二、面试前准备

1、整理之前的项目经验

2、复习学习测试技能

参考:软件测试人员需要掌握的技能树 ,高价值文章都罗列到这里啦 。 - 知乎

3、多练习表达,至少说话要流畅连贯

我前几天准备线上面试,用手机拍了视频,才发现我口音好重,视线飘忽,咬字不清,说话断断续续。。。唉好难

4、学习一些套话,好吹牛逼

可以找些测试公众号,多学点套话

三、面试中问到我的问题

1、描述的最近做过/主要负责/有成就感的项目

答:这个一般就说简历上的项目,根据公司岗位jd可以换不同类型的项目。

我的思路是:介绍项目的背景,是干嘛的+我作为测试负责人,干了什么,就是一般的测试流程 + 有什么困难,我怎么做,发挥了什么作用 + 最后结果,项目提前上线呀,获得好评啥的吹吹

2、然后会从刚刚项目里开始扩展,比如技术方向,或者个人的能力、具体测试内容,工作思路啥啥的,每个面试官关注的重点不一样,要求也不一样。这就看临场发挥了。

3、我简历有写用过自动化,相关的问题会问:

  • 描述一下自动化的框架?

答:主要从下图这几个方面答,截图来自:Python + pytest + yaml + allure + mysql + redis + 钉钉/企业微信通知,接口自动化框架V2.0,支持多业务处理,仅需维护yaml用例,无需要编写代码_python 写一个拔测接口,并发送钉钉通知-CSDN博客

  • 自动化用到的第三方库

答:pytest-html:主要用来生成html报告的插件

pytest-xdist:主要用来进行多线程运行的插件

pytest-ordering:主要用来改变用例的执行顺序的插件

pytest-rerunfailres:主要用来失败用例重跑的插件

allure-pytest:主要用来生成美观自定义的allure报告

  • 自动化框架的设计

答:参考一下:

  • pytest中conftest.py文件是干嘛的?

答:前置后置操作(参考:pytest测试框架的两个必备配置文件 ,你知道多少?一问详解它们的用法(三) - 知乎

(这里我记错了,还说这个文件一般不会修改,不会修改的应该是pytest.ini)

  • pytest和unittest的优缺点

答:unittest用例格式复杂,兼容性无,插件少,二次开发方便。

pytest更加方便快捷,用例格式简单,可以执行unittest风格的测试用例,无须修改unittest用例的任何代码,有较好的兼容性。

pytest插件丰富,比如flask插件,可用于用例出错重跑,还有xdist插件,可用于设备并行执行,效率更高。

  • 自动化环境怎么搭建?

答:本地运行通过后,将依赖库整理出来,由运维同事负责弄好(这个我真不了解。。)

4、性能测试方面

  • 性能测试会关注哪些指标?怎么制定标准?

答:TPS,看具体业务制定标准

TP99(响应时间):外部接口<=500ms,内部接口<=200ms

错误率:<=0.01%

并发数

服务器资源利用率的要求(cpu、内存、IO、网络等)

  • tps和qps的区别

答:如果是对一个接口(单场景)压测,且这个接口内部不会再去请求其它接口,那么tps=qps,否则,tps≠qps。如果是对多个接口(混合场景)压测,不加事务控制器,jmeter会统计每个接口的tps,而混合场景是要测试这个场景的tps,显然这样得不到混合场景的tps,所以,要加了事物控制器,结果才是整个场景的tps。

  • 用什么压测?jmeter+堡垒机。怎么压测?

答:0.前期准备:业务需求评审就加入项目,可以深入了解业务、重要功能的需求和逻辑

1.性能需求分析(评审):明确性能测试范围、目标,由于非专业性能测试人员也不知道怎么定目标,所以最好是引导产品、需求或者开发出目标,避免只有测试背锅;基于接口或者场景(流程)的性能测试指标

2.熟悉系统架构,申请性能测试环境:用到的web服务器、应用服务器、缓存数据库服务器、数据库服务器、文件服务器等,画出系统架构图,理解其中的逻辑;对需要监控的服务提前做技术准备

3.制定性能测试方案:计划什么时候做什么事,需要的资源,技术策略(比如监控分析工具选择等等)、用例设计

4.搭建测试环境,准备测试数据:数据库的存量数据+增量数据,比如一个查询接口,都是并发100用户,对应的表数据量是1万和100万,压测结果是不一样的,这个数据量根据生产环境获取;数据最好是有标识、有规律的数据;

5.主流程稳定后,调试被测接口、开发压测脚本(也可以在功能测试环境进行):参数化、关联、事务、检查点、思考时间等,造参数化测试数据。另外,这里涉及到场景的设计:单场景、混合场景、稳定性场景、异常场景

6.预测试(环境确认测试):跑1个用户,看压测环境功能是否通

7.执行压测并监控服务器资源等。看测试指标是否满足需求,从请求开始,一步一步排查请求流经的节点,包括服务器资源(cpu、内存、磁盘io、网络)是否存在性能瓶颈、各种连接等是否存在性能瓶颈。常见性能问题:https://www.cnblogs.com/uncleyong/p/10641248.html

8.分析定位。基于上一步的监控数据,对瓶颈进行分析、定位,全流程排查,模块隔离分析,日志分析

9.性能优化

10.性能回归

11.编写性能报告测试结果,测试是否通过;发现、解决什么问题,系统性能提升了多少倍;如何调优的,改了什么东西,以便上线同事知道

  • 接口性能测试目的?

答:类型1-能否支撑业务:

以标准规格,评估某系统能否支持**量的日常使用,暴露性能瓶颈。

类型2-摸清业务容量:

以标准规格,探明XXX系统的主接口的性能顶点,评估业务容量,为限流与扩缩容提供数据支持。

  • tps的值怎么定?

答:参考:性能测试TPS指标到底多算才算合适呢?二八定律_tps一般多少比较合理-CSDN博客

  • 压过最大并发有多少?
  • 分布式压测了解吗?(网上看别人分享的问题)
  • 客户端性能测试?不会。。
  • 性能监控云台搭建:

答:由专业的运维同事负责。一般是由JMeter 异步写入数据到InfluxDB,然后InfluxDB存储数据,Grafana定时从InfluxDB读取数据,然后在将数据展示出来

  • 性能测试服务器上报告怎么查看

jmeter -n -t 1102.jmx -l 1102.jtl -e -o 1102 &

5、SQL方面

  • mysql和mangoDB的区别

答:关系型数据库和非关系型数据库

1.存储上:Sql通常以数据库表的形式存储,

mango采用key-value的形式存储

2.事务:SQL中如果多张表需要同批次被更新,即如果其中一张表跟新失败的话,其他表也不会更新成功。

在mango中没有事务这个概念,每一个数据集都是原子级别的。

3.数据表 VS 数据集:关系型是表格型的,存储在数据表的行和列中。彼此关联,容易提取。

而非关系型是大块存储在一起。

4.预定义结构 VS 动态结构:在sql中,必须定义好地段和表结构之后,才能够添加数据,

mango数据库中,数据可以在任何时候任何地方添加。不需要预先定义。

  • 有几种连接?左连接和右连接的区别?

答:1、内连接

2、外连接:左连接、右连接、全连接

3、交叉连接

  • SQL函数

答:MAX()、MIN()、AVG()、SUM()、COUNT()

参考:SQL 教程

  • SQL题,都是简单的。比如查最近10条数据(limit)、不等于(!=)、为空(is NULL)

6、Python方面(这部分比较少,我面的主要是初中级的功能测试,要求不高)

  • 列表和元组的区别

答:列表可变、元组不可变。字典(Dictionary)是无序的键值对集合,集合(Set)是无序、不重复的元素集合

  • 列表、字典增删改查

  • 为什么选择Python?Python的优点?

答:

  1. 简单易学
  2. 开发效率高,Python具有丰富的第三方库和工具。Python支持面向对象、函数式、面向过程等多种编程范式,灵活性强。
  3. 广泛应用,使用者多
  4. 跨平台性:Python是一种跨平台的编程语言,可以在多个操作系统上运行,包括Windows、Linux、macOS等,提供了良好的可移植性。
  5. Python是一种动态类型语言,不需要显式声明变量类型。此外,Python具有自动内存管理机制,无需手动管理内存
  • 数据结构?还没开始研究
  • 排序?
  • 数组的快还是字典快?

答:字典,时间复杂度是o(1)

7、测试基础

  • 设计:一个游戏技能/下单步骤/用户登录 的测试用例

答:1、看到题目,如果场景很难,向面试官要更多的信息,如没有,说明:这个需求不够明确,有不少的信息还需要补充,通常我们一般是打回处理的。不过基于当前的信息,我来说一下我考虑到的点,相关疑问点之后也会提给产品,让其确认。

(考察遇到这种不合理需求时的处理方式,考察测试基本功,设计测试时候是否足够发散)

2、足够发散,既能跳进去扣细节,也可以跳出去考虑上下文。

可以把想到的问题也罗列出来,作为待确认即可。站在多维度:功能、性能、安全、易用、兼容等角度,运用:场景法、等价类、边界值等手段来进行设计了。

  • 如何提高测试效率的?(在项目中提了一句,就被追着问了。。)
  • 是根据什么选择制定测试策略?
  • 测试中用到哪些工具?
  • 遇到最难的bug是什么?
  • 兼容性测试方案怎么设计的?
  • 如何判断是前端bug还是后端bug?
  • 功能测试和接口测试不一样的地方?

答:1.作用不同

功能测试主要用于产品的各功能验证。根据功能测试用例,逐项测试,检查产品是否达到用户要求的功能。

接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。

2.侧重点不同

功能测试和接口测试最大的区别在于,功能测试侧重点是前端ui界面、数据展示、图形界面、业务逻辑操作等;而接口测试侧重点是后端返回的数据是否正确、接口是否正常。

3.用户场景不同

功能测试有多用户(并发)的概念,而接口测试只是单用户场景。我们做接口测试是是用于验证接口的请求和返回是否匹配(其实可以理解成接口测试也是一种功能测试);而功能测试则是很多人同时在做这种接口测试,更侧重于真实的用户场景。因为我们研发完的产品投入市场后,不会就专门给某一个人使用功能,肯定是会有很多人同时在用我们的产品功能。

  • 用例包括:

答:需求、模块、标题、预置条件、测试步骤、期望结果、优先级

8、fiddler

  • fiddler抓包原理?

答:抓包工具是按照协议去划分的,不同的协议使用到的工具也不同。那么目前来说,我们最常用的是HTTP协议,有两款非常流行的工具,就是Fiddler和Charles(通过浏览器也可以抓包)。因为这两款工具的核心功能都是抓包,而且他们都具有相类似的功能 。

无论那款工具,他们的原理都是一样,就是在客户端和服务端间设置了一个代理,客户端发送的每个请求都会被抓包工具截取到,这样抓包工具就可以对请求的报文进行查看,篡改,重定向等操作 。

Fiddler可以通过伪造CA证书来欺骗浏览器和服务器。大概原理就是在浏览器面前Fiddler伪装成一个HTTPS服务器,而在真正的HTTPS服务器面前Fiddler又装成浏览器,从而实现解密HTTPS数据包的目的。

  • 怎么抓包?

答:浏览器:1、fiddler打开对应的设置2、导出fiddler证书 3、浏览器中导入证书并信任4、重启浏览器

APP:1、手机和电脑在同一局域网2、手机浏览器输入电脑IP地址3、出现响应页面说明连接成功,下载证书4、安装证书后信任 5、设置WiFi代理为电脑的ip,就完成了

  • 怎么做弱网测试?

答:fiddler本来就是个代理,它提供了客户端请求前和服务器响应前的回调接口,我们可以在这些接口里面自定义一些逻辑。Fiddler的模拟限速正是在客户端请求前来自定义限速的逻辑,此逻辑是通过延迟发送数据或接收的数据的时间来限制网络的下载速度和 上传速度,从而达到限速的效果。

操作:设置模拟调制解调器的速度。手动设置设置上行,下行速率,模拟网路速度的原理,每上传/下载1KB 要delay 多久

Charles弱网:在设置中可以指定个别域名或全局域名,然后指定网速,可以手动设置:带宽、利用率、稳定性、丢包率、下行速率、上行速率等等

9、如何查看手机的CPU、内存啥的(一点没接触过)

10、linux常见命令

11、前端按一个按键,会发生什么?

答:前端对数据进行收集页面操作的输入啊运算之类的 通过http接口请求(这里提一句tcp三次握手四次挥手 一句带过),发送给后端处理或存储,然后等待服务端返回数据后,前端再拿着数据渲染页面

12、monkey命令参数的含义?(不知道。。monkey都是一个命令跑一下就行)

13、点击页面没有反应,怎么排查原因?

答:1.接口返回正常的情况下可能是前端代码错误( js )

2.后端接口报错,前端未处理

3.网络卡顿(弱网)

4.浏览器版本不兼容

5.权限不够

14、个人问题

  • 为什么离职?

答:1、年轻,尝试更有挑战性的工作  2、尝试其他领域(看岗位jd回答)

  • 职业规划?
  • 优势是啥?
  • 周围人对你的评价?

四、个人想法&总结

        去面试的路上,看着一路上陌生的风景,心情真的很复杂。我内心还是很难接受我现在已经是个成熟的大人这件事,总以为快乐的生活会一直延续下去。但时间不等人,社会在变,环境在变,我却一直停留在原地。

        我性格内心被动,人生的重大转折点都是被推着走的,高考也是,毕业也是,现在被裁也是。但是现在在职场了,想要做的更好,就必须要主动。在面试时候的表演是不够的,明眼人几天就能看清你几斤几两。我真的很疑惑,那些厉害的人,在这样那样的情况下会怎么想怎么做?能有人愿意指点我一下那是运气好,大部分还得靠自己琢磨,唉,现在我这种程度是琢磨不出来的。有个岗位说大老板看不起测试,怎么办?天天就头大。

        加油!找工作发现别人怎么这么优秀,怎么工资这么高。所以我也要加油!现在先把想要的offer拿到!然后研究自动化!学点数据结构算法,考个资格证减点个税,就这样~

  • 31
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值