2023,我年过30,测试行业的求职危机也降临到我头上了···

在软件测试行业摸爬滚打这么多年,即将人到中年,也会和大家一样面临转型或者跳槽的问题。这里总结了一下自我的看法。 

对于找工作这个事情,有这么个普遍现象。工作供求无法匹配~

1、对于测试招聘者,特别是一、二线互联网公司的招聘者最苦恼的事儿就是招人。对于公司而言,想找到一个合适的人很难,每天各种撒网,简历看几百份,面试几十个人,能找到一个中意的小伙伴就不错了。

2、很多测试小伙伴发现找工作很难,特别是百度、腾讯这些大公司,他们需要有以下能力:代码要会写,要有软件架构能力,面试也总是能问到平时根本用不到的技术问题。而工作经验,沟通能力,学历、年龄…这些都成了面试官否决的理由。

为什么?

能力要求不匹配是最核心的问题。2010年后,互联网行业的真正兴起让国内软件开发模式开始缓慢调头,快速迭代的模式逐步兴起,开发周期越来越短,迭代越来越快,但系统越来越越庞大、复杂。原来的测试工作模式和工作范围越来越无法满足要求了。

但大量从业人员技能范围转变是一件很难的事情,行业是有巨大惯性的。从宏观上看,大量QA技能转变跟不上需求转变是造成市场供求不匹配的主要原因。

应该怎么办?

为了帮助大家迅速建立测试思维能力,早日斩获大厂Offer、掌握职场话语权,特意给大家准备了一份超实用干货学习资源,涉及的内容非常全面,赶快领取吧!

那么软件测试的职业发展方向有哪些?作为软件测试工程师,又该如何为自己制订职业发展规划?

第一:只做手工测试,不懂系统实现的测试工程师的职业发展会越来越受限。

第二:能够转型成适应市场需求的同学将在近几年的时间获得超额回报(因为市场供不应求,企业不得不抬高价格来寻找这样的人)。

第三:对于个体来说,自我成长永远最重要,自己永远要对自己的发展负责,别依赖外部环境,自己想办法变成市场的香饽饽才靠谱。

扫描二维码关注公众号,回复: 14626706 查看本文章

那么,那些一面试就各种offer的人,为什么如此抢手?

我今天主要从技术角度去说一下:

01测试的核心-项目实战经验

一般来说,理论部分所有人都是需要掌握的,实际工作中理论不会作为考核人才的标准。这里不是说基础知识不重要,而是从面试角度来讲,如果你有完整系统的测试项目实战经验,你就超过了50%以上的应聘者。

什么叫做比较复杂系统呢?

投入50人才开发出来的系统就可以称作一个复杂系统了。因此,复杂系统并不是很罕见。但是,如果你只接触一个简单的模块,甚至只是测试一个稳定模块的维护性开发,而不是通盘理解,不能说是测试过复杂系统。有从头到尾接触一个完整项目的经历很宝贵。

02测试的基本-测试考证

从我们公司的HR来看,他们面试过数百人,经常会问几个问题:如果测试时间不够,你会怎么办?如果让你去测试一个你完全不熟悉的系统,你会怎么办?你平时会使用哪些测试设计方法?看似很稀松平常的问题,非常考验人。

因为大部分从业者都没有经受过系统训练和学习,工作多年,依然技能不足,意识跑偏。对软件测试之后的工作来说,ISTQB的考试以及系统的知识,建议去考个ISTQB证书,你就能超过80%以上的应聘者了。

03一步步进阶测试开发

想要offer拿到手抽筋,最快的方法就是提升自己的技术水平。只会手工点点点注定走不长久,那如何从功能测试进阶到自动化测试/测试开发,需要具备哪些硬技能呢?(以前都是简单的罗列出一些知识点,这里具体来说一下)

1)具备一定测试经验。

我猜肯定有人会说:这不是废话吗?测试开发没有测试经验怎么做!但我要反驳你了,就是有些学习能力很强的朋友,可谓手到擒来。但对于我们普通人而言,只有设身处地的经历过测试人员的痛点和难点,才能切实解决他们的问题。

2)会使用常用重要的测试工具。

