劝你别去外包,干了三年,感觉废了一半....

先说一下自己的情况,大专生,19年通过校招进入杭州某个外包软件公司,干了接近3年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!

而我已经在一个企业干了3年的功能测试,已经让我变得不思进取,谈了2年的女朋友也因为我的心态和工资和我分手了。

于是,我决定要改变自己现状,准备冲击一下大厂。

刚开始准备时,自己都蒙了,3年的功能测试让我的技术没有一丝的进步,提升的只有我的年龄和体重…

没办法,我找到了我在字节跳动的朋友,作为他的发小,在他了解了我的情况后(几乎就是软件测试基础开始),直接甩给我一个网盘,说到:“去吧,好好学习,这里有你需要的所有东西,不要来找我了,我都嫌丢人!”。

盘里头是一整套软件测试面试必备文档PDF,看完之后直接给我发小给跪了…这下面试稳了。

内容涵盖:包括、测试理论、Linux、Pytest框架、性能测试、app测试、python编程、数据库--抓包与网络协议、接口测试--接口自动化、UI自动化--Unittest框架、白盒测试-持续集成、场景问题、职业规划相关等… 质量非常高,需要的可自行领取!!

  • 测试理论-Linux
  • Pytest框架-python编程
  • 性能测试-app测试
  • 数据库-抓包与网络协议
  • 接口测试-接口自动化
  • UI自动化-Unittest框架
  • 白盒测试-持续集成
  • 场景问题
  • 职业规划

一、测试理论-Linux 

1.1 有没有写过测试计划,具体包括哪些内容?

参考答案1:

测试计划内容:

(1)目的和范围     (2)规程    (3)测试方案和方法    (4)测试的准入和准出

(5)测试计划(流程、时间安排、对应人员)  (6)测试的环境配置和人员安排    (7)交付件

参考答案2

我们公司之前按照考核要求写过测试计划,不过后面老大觉得太耽误工作进度,

后面一般都不再写测试计划,而是写版本计划,这个在版本计划,每个人的任务列出来,

负责人列出来,自己根据自己的情况分配时间,然后汇总,大家一起开个小会评审就可以了。

二、Pytest框架-python编程 

2.1  自动化测试使用的那些库

1、selenium库 --web自动化测试工具   2. priest框架,运行用例   3. random随机,概率

4. xlrd --获取exell表数据  5. pymysql调用数据库   6. pytest-html --生成html文件

7. yagmanil --发送邮件   8. time-时间   9.  Select包--下拉框    10. Keys 模拟键盘操作

11. Webdriverwait智能等待    12. Action Chains模拟鼠标操作

三、性能测试-app测试 

3.1  性能测试怎么测试

性能测试其实就是通过自动化工具模拟多种正常、峰值以及异常负载来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,二者可结合使用。

性能指标主要有平均响应时间、90%响应时间、吞吐量、吞吐率,每秒事务数,以及服务器的资源使用率(CPU占比,mem内存占比等)等。当并发用户数超过300时,为了让测试数据更准确,可以考虑分布式压测,通过jmeter客户端控制几台jmeter服务器进行测试。

性能测试要先调试好脚本,主要考虑对脚本的数据参数化和添加断言。因为有些接口需要对业务逻辑或参数格式进行校验,为了能让所有线程数跑起来,需要将数据参数化。

数据参数化有这几种做法:

  1. 可以将一些固定值改成随机函数;
  2. 利用JDBC从数据库读取数据并关联变量;
  3. Excal数据参数化,
  4. 动态关联参数化,断言是为了判断用例是否

执行成功,并验证服务器的响应错误率。响应断言常用json断言,xml断言用的最少,

性能测试的目的是为了检验系统能否满足客户的性能需求,若性能需求无法满足时,则

要考虑对系统进行性能调优,一般用排除法:

1、首先考虑网络方面问题:使用ping命令查看与目标服务器的连接是否正常、传输速度的快慢。通过提升服务器的带宽,看响应时间是否相应降低。

2、考虑数据库的问题,可以单独去压测数据库,查看数据库的最大连接数和SQL语句的执行时间,索引命中率和sleep等待时间等

