入行软件测试7年,才知道原来字节跳动这么容易进

news2024/12/30 2:32:53

当前就业环境,裁员、失业消息满天飞,好像有一份工作就不错了,更别说高薪了。其实这只是一方面,而另一方面,各大企业依然求贤若渴,高技术人才依然紧缺,只要你技术过硬,拿个年薪50w不是问题。

我的人生格言:“ 比你优秀的人不可怕,可怕的是比你优秀的人比你更努力。”简单的先说一下,坐标深圳,16届本科毕业,算上在字节的面试,一共有面试了有5家公司(因为不想请假,因此只是抽空去其他公司面试,所以面试的公司比较少)​

​其中成功的有3家,另外2家失败的原因在于:

1.对于系统知识的还是了解不够全面,在最后一轮主管面试的时候,主管问得比较细,最后由于不会回答,就让我直接回去等通知了。

2.另外一家失败的是一家小公司,本身人数就不是很多,面试完我多方了解了一下,对方也认为我基本功什么的都不错,但是实际项目经验还是要欠缺一些,因为对方又是创业型公司,需要人上手就能干活,因此我在这个时候不是特别适合他们团队。

至于其他成功的三家公司,给我的面试评价都挺高的貌似,但我也不想记流水账,因此就不一一列举每家公司的面试过程,下面呢主要谈谈一名工作3年-5年左右的软件测试工程师该具备的一些技能以及个人的一些感悟:

1. 入门阶段
这个阶段你或许是刚从学校毕业,也或许是从其他行业转行的,你就会像我一样,对软件测试行业产生一系列的疑问,比如说前景怎么样?薪资高不高?加班多不多?零基础要如何学习?需要学会哪些技能才能够找到工作?

其实这些都不是很重要,重要的是你一定要搞明白这个行业是做什么的,你自己是否适合这个行业。

前些年培训大热的时候,很多同学听到了“前景很好,互联网薪资高,不用写代码,不用加班”的吹嘘,便一股脑的投入到这个行业来。干了几年,不仅钱没挣到,技术也没有沉淀,混不下去只能被迫转行。

如果你像我一样,在还没有进入这个行业或者刚开始了解,那么以下几个问题你一定一定要进行思考:

1.你是否能接受互联网行业的工作节奏?

2.你是否真的热爱这个行业,有足够的热情愿意去钻研?

3.你的学习能力是否能让你在日新月异的技术浪潮中不掉队?

首先作为互联网行业,必然会有加班的,即使不是996,也必然会有紧急任务或者上线,问下自己是否能接受这样的工作节奏。如果赶到要上线了,通宵也是常有的事,第二天早上你下班了,你的同事刚拎着早餐上班。

其次,如果你对这个行业有着基本的热情,或者说不讨厌这个行业的话,那么起码你能有动力去钻研,去自我驱动,这样才能够保证你的工作对自己不是一种煎熬。

最后,互联网这行业,技术日新月异,能够在软件测试这个行业长久的走下去,必然要不断学习。如果讨厌学习,或者上进心比较差,我不建议你进入这个行业。

如果上面3个方面都没有问题的话,那么恭喜你可以进入下一个阶段。

2. 初级阶段
到了这个阶段,你已经开始上手做测试了,哪怕是最基础的点点点,你也知道互联网企业测试流程是什么样子了,可以说这是你最朝气蓬勃的时候。

你在工作中遇到问题时的窘、遇见大神时的敬仰,都将会转化为你努力求知的动力。阅读书籍、看公开课、逛论坛,你的各种知识和技能在这个阶段会急剧扩充。

但是这个时候,尤其要注意不要病急乱投医。

这个阶段我不建议基础没有打牢,就开始学习自动化,最后什么也没有搞明白。业务能力才是你最重要的,自动化玩的再溜,那也只是个辅助。基础不牢,地动山摇。

3. 中级阶段
这个时候的你,或许已经做测试有1-2年时间了,很多工作也得心应手,薪资也基本稳定了,技术上知道的也比较多,但是仍然感觉自己啥都不会。

对,你缺少某个方向的深入研究!

处于软件测试行业的中级阶段,必然要面临的一个问题是我该朝哪个方向深入发展。自动化还是性能?Python还是Java?APP还是web?

我以我的经验给你一点建议:

关于发展方向:

无论APP测试也好、web测试也好,或者说想研究自动化,或者想专精性能,都是可以的。没有什么所谓的好与不好,重要的还是你喜不喜欢,如果你觉得性能做着心累,没有自动化测试有成就感的话,那就一门心思去研究自动化测试。只要往某个方向专精,过一段时间后你就可以成为大神。

关于语言选择:

以前我专门写过一篇关于软件测试工程师语言选择的回答,简单来说,就是刚接触的时候,你可以选择Python,上手更快,也更加灵活,到了高级阶段,应对更大的业务形态,你还得学会Java。做技术的,会很多种语言很正常。

自动化测试与性能测试:

对于自动化测试,不要被其牵着走,也不要过分夸大作用,更不要为了自动化而去自动化。