这里划重点,可能很多小伙伴依然在做手工测试,但如果想要胜任测试开发,你必须进阶自动化,会使用测试工具,比如ui自动化常用的selenium;接口自动化常用的Postman;性能测试常用的Loadrunner、jmeter;单元测试常用的testng、junit;安全测试常用的appscan,js注入,xss注入,sql注入等等。

3)具备测试工具开发能力。

下面介绍一些主流的技术栈:

测试工具系统框架搭建:

1)java+maven+SpringMVC ;

2)python+django

对于第一种框架,最好创建分层化的多模块工程,以便更好的设计代码框架和结构。通常dao层主要是和数据库关联;web层是controller,是前端和服务层的衔接;service层提供一些公共服务或业务处理逻辑。Maven工程有了之后,运用当前主流的框架-springMVC,将前后端数据库关联起来。

对于无代码基础,想入门测试开发的小伙伴,可学习第二种框架:python+django,较为易学易用。

前端页面:html,css,jquery,bootstrap,Echarts,前端页面是门脸,是使用人员操作的入口,也是数据输入和展示最直观的地方。

Css样式决定页面布局和美观度;jquery是一种js框架,极大地简化了 js 编程;echarts能够提供简单易用的常用图表,使页面更加有档次感、数据展示更加直观简洁。

后端服务:spring,mybatis,使用Spring框架可以简化很多基础性的工作,配置好后可以方便构建业务应用,是一个非侵入性的轻量级容器。

数据库:Mysql或Orcale 的数据库安装,库表创建,字段设计,常用的sql语句

系统:能熟练在windows或linux系统上搭建项目,日志查看等操作

服务容器:tomcat服务部署,nginx负载配置,docker使用

持续集成:git,jenkins

开发工具:idea和eclipse

代码调试:testng或junit的单元调试及debug和远程debug使用

04技能以外-你的个人特质

一般有如下特质会大大加分:快速学习、系统性学习、学以致用、系统性思考、强大的推动力、技术思维、突出的沟通能力、条理性、抗压性、乐观精神、抗挫折能力、迅速调整的能力、迭代改进的意识、ownership、团队合作、愿景和规划。 这些特性体现人的内核,有强大内核的人,做什么都行,技能暂时不足,也一定能补足。所以,在招聘的时候往往对是否录用的判断起决定性作用~

05这里补充一条基础知识

这个你得会,操作系统工作基础原理与基础操作、网络知识如TCP/IP, HTTP知识、数据库知识、SQL的熟练使用、Web及移动端知识、安全知识、基本的安全攻防原理、软件工程/开发过程管理···

真正解决问题的机会,还是来源于工作中,关于技能提升,不管是自学也好,还是参加培训机构,都是需要一个正确的方向去引导你学习,这样学习起来也会比较轻松,不会走多余的弯路,所以说思路很重要。

学习的动力其实是一个很简单的东西,说成目标可能会更好理解一点,你想学成之后能达到什么程度,这样你也能在学习的过程中不被困难所难倒,也会有源源不断的动力促使你前进。

加油吧,测试人!路就在脚下,成功就在明天!

如果您对你的职业后半生还有迷茫得话,不如现在行动起来树立新的职业规划,不再为以后职业后悔。

最后为了助力测试员朋友们跳槽面试、升职加薪、职业困境,提高自己的技术,本文给大家整了一套涵盖“软件测试架构面试进阶所有技术栈”的快速学习方法和面试资源。

本次是免费分享!

通过大数据总结发现,其实软件测试岗都是差不多的。常问的有下面这几块知识点:

软件测试基础

软件测试的步骤是什么?

如何录制测试脚本?

应该考虑进行如何测试的测试方法

怎样估计测试工作量?

测试设计的问题

当测试过程发生错误时,有哪几种解决办法?

测试执行的问题

测试评估的目标

如何提高测试?

C/S模式的优点和缺点

B/S模式的优点和缺点

Linux

grep和find的区别? grep 都有哪些用法?

查看IP地址?

创建和删除一个多级目录?

在当前用户家目录中查找haha.txt文件?

如何查询出tomcat的进程并杀掉这个进程,写出linux命令?

动态查看日志文件?

查看系統硬盘空间的命令?

查看当前机器listen 的所有端口?