3、考虑 Apache/Nginx等中间件的问题,查看中间件设置的最大连接数是否合理,如果设置的连接数太小,会话数超过设定的最大连接数时会导致等待时间变长,出现响应超时情况

4、考虑服务器的硬件配置,如内存、CPU、磁盘读写速度等,可以用top命令来监控,也可以使用nmom工具来监控,nmom会把监控的数据形成表格形式,方便我们查看。

5、最后考虑开发代码写的好不好,处理时间长不长的问题。

四、数据库-抓包与网络协议 

4.1 你们数据库怎么用

[原来我们数据库用的比较多的,就是数据结果检查,测试一些数据准备,性能测试造大量数据。]

[测试执行到的结果,我们需要通过sql语句 select来查找数据库对应的表,看看数据库信息跟我们执行的结果是否一致,比如:生成申请借款后,我们会去数据库里面去检查下,数据库中数据是否跟申请订单数据一致。]

[我们在测试执行时需要做一些测试数据准备,我们就用 insert into输入数据或(者update set修改数据),我们需要到数据库查看有没有相关记录保存,保存的数据跟我们输入或者修改的记录是否一致;比如:原来我们一个初审功能里面有个分页功能,测试分页功能,需要100条数据,我们就通过数据库操作添加100,可以用 insert into。也可以用脚本实现,或者存储过程]

[还有在做性能测试时,模拟用户场景时需要用到大量的数据,这时就需要我们到数据库中制造大量的数据出来。比如说,测试充值,需要大量用户数据,充值表中大量数据,比如10W条数据,我们就用存储过程去造。]

五、接口测试-接口自动化 

5.1 接口测试主要目的是什么?

例外两种问法:接口测试的价值,意义?为什么要做接口测试?

主要就是验证后台服务端的业务逻有没有问题,提高测试的效率

①越底层发现bug,它的修复成本是越低的

②前端页面修改频繁情况下,接口测试不受页面元素改变而影响

③检查系统的安全性,前端传参不可信,比如京东购物,前端价格不可能传入-1元,但是

通过接口可以传入-1元

④如今的系统复杂度不断上升,传统的测试方法成本急剧增加且测试效率大幅下降,接口自动化测试可以提高测试效率

⑤接口测试相对容易实现自动化持续集成,且相对U自动化也比较稳定,可以减少人工,回归测试人力成本与时间,缩短测试周期

六、UI自动化-Unittest框架 

6.1 什么样的项目合适做自动化(至少三个)

功能需求,需求稳定,界面稳定,不会频繁变动,才可以做

版本迭代次数比较多,做出来才有意义

项目周期比较长(大项目)意义

七、白盒测试-持续集成 

7.1 白盒测试怎么测

原来工作中,没有涉及过,但是了解过

1、静态扫描

2、动态检查,构造测试数据去检查,语句覆盖---覆盖所有的代码

3、判定覆盖覆盖每个判定条件,每个判定都需要   真假值

4、条件覆盖每个条件  都需要一个真假值

5、判定/条件覆盖

6、组合覆盖,条件之间的组合场景   ---重点

7、路径覆盖----后面黑盒流程分析法   ---重点

八、场景问题 

8.1  有没有抓过包,为什么要抓包,具体怎么做的?

抓包这块,其实我们在工作用得是比较多的,一般我们都在测试过程碰到问题,我们有的候通过抓包去看一下前端与后台的数据交互,通过分析这个数据,来定位到底是前端问题,还是后台问题。

主要用的就是 fiddler工具,如果只是抓取Web端数据的话,只要在浏览器上设置代理服务器,指定代理服务器为本地的fiddler这个工具,设置好端口:8888 就可以了,如果要抓取手机端的包,首先需要保证手机与电脑(安装了 fiddler的这个电脑)在同一个网络,在手机上要设置http代理服务器为手动,然后服务器指定为电脑的ip地址,端口设置为8888

例外,如果要抓取https包,可能还需要在电脑上安装证书,手机端这边也要安装证书,差不多这样就可以。

 九、职业规划

9.1 简单的自我介绍下

