之前一直是干的外包测试,抱着提升自己的想法进军许多人梦寐以求的字节,为了这次面试,足足准备了168天,但是没想到就是一个疏忽…
面试是走的内推途径,因为内推的简历通过率远高于其他方式;我的内推的途径有:联系我在字节跳动工作的一个大学学长。
在线面试,有个线上文本编辑器,类似leetcode那种,可以在线编程。然而有点紧张,视频面试网站、视频会议工具,面试前请没有准备确认好自己的网络环境良好(中间快笔记本电脑没电了也没注意到)、也许是心理素质这些因素影响我的面试质量。导致很多简单的问题没答好,还是要平时多积累,面试才不露怯啊。分享下问题给大家。
面试题
- 说一下你对Redis的可用性和效率的理解
- Redis 索引是什么?
- MySQL 事务隔离界别有哪些?哪些情况下分别采取什么样的隔离级别?
- RR 隔离级别如何解决幻读?
- MySQL 有哪些索引?什么情况下采取什么样的索引?和 - – Redis 的索引和 MongoDB 的索引相对比 ?
- JVM 关于 GC 相关的参数了解哪些?在什么情况下采取什么样子的参数设计
- Java线程池原理及其应用场景
- Concurrent并发包里几个类介绍一下
- HashMap求hash值的时候,无符号右移16位的意义
- 解决hash冲突的几种方法,在哪些地方用哪种
- tcp粘包和拆包的方法,tcp可靠性通过哪几个方面保证
- 数据库索引结构,为什么是B+树?
对自己面试总结
- 准备不够充分,不管是因为视频紧张还是实力准备,都表现不够完整。
- 回答过程中,太过自卑,导致前言不搭后语,恶性循环。
- 如果个人主动卑微,也是给面试官困扰。
面试经验分享
站在我的角度:选择转行做软件测试,目前对于年轻人来说还是相对可以的,至于对比公务员之类的,仁者见仁智者见智。
大家都是有思想,有认知的人,我只能把我自己的亲身经历告诉你,最后的决定还是得看自己,毕竟我们都是要为自己走的每一步都要负责,都是成年人了。
如果想转行互联网IT行业的,软件测试是一个不错选择!
这份笔记包括软件测试基础、Linux、Python、计算机网络、常见软件测试工具(LR、Jmeter)、数据库(MySQL为主)、常见逻辑题、以及软件测试面试中需要注意的问题。
俗话说得好,他山之石,可以攻玉,多看多借鉴还是有帮助的,这次腾讯也在疯狂招人!肝完这些,30k+妥了!
下面分享我整理的这份2021年可能是最全的软件测试工程师发展方向知识架构体系图。
初级软件测试工程师专业技能储备
1)了解计算机以及软件测试相关的基础知识
a.计算机基础知识
计算机组成部分,操作系统分类,常见的系统架构(B/S和C/S),常用的DOS命令
b.软件测试基础理论知识
软件测试的目的、定义、原则,产品质量模型,软件测试的基本流程
2)常用的Linux命令
在软件测试中,有时候需要我们自己去搭建测试环境,或者是在服务器部署自动化项目。而服务器基本都是使用Linux系统的,所有我们需要掌握一些基础的Linux命令
3)SQL语句
在软件测试中,测试结果的校验或者自动化中的测试数据准备,都会操作数据库来完成。所以对于数据库的最基本的增、删、改、查的SQL语句,需要能够独立完成编写
4) 手工测试用例的编写(最重要)
作为一个软件测试工程师,最基本的要求就是用例编写的能力。如何编写出一份高覆盖率,低重复率的测试用例,是初入软件测试行业应该去不断追求的能力。
5 ) 缺陷的管理
了解在团队中,如何管理测试人员提出的BUG,从而保证项目的BUG能够及时被修复
掌握以上的技能,对于一个初入软件测试行业的同学而言,就肯定可以站稳脚跟了。
中级软件测试工程师专业技能储备
1、接口测试相关专业技能
无论是自动化测试还是性能测试,甚至之后往测试开发方向发展,最基础的就是针对接口进行测试。所以要想做好中级软件测试工程师,第一步就是能够完成接口测试。
1)接口以及接口测试相关的理论基础知识
包括接口及接口测试的概念,接口测试的原理,接口测试的流程,http协议,Restful接口风格。这些内容都需要有所了解
2)接口工具的使用:Postman和Jmeter
接口测试,可以使用代码,也可以使用工具。通常情况下,接口测试最多还是使用工具来完成.原因无他,“高效”。
3)抓包工具:Fiddler和Charles
在测试过程中,我们为了定位前后端的问题,就会使用抓包工具,查看接口返回的结果。从而定位问题是前端的,还是后端的。
这两个工具,我们一般二选一去学习就可以了,因为他们的作用都是一样的。
2 . 编程语言学习
自动化测试的实现方式,主要还是依赖代码来完成的。所以要能进行自动化测试,首先需要掌握一门编程语言。目前行业主流的自动化测试的编程语言为python和java。我个人推荐python,因为对于新人而言,上手的难度比较低一些。如果可以全天学习,python也就差不多10天就能入门
3、自动化测试学习
Python学完以后,我们就可以开始自动化测试方面的学习。
自动化测试的目的,主要还是为了降低回归测试的时间。
软件测试中的自动化测试,分为UI自动化和接口自动化。
通过以上的学习之后,我们再来看你具备哪些能力?
- SQL语句,Linux常用命令
- 手工测试用例的编写以及缺陷的管理
- 使用抓包工具进行前后端问题定位
- 使用Postman或Jmeter进行接口测试
- 使用Python进行接口/UI自动化测试
高级测试工程师需要掌握的知识点
这一阶段你需要加宽你的知识体系,同时更加深入的了解前段进阶,代码质量,测试架构,微服务及中间件,容器化,自动化测试设计,测试架构,CI/CD,测试左移,测试阶段,测试右移。
测试开发和研发岗的区别,其中一点就是研发更注重深度,而测开更注重广度。
-
比如:你要了解CI/CD,因为你做的测试平台/工具,可能需要接入到CI/CD的流水线,或者运维的监控系统中
-
再比如:你做性能测试的时候,如果你对架构设计的核心知识不了解,那么在做全链路压测,服务降级等测试的时候,可能就会遇到很多问题难以解决。
找到一份测试开发JD来对照,也可以看到这个岗位对中间件,性能测试。私有化平台都有了解。
除了加宽你的知识体系,还需精进你的代码能力。
简而言之,大厂Java用的多,如果你想去大厂,基本上就得熟悉Java,不然面试很容易被pass掉。
第三点:面试题
这里把字节跳动等大厂经常问的那些题目进行了综合性的搜集整理(含答案解析)
更多面试题及资源都打包正路好放在学习交流群里面了,点击下方链接就能免费获取!
测试理论:
软件测试的目标
发现尽可能多的错误,测试是一个为了寻找错误而运行程序的过程。
一个好的测试案例是指很可能找到迄今为止尚未发现的错误的用例。
一个成功的测试是指揭示了迄今为止尚未发现的错误的测试。
软件都有多少种分类?
根据功能的不同,电脑软件可以粗略地分成四个层次:
- 最贴近电脑硬件的是一些小巧的软件。它们实现一些最基本的功能,通常“固化”在只读存储器芯片中,因此称为固件。
- 系统软件包括操作系统和编译器软件等。系统软件和硬件一起提供一个“平台”。它们管理和优化电脑硬件资源的使用。
- 支持软件。包括图形用户界面、软件开发工具、软件评测工具、数据库管理系统、中间件等。
- 应用软件种类最多,包括办公软件、电子商务软件、通信软件、行业软件,游戏软件等等。
Linux 基础
在 Linux 系统中,一个文件的访问权限是 755
755 表示该文件所有者对该文件具有读、写、执行权限,该文件所有者所在组用户及其他用户对该文件具有读和执行权限。
如何查看一个文件的末尾 50 行?
查看/etc/profile 的前 10 行内容,应该是: # head -n 10 /etc/profile
查看/etc/profile 的最后 50 行内容,应该是: # tail -n 50 /etc/profile
MySQL 基础
什么是数据库?
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库
什么是关系型数据库,主键,外键,索引分别是什么?
关系型数据库是由多张能互相联接的二维行列表格组成的数据库
主关键字(primary key)是表中的一个或多个字段,它的值用于唯一地标识表中的某一条记录
外键表示了两个关系之间的相关联系。以另一个关系的外键作主关键字的表被称为主表,具有此外键的表被称为主表的从表。外键又称作外关键字
在关系数据库中,索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单
Web 测试
nginx,tomcat,apache 都是什么?
Nginx (engine x) 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 服务器。
Apache HTTP Server 是一个模块化的服务器,源于 NCSAhttpd 服务器
Tomcat 服务器是一个免费的开放源代码的 Web 应用服务器,属于轻量级应用服务器,是开发和调试JSP 程序的首选。
接口测试
什么是接口
接口是指外部系统与系统之间以及内部各子系统之间的交互点。
包括外部接口、内部接口,内部接口又包括:上层服务与下层服务接口、同级接口。
如果模块请求 http 改为了 https ,测试方案应该如何制定,修改?
分别用 http 还有 https 登录试试。如果用 https 可以正常登录,地址栏显示一把锁头,那么这个网站是有部署 SSL 的。如果 http 和 https 都能够正常登录,进一步说明该网站没有设置强制 https 登录,或者说没有设置 http 链接自动跳转 https 链接;相反如果用 http 登录,结果跳转到 https 页面,说明网站部署了 SSL, 而且设置了 http 自动跳转 https。
App 测试
什么是 Android 四大组件?
Android 的四大组件包括:Activity、Service、BroadcasReceiver、ContentProvider
这些资料,对于做软件测试的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。
喜欢软件测试的小伙伴们,如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!