Python

统计python源代码文件中代码行数,去除注释,空行,进行输出?

python调用cmd并返回结果?

冒泡排序

1,2,3,4 这4个数字,能组成多少个互不相同的且无重复的三位数,都是多少?

请用 python 打印出 10000 以内的对称数(对称数特点:数字左右对称,如:1,2,11,121,1221 等)

给定一个整数 N,和一个 0-9 的数 K,要求返回 0-N 中数字 K 出现的次数

判断 101-200 之间有多少个素数,并输出所有的素数

一个输入三角形的函数,输入后输出是否能组成三角形,三角形类型,请用等价类- 划分法设计测试用例

MySQL

你用的Mysql是哪个引擎,各引擎之间有什么区别?

如何对查询命令进行优化?

数据库的优化?

Sql注入是如何产“生的,如何防止?

NoSQL和关系数据库的区别?

MySQL与MongoDB本质之间最基本的差别是什么

Mysql数据库中怎么实现分页?

Mysql数据库的操作?

优化数据库?提高数据库的性能?

什么是数据的完整性?

Web

Web测试和app测试区别?

WEB测试环境搭建和测试方法

WEB测试教程

WEB测试要点及基本方法

Web测试页面总结

接口测试

什么是接口

如果模块请求http改为了https,测试方案应该如何制定,修改?

常用HTTP 协议调试代理I具有什么?详细说明抓取HTTPS协议的设置过程?

描述TCP/IP协议的层次结构,以及每一-层中重要协议

jmeter,一个接口的响应结果如下:

接口产生的垃圾数据如何清理

依赖第三方的接口如何处理

测试的数据你放在哪?

什么是数据驱动,如何参数化?

性能测试

你认为性能测试的目的是什么?做好性能测试的工作的关键是什么?

服务端性能分析都从哪些角度来进行?

如何理解压力测试,负裁测试以及性能测试?

如何判断是否有内存泄漏及关注的指标?

描述软件产“生内存泄露的原因以及检查方式。(可以结合- 种开发语言进行描述)

简述什么是值传递,什么是地址传递,两者区别是什么?

什么是系统瓶颈?

selenium

如何开展自动化测试框架的构建?

如何设计自动化测试用例:

webdriver如何开启和退出一个浏览器?

什么是自动化测试框架?

Selenium是什么,流行的版本有哪些?

你如何从命令行启动Selenium RC?

在我的机器端口4444不是免费的。我怎样才能使用另一个端口?

什么是Selenium Server,它与Selenium Hub有什么不同?

你如何从Selenium连接到数据库?

你如何验证多个页面上存在的一个对象?

XPath中使用单斜杠和双斜杠有什么区别?

如何编写SeleniumIDE/ RC的用户扩展?

如何在页面加载成功后验证元素的存在?

你对Selenium Grid有什么了解?它提供了什么功能?

如何从你的Java Class启动Selenium服务器?

Selenium中有哪些验证点?

什么是XPath?什么时候应该在Selenium中使用XPath?

计算机与网络

一台计算机的IP是192.168.10.71子网掩码255.255.255.64与192.168.10.201 …

请简述DNS、活动目录、域的概念。

10M兆宽带是什么意思?理论下载速度是多少?

什么是IP地址?

OSI七层网络模型的划分?

TCP和UDP有什么不同?

HTTP属于哪一层的协议?

HTTP和HTTPS的区别?

cookies和session的区别?

HTTP的get请求和post请求的区别?

HTTP1.0和HTTP1.1有什么区别

TCP的连接建立过程,以及断开过程?

客户端使用DHCP获取IP的过程?

写出某个网段的网络地址和广播地址?

人力资源

你的测试职业发展是什么?你自认为做测试的优势在哪里?

你找工作时,最重要的考虑因素为何?

为什么我们应该录取你?

请谈谈你个人的最大特色。

一个测试工程师应具备那些素质和技能?

还有问一下你是怎样保证软件质量的,也就是说你觉得怎样才能最大限度地保证软件质量?

为什么选择测试这行?

如果我雇用你,你能给部门带来什么贡献?

文档获取方式:

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

猜你喜欢

转载自blog.csdn.net/nhb687095/article/details/129952534