面试宫,您好,我叫XXX,来自于XXXX,目前从事软件测试工作,已经三年工作经验,个人性格,比较开朗,跟人关系比较好,做事也比较细心三年测试工作经验中,过了不少项目,积累不少项目经验,前面1-2年主要是功能测试,后面这一年主要做接口测试,app自动化测试能够独立完成软件产品测试工作,能够独立编写测试文档,包括用例,计划,报告等,熟悉lnux跟数据库,熟悉 jmeter与 python + request进行接口测试,也可以使用 pytest框架进行接口自动化测试, python + selenium + pytest框架进行自动化测试,python + appnium + pytest移动app自动化测试框架,熟悉使用Jenkins持续集成,熟悉app专项测试与小程序测试,熟悉抓包工具。

我个人平常喜欢…看书…

我个人觉得测试这一块,主要是对需求了解,需求理解到位,工作当中,一定细心耐心,技术这块,不断学习能力

如果面试没有说话,   这个是我的一个简单自我介绍,看面试官还有什么需要了解的

文档获取方式:

这份文档,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,只需要你点下方进群即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/23387.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Android定制】BUILD_AGO_GMS = no 和 BUILD_GMS=no属性

文章目录 概要名词解释细节小结 概要 在安卓底层源码中,有这样的两个属性,这两个第一眼看上去都像是带不带谷歌,BUILD_AGO_GMS no和BUILD_GMSno有什么区别?? 如果带了谷歌,那么这个设备就差不多是国外定…

小程序极速注册认证免300认证费 突破管理员身份只能绑定5个小程序绿色通道

小程序注册账号管理相信大家有时候头都很大,一个身份证号只能绑定5个小程序主管理员。超个5个小程序就得请朋友、请亲戚身份证绑定管理员。有时还得看对方不方便,改个类目改个LOGO都还得管理员扫码。为了满足会员需求同是也满足自己需要,特别…

陌生交友发布动态圈子单聊打招呼群聊app开发

陌生交友发布动态圈子单聊打招呼群聊app开发 功能有,发布圈子,发布动态,查看附近的人,发布活动,实人认证,个人主页,相册查看,单聊,群聊。 即时通讯第三方goeasy接口。 好的&#x…

【nginx】同一接口有时返回500(client_body_temp)

问题描述: 同一个接口,有能正常访问并返回的,有的访问未到服务器直接返回500。 查看nginx日志(error.log),发现open() "/nginx/client_body_temp/0000476534" failed (13: Permission denied)报…

Linux——makefile自动化构建工具

一. 前言 一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的 规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂 的功能…

Navicat “1205 - Lock wait timeout exceeded; try restarting transaction“

标题标题:解决Navicat数据库操作报错:1205 - Lock wait timeout exceeded; try restarting transaction 导言: 在使用Navicat进行数据库操作时,有时会遇到错误代码为"1205 - Lock wait timeout exceeded; try restarting t…

论文分享 A ConvNet for the 2020s

摘要 视觉识别的“咆哮的 20 年代”始于 Vision Transformers (ViTs) 的引入,它迅速取代了 ConvNets,成为最先进的图像分类模型。另一方面,vanilla ViT 在应用于对象检测和语义分割等一般计算机视觉任务时面临困难。正是层次化的 Transforme…

蓝奥声核心技术分享——无线同步群控技术

1.技术背景 无线同步群控技术指基于对目标场景状态变化的协同感知而获得触发响应并进行智能决策,属于蓝奥声核心技术--边缘协同感知(EICS)技术的关键支撑性技术之一。该项技术涉及无线物联网边缘域网络的无线通信与智能控制技术领域,具体主要…

【2023 · CANN训练营第一季】昇腾AI入门课(TensorFlow)第三章——AI应用开发

1.具备编程经验 本课程中的示例代码、练习涉及C&C语言、Python语言的如下基础知识,建议您在学习本课程前先学习这部分内容 1.C&C语言 a.变量、基本数据类型、指针、引用、const限定符等 b,字符串和数组 c.表达式,包括赋值运算、条件…

华为OD机试真题 Java 实现【统计匹配的二元组个数】【2023Q2 200分】