性能测试在某种程度上会比自动化更难搞定。代码、运维、计算机原理、数据库等等,你都要去搞懂。写脚本或者执行都还OK,难的是性能分析和调优。当然如果这个阶段你对自己的要求不是很高,那么你只要掌握性能测试的基本流程和简单的性能分析就可以了。更多的比如搭建压测环境、监控性能指标等等,还是要在实战中去积累经验。

对于这两个方面,我建议都要去学习,因为目前的招聘需求,都已经是标配要求。

4. 高级阶段
如果你已经是软件测试行业的老鸟了,那相信你很多“坑”都已经踩过了。

到了这个阶段,可以说是软件测试工程师最大的职业发展瓶颈。业内的大神们,也都是突破了这个阶段,才获得新的发展。

一般在这个阶段,会面临3个方向的发展:

技术专家

这条路比较坎坷,但是也最为抗打。如果你不善于人际关系,不问世事,又对技术有着浓厚兴趣的话,那么建议你走技术这条路。平时多撸代码、多和开发沟通,写一些测试平台或者测试工具。同时开发能力也要不错,这样你才能成为一个高阶的测试开发工程师。

管理方向

做技术累,其实做管理更累,因为和人打交道是最为复杂的。既要协调上下级的关系,又要统筹安排好各项工作。如果你喜欢走管理路线,也不要脱离业务只做管理,建议做一名技术管理,在带领团队的同时,不断的提升自己的技术。一方面技术不行确实很难服众,另一方面也是锻炼自己落地一些团队方案的能力。虽说管理的“生命周期”会比纯技术长一些,但是一定不能放弃技术。

转行其他

研发、产品、运维,或者创业,都是面临瓶颈之后新的出路。其中特别是创业,不要草率,见过太多创业失败又回来上班的,啥都折腾没了。

那么,作为一名软件测试工程师,该怎样努力才能够快速成为一名优秀的测试开发大佬,或性能测试大佬,或者说作为一名软件测试工程师需要掌握哪些知识体系。这其实不仅仅是一个刚刚踏入职场的软件测试工程师,也是工作三五年之后开始迷茫的工程师,都必须要面对和想明白的一个问题。

软件测试全套资料​

一、前置基础知识:
计算机基础

测试理论

HTML基础

CSS基础

JS基础

​二、linux和数据库

linux

数据库介绍

SQL语言(重点)

数据库高级功能

三、测试基础

软件测试理论

软件生命周期

测试方法和分类

测试用例设计

缺陷管理

web项目实战

测试管理工具

四、编程+数据结构

Python基础

面向对象

异常处理

模块和包

五、WEB自动化

WEB自动化入门

WEB自动化基础

WEB自动化中级

WEB自动化高级

项目实战

​六、移动自动化

移动自动化基础

移动自动化中级

移动自动化高级

​七、接口测试

接口基础

postman实现接口测试

数据库操作

代码实现接口测试

持续集成

接口测试扩展

八、性能测试

性能测试基础

性能测试工具

项目-接口性能测试

项目-web性能测试

性能测试调优

九、综合项目实战

功能测试,ui自动化测试,接口测试,性能测试

总结:

相信你如果掌握了上图上面的所有知识技能,并且将之灵活的运用的话,月薪20k以上并不是什么问题,下面是我整理的一些配套资料:

​上面是我整理的一些配套资源,这些资源对于软件测试的的朋友来说应该是最完整的备战仓库,同时为了更好地整理每个模块,我参考了很多网上的优质文章和项目,力求不漏掉每一个知识点,很多朋友靠着这些内容进行复习,成功拿到BATJ等大厂的offer,这个仓库已经帮助了很多的软件测试的学习者,希望能够帮助到你。

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

FUNBOX_1靶场详解

FUNBOX_1靶场复盘 这个系列的靶场给出的干扰因素都挺多的,必须从中找到有用的线索才可以。 这个靶场你扫描到ip地址后打开网页会发现,ip自动转换成域名了,所以我们需要添加一条hosts解析才可以。 192.168.102.190 funbox.fritz.box从目录…

4EVERLAND 托管让 Permaweb 变得更容易!

在互联网托管领域,我们通常将其与存储和管理网站的服务联系起来。传统的 Web2 托管服务在集中式服务器模型上运行,其中网站文件和数据库存储在集中管理的服务器上。用户通过互联网访问网站。这种托管模式应用广泛,相对简单,适合很…

计算机存储结构、执行速度及对应用的影响

万丈高楼,平地起。 计算机世界的信息化软件工程,是构筑于计算机硬件之上的。 由于信息的流转依托于计算机不同的部件,所以计算机系统的内部设计、各类应用架构无不受部件之间速度差异的影响。 本文,主要先介绍存储体系&#xff0c…

Spring Security 授权体系结构

目录 1、Authorities 授权(AuthorizationFilter 过滤器) 2、AuthorizationManager 授权管理器 3、角色的层次化(Roles) 1、Authorities 授权(AuthorizationFilter 过滤器) 通过 Authentication.getAutho…

Spring基础知识讲解

