从自考大专到出走公司,从半年无业露宿深圳北站,从8k…到11.5k…再到20k,我的经历值得每个测试人借鉴 或许学历并没有那么重要
12年高考之后,在朋友的介绍下(骗了过去),没有好好的读大学,走的自考这条路。
当时他告诉我按照他的办法,可以上武大,只是过程有点点复杂,自考大专,在一所和武大有合作的野鸡大专获得学历之后,再通过自考去读武大,获取武大的毕业证。
前前后后花了5年的时间,自考大专学的是地质工程,自考本科选的是行政管理,是两种完全不搭的学科。那些日子给我的感觉就是很坑很迷,无时无刻不在想着什么时候才能结束。毕业后我也没有从事相关的工作,更让我觉得那段日子是不值得的
比赚大钱更重要的,是你的定位和方向
在大学毕业之后,我没有犹豫的去了深圳,虽然不知道干嘛,但当时年轻气盛的,始终觉得在大城市会有更广阔的空间施展。
当时也没有继续再管家里要生活费,城市很大,工作机会很多,但我自己当时真的太迷茫了,一直没有找到自己的定位与方向,一直在适应着这个社会,这段适应的过程花了我整整大半年的时间。
就当时整整大半年的时间,都处于无业的状态,当时身上也没钱、没有地方住,经常就在深圳北站、肯德基这种地方过夜。
时时刻刻知道现在的处境并不是自己想要的,试过很多方法去改变,但真的好难,难在无从下手。
关于怎么走上测试这条道路,说来有点戏剧性,当时就是在百度搜索“怎么赚大钱”,弹出来了关于测试行业的广告,经过一番了解就开始了自学测试,真的是因为穷,然后又想赚大钱。后来一番自学就简单入了行。有里目标之后,每天都干劲十足,这行业给我感觉是“入手简单”,像我这没有任何经验的人也能快速掌握这门技术。
当时自学完就去移动做外包去了,有点神奇,突然一下就进了大厂,后来平复了心情,干了一年半之后,对当时的薪资8K,有点不是很满意,所以我又去百度了一下“测试怎么加薪”,然后了解到了自动化测试…
如果你在学习的过程中不知道去哪里找资料,那么我整理的配套视频资源和文档会是你的良师益友,或许可以给你带来一些实际性的帮助与突破。
学习比工作实践,能更快提升
于是我有了新的方向:自动化,我又开始上网买资料,找视频,给自己制定学习计划,经常下班回家,晚上学习,到凌晨才能完成自己的计划,那段时间也感觉自己进步神速,感觉能很快成为大神那种,有很多内容是我在工作实践过程中,摸索不到或者是要走很多弯路才会发现的。
自学完我就跳槽了,新公司给我报了11.5K,我当时就直接去了,后来自己在做项目的时候,也暴露了自己的短板:不会测开, 但是作为一个自学上来的我,想要学习测试开发还是特别困难,遥远的,还好公司内的大佬愿意指点我,时不时的给我一些资料和给我讲测开的学习框架。
学习测开的过程中,也是学习欲望很强烈,当时就是一个想法:更好满足项目的需求,让自己更值钱,学完测开之后,我并没有去“匆匆上阵”,选择了半年的时间去巩固,去反复看录播学习,并一直在实操。
后来又留下干了1年多,晋升机会十足是渺茫,就一直在留意跳槽的事,最后也收到了一份20K的offer就直接去了,但由于工作原因,就不能在这里和大家分享了。
关于以后,打算朝测开、架构或者是管理的方向发展,未来的规划,最重要的是自己的定位,才能让自己有个方向去努力靠近。
最后也分享一下我的学习路线
1、软件测试基础知识
学习目标:对软件测试整理的测试流程有清晰的概念,了解软件测试到底是做什么的,软件测试的各种专业术语是什么意思,以及多种不同的软件测试类型区分,测试用例的作用、本质以及如何撰写,测试报告、缺陷管理、常见的软件测试工具(selenium|Postman|禅道的认识)等等...
① 软件测试概念:常见的软件测试类型、软件测试的概念掌握、软件质量模型等等;
② 测试用例:明白测试用例如何设计,测试用例的系统化设计原则,常见的几类测试用例设计方法(因果图法、场景法、正交表法、边界值法、等价类方法等等);
③ 缺陷管理:正确掌握何谓“缺陷”,常见的缺陷判定方法,缺陷报告的撰写方法,缺陷如何系统性的跟踪和维护等等;
④ Web项目实战:基础的Web测试项目实战,通过实战了解和掌握基础的软件测试流程、测试项目分析、测试计划和测试方案的设计等等;
⑤ App项目实战:掌握和了解APP的测试方法,Android、IOS、鸿蒙等不同系统的测试解决方案,Adb的应用等等;
⑥ 测试管理工具:禅道、Testhub、Jira等不同测试工具的特性和优劣,以及测试管理工具的应用场景和原理等等;
2、计算机基础知识
学习目标:主要掌握计算机的系统基础原理(内存信息、运作原理、Linux操作系统命令)、测试的基本理论知识、前端方面的基础知识(HTML+CSS+JavaScript)等...
① 计算机基础:掌握和熟悉计算机的组成部分(CPU、GPU、内存等等)、常用的Dos命令等;
② 测试理论:软件测试的目的和最终定义,软件测试的术语系列、软件产品的基本测试流程和系统化的测试模型;
③ HTML基础:HTML标记语言的基本语法和结构、CSS和DIV层及网页样式的概念,熟悉和掌握常见的HTML标签语法和作用,以及JavaScript语言的基础语法和应用;
④ Linux系统:掌握Linux系统的安装和操作,Linux终端的各类常见命令的作用(文件操作命令、用户权限管理命令、应用安装和升级的命令)、Docker的安装和使用、以及常见的Linux远程连接方式和方法,其次还要掌握Vi编辑器的使用;
3、Sql数据库的学习
学习目标:掌握基本的sql语句的使用方法,以及常见的sql增删改查、聚合函数以及各类条件查询、子查询的命令。同时需要了解Sql数据库在诸如接口和性能测试中扮演的“角色”和意义...
① 数据库的基本概念:什么是数据库,数据库都有哪些类型;
② 数据库语法:学习掌握Sql语句的基本语法;
③ 数据库查询:学习和掌握多种数据库的查询方法,比如复杂查询、多表查询、条件查询等等;
④ 数据库索引:了解和掌握数据库索引以及数据库事务相关的概念;
⑤ 数据库客户端:常见的数据库客户端的使用方法,以及不同的客户端的优劣和应用场景;
4、编程语言学习
学习目标:对于软件测试工程师而言,想要在软件测试领域做的不错,就需要掌握至少一门编程语言。没有编程基础的我们建议选择Python,如果有一定编程语言基础的可以选择Java。但是Java入门周期和学习难度相对于Python要大一些,但是两者在市面上的应用领域其实差不多,Python在某些领域(人工智能、爬虫和数据分析)要更优于Java语言。所以测试猿大课堂的软件测试课程大纲,就是以Python语言为课标的...
① Python基础:学习和掌握Python语言的基础语法、Python的运行环境以及安装;
② Python数据结构:学习和掌握Python的几种数据结构,诸如基础数据结构(数字类型、字符串类型、数值运算、关键字参数等等)和组合数据结构(列表、字典、元组、集合、hash对象、内存数据结构地址等等);
③ 程序控制:学习和掌握Python语言中的异常处理、顺序/循环/判断/结构、逻辑运算等;
④ 函数:掌握和学习Python的函数运用、函数的定义和作用域等,内置函数和函数传参;
⑤ 面向对象:学习Python语言面向对象编程的特点,掌握对象编程的特色和优势,学习面向对象编程的底层逻辑及特殊方法;
⑥ 日志:学习掌握Python的日志格式、配置文件以及内置的占位符等等;
⑦ 测试框架:学习和掌握Python中的Unittest和Pytest两种常用的测试框架,两种框架本身可应用于单元测试,但更多的是用于编写自动化测试脚本【非常重要】;
⑧ 并发编程:和Java语言一样,Python有其独特的多进程、多线程、线程池、分布等并发编程,学员需要学习和掌握Python的并发编程的特色和方法;
⑨ 网络编程:学习和掌握TCP服务端和客户端的使用方法,学习Python对HTTP/HTTPS协议的响应,以及socket的编程基础;
5、接口测试
学习目标:学习和掌握接口测试的概念和原理。掌握HTTP/HTTPS协议的原理,学习和掌握Dubbox的接口测试方法和协议接口能力,主要掌握Postman的操作以及使用技巧...
① HTTP/HTTPS协议:学习和掌握HTTP/HTTPS协议的原理;
② 请求:学习和掌握常见的Get、Post请求;
③ Cookie:学习和掌握Cookie、Session的原理以及解决方案;
④ 接口相关:学习掌握接口的文档、接口的基本概念以及接口的测试用例编写,熟悉和掌握接口相关的Postman、Jmeter、SoapUI等测试工具的使用方法;
6、性能测试
学习目标:性能测试属于高端测试工程师需要掌握的技术,对技术要求也有一定的门槛。学习性能测试需要掌握系统架构、Loadrunner等常用的测试工具。学习系统化的测试思维和流程,掌握性能测试的设计与需求分析,以及编写测试脚本...
① 性能测试基础:学习和掌握性能测试的意义、性能测试的分类以及常见的性能指标概念的理解;
② 性能测试需求与设计:学习掌握性能测试的系统化需求分析、性能测试的场景设计;
③ 性能测试进阶:主要掌握性能测试的脚本编写原理与方法,以及监控测试执行的资源,学习性能调优、回归测试等相关的概念与底层逻辑;
③ 性能测试工具:深度掌握Jmeter和Loadrunner的拓展用法,学习性能测试的报告输出;
7、App自动化测试
学习目标:APP自动化测试,是当前软件测试行业中较为主流的测试技术。我们需要掌握APP测试工具Appium的使用,掌握常见的多系统(Android、IOS、鸿蒙)系统的测试APP方法,移动自动化测试环境的搭建...
① APP测试环境搭建:主要学习掌握Appium、模拟器、Adb、Desktop等测试环境搭建的必备知识,了解真机设备的调式模式,以及系统化的测试环境的搭建方法;
② Appium的使用:掌握Appium的元素定位(原生App元素定位、WebApp应用元素定位)与元素交互(常见的界面互动操作方法、元素的基本属性和页面等待)方法;
③ 测试框架封装:学习和掌握Appium集成、以及Adb工具的使用,了解移动App测试的深度应用(屏幕截图、异常处理、Appium日志解析等等);
8、持续集成和持续测试
学习目标:主要学习和掌握持续集成Jenkins、Git的环境部署,以及对应的系统化分支的学习,掌握Docker容器的部署和应用
① 版本控制Git:为什么需要版本控制,为什么是git,git的部署,git的分支结构,分支合并和冲突解决;
② 持续集成Jenkins:Jenkins的作用,enkins环境部署,基本的文件结构,Jenkins基本的使用以及插件的使用;
③ 容器Docker:Dockers的来源,docker镜像,容器;
我已经按照软件测试的学习大纲,我总结了一份针对0基础以及进阶到自动化测试/测试开发的视频教程,已经上传到网盘中,由易到难,非常全面,目前还在持续更新ing,需要的朋友下方可以自行领取。
0基础以及进阶到自动化测试/测试开发教程