一、题目描述 给定两个数组A和B,若数组A的某个元素A[i]与数组B中的某个元素B[j]满足 A[i] B[j],则寻找到一个值匹配的二元组(i, j)。 请统计在这两个数组A和B中,一共存在多少个这样的二元组。 二、输入描述 第一行输入数组A的长度M&…

python---变量(2)

此处,首次使用“”对a进行设置值,也就是对a的初始化。 后续位置对a使用“”,实际上是对a赋值。 因此两行代码得到的结果显然是不同的! 变量的种类 1.整数-int-根据数据大小自动扩容 python中的变量类型不需要显示声明&#…

9:00进去,9:05就出来了,这问的也太变态了···

从外包出来,没想到死在另一家厂子了。 自从加入这家公司,每天都在加班,钱倒是给的不少,所以也就忍了。没想到5月一纸通知,所有人不许加班,薪资直降30%,顿时有吃不起饭的赶脚。 好在有个兄弟内推…

扬帆起航——Qt自定义控件介绍

文章目录 前言自定义控件的定义自定义控件的好处如何实现自定义控件实现没有自带的控件 如何使用自定义控件测试和优化常见的自定义控件总结 前言 Qt 提供了丰富的控件、工具和库,可以帮助开发人员快速创建现代化的跨平台应用程序。但是对于某些特殊的需求&#xf…

Fourier分析入门——第7章——采样理论

目录 第 7 章 采样定理 7.1 引言 7.2 采样定理 7.3 错误识别(aliasing) 7.4 Parseval定理(Parseval[pzeifa:l]) 7.5 截断Fourier级数和回归理论(Truncated Fourier Series & Regression Theory) 第 7 章 采样定理 7.1 引言 在第 6 章中,我们发现有限区…

【大数据学习篇10】Spark项目实战~网站转化率统计

学习目标/Target 掌握网站转化率统计实现思路 了解如何生成用户浏览网页数据 掌握如何创建Spark连接并读取数据集 掌握利用Spark SQL统计每个页面访问次数 掌握利用Spark SQL获取每个用户浏览网页的顺序 掌握利用Spark SQL合并同一用户浏览的网页 掌握利用Spark SQL统计每…

qt quick(qml)通过arcgis导入自定义格式地图(Windows 版本)

参考ArcGIS Maps SDK for Qt 参考Display a map 安装 预先安装的软件 安装ArcGIS SDK 点击ArcGIS Maps SDK for Qt 注册账号 要注册成developer版本用户的,不然之后可能没办法生成API 下载 下载之后安装,一路next就可以了 在QT中创建ArcGIS项目…

安科瑞对于热继电器对电动机保护的探讨

安科瑞 徐浩竣 江苏安科瑞电器制造有限公司 zx acrelxhj 摘要:电动机烧毁是每一个生产企业都无法回避的现象,怎样加强电动机保护,使生产工艺系统的稳定,减少企业非正常停机时间。电动机保护成为电气技术人员一个重要课题。因此&#xff0c…

【数据结构】如何应用堆解决海量数据的问题

堆(Heap数据结构堆在计算机科学中有着广泛的应用,今天来介绍两种堆的应用:堆排序、Top-k问题🍉 堆排序 ​ 堆排序是一种基于堆数据结构的排序算法。它的基本思想是,将待排序的序列构建成一个大根堆(或小根堆&#xff…

Keil 5 MDK 发律师函警告了,如何用STCubeIDE开发标准库的程序(STM32F103C8T6为例)

用STCubeIDE进行标准库开发 1、CubeIDE介绍 https://www.stmcu.com.cn/ecosystem/Cube/STM32CubeIDE 2、CubeIDE下载 点击上面的链接,登录即可下载 3、搭建Demo工程 新建一个工作空间 创建一个工程 选择芯片-STM32F103C8T6 填写工程信息 添加标准库到工程 标…

SSRS rdlc报表 六 报表分组和总计

报表分组和总计在报表中是一个很常用的功能,比如我们需要按部门进行分组,统计每个部门的费用支出,或者在进一步分组,每个部门每个月的费用支出,通过rdlc报表,很容易实现这个需求。 我们下面要讲解的案例&a…