有时候,大佬们总是会特立独行。因为像我这样的常人总是想不通,究竟是怎样的情境,连B站这样的大厂面试都可以推掉?
缘起一通电话,踏出了改变人生轨迹的第一步
我是小瑾,今年28岁,2016年毕业于陕西科技大学工业工程专业。毕业之后在成都一家公司做生产管理,管理车间线的生产计划、人员、机器之类的。
每个月三千来块的工资,干着最苦最累的活,六点起床、到晚上十点才下班,很多时候节假日都要工作,基本没有休息时间。
工作车间的生产环境也很差,到处是灰尘、机油 ,还有各种钣金材料, 一身脏还不说,还经常把衣服裤子划破口,身上也经常划伤。
在成都呆了半年,公司扩张在湖北咸宁开了新的基地,就把我调过去了。
在咸宁这边升职当了科长,干了一年多,工资依旧不高。加上这份工作的辛苦与劳累,在2018年上半年我离职了。
当时离职本来也没想着转行,但是又不知道做什么。就开始在网上海投简历,各种类型的职位都投过。
后来,有一家线下联系到我,一开始我觉得是骗子就没理他。在他的软磨硬泡下,我开始被软件测试的各类好处吸引,入门门槛低、薪资高…
回想起在工厂薪资跟不上付出的日子,又跟周围小伙伴的优秀对比起来,我很不甘心现下的状态。慢慢地,我动摇了。
于是,在2018年5月底,我从湖北来到南京,开始了为期4个月的线下。
刚入行就遭遇同事质疑,通过学习找回自信
在南京的线下,知识点讲的还算全面,但是都只是些皮毛,浅尝辄止,有些技术点也跟不上潮流。
学完以后,我就进入了一家华为的外包公司做测试。因为没有过测试的工作经验,当时的薪资是9k,没有年终奖,五险一金也是最低比例。
刚进入公司的时候,我连测试环境之类的都搞不清楚,怎么连linux机器也不知道。好在当时的测试组长比较包容。但是也经常会被同事们质疑自己的测试能力,当时压力真的很大。
就有了迫切提升的心情,再加上入职以后了解到我做的仅仅是点点点,职业的未来还在自动化,于是摸索到网上找相关的资料。
在经历了几个月的学习后,2020年1月份,我成功跳槽到了上海的一家自研公司做自动化,17k*14薪,全权负责整个项目。
在这之前我也去B站面试过自动化,一面、二面都过了。到了第三面的时候,估计是问到对测试开发的理解,我没有回答得好吧,因为经验不太足就被刷下来了。
所以为了一雪前耻,学完测开后我也有去B站面试测开,一面过了,然后我直接把二面推掉了。(为啥推掉往后看你们就知道了~)
继续进阶,成就自我
踏入测试行业以后,要学习的东西很多,渐渐也和之前的同学朋友断了联系。但也有在慢慢扩大自己的测试圈子。比起之前,大家反而更有共同语言,也挺不错的。
20年4月份,为了让自己的测试技术更上一个台阶,我开始学习测开。
那段时期,让我印象最深刻的是项目开发阶段了。
学习难度大、代码量也大 。要给大家分享的技巧其实也没啥,还是要多练习、多复盘,把每个知识点都吃透,再举一反三、不断地优化 ,重点还是要坚持。
学完之后,自己投过简历,简历通过率都是100%,最后去的公司,是通过朋友内推,入职了电商新秀公司。
现在的薪资是25k,周末双休、加班有双倍工资、每月租房补贴1200、五险一金、零食下午茶、免费晚餐夜宵…整体算下来,年薪也快接近50万了。(有了这么香的offer,还去B站二面啥)
现在我所在的公司发展挺好的,团队也很优秀,相信我可以在这里更好更快地成长。
做为一名测试人,我想分享一下这些年来,我对于技术一些归纳和总结,和自己对作为一名高级自动化测试需要掌握那些技能的笔记分享,希望能帮助到有心在技术这条道路上一路走到底的朋友!
1、软件测试基础理论知识:
软件测试理论知识是开展测试工作的理论依据和支撑,是测试很重要的阶段必须掌握的技能。
软件的质量模型:软件测试过程保障软件的质量,从哪些方面保障可以从质量模型出发思考
测试分类:软件测试过程可以按照不同角度进行分类,基础测试到高级测试递进过程
开发流程:告诉测试人员一个软件完整的生命周期,软件从无到有到消亡的过程
测试流程:掌握并指导测试人员在实际项目中如何开展测试工作。这要求测试人员对常见的主流测试流程有较为透彻的理解。遇到不同的软件项目,知道从何处着实能最有效率的测试软件缺陷
测试计划与方案:如何规划在项目中开展测试活动,确保测试活动有序进行
设计用例方法:黑盒测试阶段必须掌握的一些测试用例的设计方法。比如黑盒测试用例的设计方法、测试用例元素等等
软件缺陷:在测试执行过程中应该确定缺陷并提交缺陷报告
缺陷管理:提交缺陷后在实际工作中如何和开发协助处理验证提交的问题。例如:bug的等级优先级分类、bug的描述、bug的生命周期、缺陷管理工具使用,如禅道等。
测试报告:测试过程的回顾和结果确认,生成系统性的专业软件测试评估报告。
2、软件测试功底技术——Linux系统
linux系统是主要的服务端操作系统,也是从事IT岗位的大部分人员必须具备的基本技术之一。
linux系统基本知识:多用户,多任务,发行版本等
常见 linux操作命令:日志查看,文件压缩、解压,用户管理,文件权限等
会部署和配置基本的应用jdk、 mysql、 tomcat
docker安装使用
编写基本的 shell RAD本
远程终端工具使用: shell, xftps等
3、软件测试功底技术——Sql数据库
数据库作为软件系统必备的应用系统,在诸如接口测试、性能测试等等过程中往往需要操作数据库,验证数据正确性完整性,都离不开数据库的增删改查操作,在项目部署阶段数据库还需要配合项目部署。在性能测试、接口自动化测试中都需要数据库的支撑。
数据库基本概念
关系型数据库
MYSQL基本的增改查语句,存储过程
MYSQL复杂查询、多表查询
MYSQL索引及事务相关概念
数据库客户端工具使用:如 Navicat
4、软件测试功底技术——编程语言
推荐没有编程基础的朋友可以学习Python语言
Python语言的学习内容包含以下知识点:
Python基础:Python语言特点、运行环境、基本语法、代码风格、示例程序
数据结构:
基本数据结构:数字、字符串、类型判断、类型转换、切片、字符串格式化、数值运算、位置参数和关键字参数;
组合数据结构:列表、元组、范围、字典、集合、不可hash对象、解包、内存地数据结构址、不可变数据
程序控制:顺序结构、循环结构、判断结构、异常处理、逻辑运算符
函数:定义函数、函数的参数、返回值、变量作用域、匿名函数、常用内置函数
模块和库:模块和包、import关键字、常用标准库、常用第三方库、包管理工具pip
面向对象:面向对象起源和优势、面向对象的特性类和对象的联系、对象的特殊方法
日志记录:baseConfig、文件日志、邮件日志、定制格式、内置占位符、等级过滤、分级传播、配置文件
测试框架:unitest、pytest等
并发编程:多进程、多线程、协程、线程池、同步控制、线程通信、分布式、猴子补丁、 async语法、生成器
网络编程:socket编程基础、TCP服务端和客户端、并行请求处理、HTTP服务端和客户端
5、软件测试自动化进阶——接口测试
接口测试本质也是功能测试的一种,通过脚本或者工具,模拟客户端对服务端接口进行调用。因为是从接口层测试,所以能更早的发现问题,从而提高测试效率,降低修复成本。
http/httpst协议学习
常见请求方法学习:GET、POST
cookie和 session学习
接口的基本概念
接口文档认识
接口测试用例编写
接口测试工具使用:postman、Jmeter、SoapUl
6、软件测试自动化进阶——性能测试
性能测试的技术要求很高,不仅仅要对性能测试的指标、测试分类、测试设计有很深刻的理解。还要学习系统业务和架构相关知识,这样才能更好的设计性能场景。
性能基本概念:性能测试意义、常见性能指标理解、性能测试的分类
性能测试流程:性能需求分析、性能场景设计、测试脚本编写、测试执行资源监控、性能调优、回归测试
Jmeter及 roadrunner使用
性能测试报告输出
7、软件测试自动化进阶——app自动化
越来越多的项目和系统通过移动端来提供服务,移动端的软件质量越来越重要,App自动化测试已经成为自动化测试的重要内容。借助Appium,使得App自动化测试和Web自动化测试有很多相通之处,不过作为测试工程师,依然需要掌握移动端应用的工具和特性。
Appium移动测试环境搭建:Appium ServerAppium和 Desktop、 Android运行环境搭建、模拟器安装和连接、真机设备调试模式、adb、 weditor、 - - UiAutomator22、 Monkey
Appium元素定位:原生应用元素定位、纯web应用元素定位、混合应用元素定位
Appium元素交互:等待元素加载,元素的基本属性和方法、滑动、拖动、缩放操作、下拉选择操作、 toast消息处理、常见控件分析、常见布局分析
封装测试框架:集成Appium、adb等工具、预定义异常处理、记录Appium日志、屏幕截图、打造多用途测试框架
8、软件测试自动化进阶——持续集成和持续测试
持续集成和持续测试是一个在迭代中构建、测试产品并修复Bug的过程。它有助于团队在开发阶段的初期发现缺陷,这时的缺陷通常相对不那么复杂,并且更容易被解决。通过持续集成和持续测试,可以尽早地将错误风险降至最低,并加快交付更好质量的软件。
版本控制Git:背景介绍、环境部署、工作区、暂存区和提交区、分支创建与合并、解决冲突、标签、 config与别名、本地仓与远程仓、 GitHub与码云
持续集成 Jenkins:背景介绍、环境部署、文件结构、远程仓库与私服、ja包依赖、插件管理
容器Docker:了解 Dockers的镜像、仓库、容器、 Docker Engine和架构图、网络设置、数据持久化
学习不要孤军奋战,最好是能抱团取暖,相互成就一起成长,群众效应的效果是非常强大的,大家一起学习,一起打卡,会更有学习动力,也更能坚持下去。
喜欢软件测试的小伙伴们,如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!
下面是配套资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!
可以在下方我的公众号免费领取一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。