文章目录 Spring是什么?IoC容器与DIDI与IoC的区别 Spring项目的创建配置maven国内源创建Spring项目有关Bean的操作存储Bean使用Bean ApplicationContext和BeanFactory的区别getBean()的三种使用方法 更简单的存储和获取对象类注解方法注解获取Bean对象的简单方法——…

Ubuntu18.04下安装ROS

安装相关依赖 sudo apt install ninja-build exiftool ninja-build protobuf-compiler libeigen3-dev genromfs xmlstarlet libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev python-pip python3-pip ----------------------------------------------------------------…

TCP/IP 介绍

一、TCP/IP 是什么 TCP /IP 是因特网通信协议 (注释:通信协议是对计算机必须遵守的规则的描述,只有遵守这些规则,计算机之间才能进行通信。) 因特网浏览器和因特网服务器均使用 TCP/IP 来连接因特网。浏览器使用 TCP…

Idea 避免import *

File -> setting -> Editor -> Code Style -> Java -> Imports

详解Mybatis查询之resultType返回值类型问题【4种情况】

编译软件:IntelliJ IDEA 2019.2.4 x64 操作系统:win10 x64 位 家庭版 Maven版本:apache-maven-3.6.3 Mybatis版本:3.5.6 文章目录 引言一、查询单行数据返回单个对象二、查询多行数据返回对象的集合三、 查询单行数据返回Map[Key,…

pandas学习

(个人学习使用) 添加索引 # index是行索引,columns是列索引 pd.DataFrame(score, indexidx, columnscol) 常用属性和方法 data.shape # 形状 data.index # 行索引 data.columns # 列索引 data.values # 里面的值,结果是ndarray类型数组 …

SpringBoot登陆+6套主页-【JSB项目实战】

SpringBoot系列文章目录 SpringBoot知识范围-学习步骤【JSB系列之000】 文章目录 SpringBoot系列文章目录本系列校训 SpringBoot技术很多很多环境及工具:上效果图主页登陆 配置文件设置导数据库项目目录如图:代码部分:控制器过滤器详细的解…

docker Registry私有仓库

一、docker自带的本地私有仓库配置 #首先下载registry镜像 docker pull registry#在daemon.json文件中添加私有仓库地址 vim /etc/docker/daemon.json {"insecure-registries": ["192.168.60.11:5000"], #添加,注意用逗号结尾"registr…

验证码登录如何实现?

手机验证码登录 1、需求分析2、数据模型3、代码开发-交互过程4、代码开发-准备工作5、代码开发-修改LoginCheckFilter6、代码开发-接口开发7、前端代码介绍8、启动测试 1、需求分析 为了方便用户登录,移动端通常都会提供通过手机验证码登录的功能。 手机验证码登录…

Android性能优化之修复游戏中内存泄漏(java层)

游戏在bugly上内存OOM越来越严重,因此,近期对内存进行优化。从java层的内存进行优化开始,通过LeakCannary或者adb shell 获取到内存快照,发现好几处内存泄漏点。 1.单例类持有Activity: 查看内存快照,该闪…

MFC第二十天 数值型关联变量 和单选按钮与复选框的开发应用

文章目录 数值型关联变量数值型关联变量的种类介绍 单选按钮与复选框单选按钮的组内选择原理解析单选按钮和复选框以及应用数值型关联变量的开发CMainDlg.cppCInputDlg.hCInputDlg.cpp 附录 数值型关联变量 数值型关联变量的种类介绍 1、 数值型关联变量: a)控件型…

STM32MP157驱动开发——按键驱动(异步通知)

文章目录 “异步通知 ”机制:信号的宏定义:信号注册 APP执行过程驱动编程做的事应用编程做的事异步通知方式的按键驱动程序(stm32mp157)button_test.cgpio_key_drv.cMakefile修改设备树文件编译测试 “异步通知 ”机制: 信号的宏定义&#x…

请问学JavaScript 前要学html 和css 吗?

前言 html和css可以理解为是一个网站的骨架和皮肤,这两部分做好后整个网站的外观展示的完成度基本就有了个90%左右,所以在学习js前是需要学习html和css 的,这两部分不用花特别多的时间(虽然css如果想做一些非常炫酷的效果个人认为…

记一次容器环境下出现 Address not available

作者:郑明泉、余凯 困惑的源地址 pod 创建后一段时间一直是正常运行,突然有一天发现没有新的连接创建了,业务上是通过 pod A 访问 svc B 的 svc name 的方式,进入 pod 手动去 wget 一下,发现报错了 Address not avai…

Roslyn 动态编译

NET 编译器平台(.NET Compiler Platform) 也称为Roslyn,是Microsoft的一组用于C#和Visual Basic (VB.NET) 语言的开源 编译器和代码分析 API。 该项目特别包括C# 和 VB.NET 编译器的自托管版本——用语言本身编写的编译器。编译器可通过传统…

vue2路由(个人学习笔记四)

目录 友情提醒第一章、路由简介1.1)什么是路由1.2)安装路由插件 第二章、自定义路由器2.1)创建路由器文件index.js文件2.2)index.js文件中配置路由信息 第三章、使用路由器3.1)在main.js文件中将路由器绑定到Vue对象3.…