十年软件测试经验,我的成长之道

news2024/11/16 21:54:48

有很多小伙伴问,测试职业的天花板是不是很低?

在回答这个问题之前,我想请大家先想一下,当初自己为什么会选择测试这个职业?入门门槛低?不需要写代码?工作比开发轻松?还是其他。这个理由或许就是问题的答案。很多测试人员之所以选择这个职业,是因为觉得测试相对开发来说比较“容易”。所以,天花板其实不是别人给的,恰恰是自己给自己设定的。

不论是开发还是测试,或者 SRE、DBA 等等,他们在核心能力点上有很多共通之处,只是在末端领域方向上有所分化。测试从本质上说,只是开发的一个方向,而不是区别于开发的岗位。因此,理论上他们之间可以相互转换。

事实上,我所在的企业里,测试转岗开发的情况非常普遍,这就足以说明这个问题。即便是测试专业,做到 P9 甚至更高级别的情况,也不是没有。他们既在技术上有深厚的基础,又在业务上有独到的见解。所以,所谓的天花板,最终取决的还是自己对测试职业本身的认知和实践。

有不少人会想,自己学技术并不擅长,但可以凭借熬资历坐上管理岗位,就能绕开技术的短板。而现实中的确也有很多这类情况,管理岗位可以不用亲力亲为,只需招聘比自己技术能力更强的下属来完成任务,看起来似乎一切都很理想。

这种途径真的可行吗?

我们需要用足够长远的眼光来看待这个问题。过去几年在互联网红利的加持下,企业需要抢占地盘,达到赢者通吃的目的。这个时期业务的成败,更多依赖的是投入速度而非人员素养,因此企业才会大规模、高薪水地进行招聘。在人员数量极速膨胀的情况下,难免就会鱼龙混杂。

但是行业的发展都有周期性,一旦进入冷静期,就势必要做出自我调整。在经济低迷的市场状况下,资本不再轻易为难以预见的收益买单,企业管理也由于资本投入的减少,开始由扩张化转为精细化。这也是近期“裁员潮”的原因:市场并不是没有空缺,只是变得更加理性。而成本高、产能低的纯管理角色(不要忘了测试毕竟是技术岗),在这种变化中就有较大的可能被“结构优化”。

退一步说,无技术的管理,即便幸运地在行业下调期保住饭碗,在团队内也会遇到不少的挑战。因为不懂技术,无法在方向上做出决策,无法判断下属产出的价值,优秀人才渐渐流失,团队整体走向平庸,自己仍然会遇到瓶颈。并且行业也在动态发展,终有一天量变会演变成质变,引起新一波的结构升级,如果能力没有跟上,依然逃脱不了被淘汰的命运。

那么测试技术是不是等于写代码?

首先我比较反感现在市场上把测试岗位分为“手工测试”和“测试开发”。这种划分方式,一方面强行降低了“手工测试”的入门门槛(手工的意思不就是点点点?),造成行业能力水平的混乱;另一方面让“测试开发”产生一种不该有的优越感,为了有别于“手工测试”而脱离业务。

我们必须要明白,技术存在的意义,就是为了产生业务价值。手工测试也好,自动化测试也罢,都是为了让业务发展得更好。比如为什么要做自动化测试,一定是因为我们判断它能给业务带来好处,而不是主观上或习惯上觉得要有自动化。因此,强行将自动化测试、性能测试与业务团队剥离,只会让两个部分的人员都没有成长。

举个例子,较早前我和教育行业某公司的一位测试经理交流过团队组建方法,她很惊讶于我们整个团队都在写自动化而不是构建专门的自动化团队。而我告诉她的是,只要采用合适的方法,让团队平均达到这种水平只需要三个月。我们经常过高地估计掌握技术的困难,也经常过低地估计自己学习技术的能力。

两年后,她的团队不巧遇到教育行业的调整,被迫进行人员缩减。优化掉的并不是“手工测试”,而是“测试开发”。她也很坦白的告诉我,少了这些测试开发,业务依然能够运转,但少了手工测试,团队立即就会完蛋。现实就是如此,个人的价值体现,最终还是要由业务价值做出判断。

讲到这,上面问题的答案就显而易见。没有所谓的手工测试和测试开发,技术也并不等同于代码。我们是否学习和采用某种技术的唯一标准,就是它能够给自己的业务带来多大的帮助,仅此而已。

当然,这不是说代码不重要,而是说要明白为什么学代码,学完代码又要如何应用。代码之所以关键,是因为它是很多技术的基础。比如自动化测试需要写脚本,白盒测试需要 Code Review,开发测试工具也离不开编程等等。

同样的,每个领域也都有自己的专业知识:接口测试需要理解 HTTP 协议,安全测试需要理解攻击原理,性能分析需要理解技术架构...... 技术世界浩如烟海,我们不用急于求成,可以在实践过程中,逐渐掌握各个领域需要的技术点,由点到线,再由线到面,最终发展成全面的技术体系。

测试之道的成长,从来没有捷径。这个世界不缺大道理,缺的是付诸行动的决心。明代哲学家王阳明在数百年前就提过:“知是行的主意,行是知的功夫;知是行之始,行是知之成”。

 如何你是想转行或者正在学习软件测试的请看完下面

 软件测试怎么学习?

相对互联网其他岗位而言,软件测试入门是非常简单的。虽然后期涉及到自动化测试等内容的时候回相对较复杂,但是对于新手而言,入门以及进入这个行业才是第一步。在工作中不断的积累经验以及提升个人能力。那入门阶段我们需要怎么做呢?

1、首先我们可以通过图书或者通过网络公开视频深入了解软件测试的概念以及相关的基础理论知识。这个过程大概一个月内就可以完成,主要是检验自己是否适合能够快速接受理解软件测试相关的知识。

2、有了一定的基础理论知识之后,可以找一个软件自己亲自按照方法检验一下自己学习的效果,从开始写测试计划、测试用例、到自己完成测试、并输出测试报告。在实际动手过程中肯定会遇到各种问题,将这些问题记录下来,可以通过加入社群咨询或者论坛交流的方式解决这些问题。最重要的是发现问题之后,在之后的学习中可以重点去学习相关的内容。一般而言,对于体量比较小的产品需要用1个月左右的时间,而比较复杂的产品则要用2个月,甚至更久。建议从小产品入手比较好。

3、在有了实际的操作经验之后,可以通过招聘网站的招聘要求,对应该公司的产品,再次进行实际测试。(一般情况下,如果去面试的时候能对该公司的产品有一定的了解程度,那面试成功的几率会更大)。

4、有了实战经验,就要开始尝试面试了。软件测试属于技术岗位,所以在面试的时候面试官会问一些关于技术的问题。你可以从网上找一些相关的软件测试面试题,遇到问题迅速查漏补缺,这样再去面试基本就没有任何问题了。

5、以上方法仅仅是介绍通过自学的方式,当然你也可以通过专门的培训机构去学习软件测试知识。课程内容涵盖基础功能测试、接口自动化、Web端自动化、移动自动化、性能测试,通过企业级实战项目,确保你从理论学习到实践,真正掌握中高端的测试技术。这样在学习完成后,你直接可以去面试了。

以上就是为大家介绍的怎样快速学习软件测试?软件测试学习方法!当然建议大家根据自己实际的自学能力来选择相应更加适合自己的方式学习软件测试。

首先学习路线不能错,不然就是在原地踏步。

 

 系统知识储备:linux、互联网网络基础、数据库、编程基础。

  linux基础:1、linux系统了解和环境熟悉

       2、常用的linux命令

         3、linux文件属性、权限、用户管理

       4、linux环境安装和使用

       5、环境变量

  互联网网络基础:1、网络架构通讯原理

          2、TCP、UDP、HTTP协议

          3、session与cookie

  数据库:1、mysql、oracle

      2、环境搭建与应用

      3、sql使用(关联查询、删除修改),存储过程,事务与编程

  编程基础:1、java、python

       2、开发环境与基本语法,类与对象,面向对象

       3、简单的框架


功能测试核心:测试模型,测试流程,用例设计,缺陷管理

自动化测试:web前端开发基础,浏览器调试工具,接口测试工具使用,web自动化测试(selenium),自动化测试框架,自动化测试平台

自动化测试框架:

性能测试:性能需求分析,性能测试工具使用,性能监控分析和调优

安全测试:抓包工具使用,安全漏洞原理,安全漏洞测试方法,漏洞的防范

测试进阶:sell脚本,测试工具的研发,敏捷测试&TestOps,mock,Docker,大数据测试

正在做测试的朋友可以进来交流,群里给大家整理了大量学习资料和面试题项目简历等等....

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

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

相关文章

科技政策 | 工业和信息化部办公厅关于组织申报2023年跨行业跨领域工业互联网平台的通知

原创 | 文 BFT机器人 6月1日工业和信息化部办公厅发布关于组织申报2023年跨行业跨领域工业互联网平台的通知;旨在贯彻《国务院关于深化“互联网先进制造业”发展工业互联网的指导意见》,落实《工业互联网创新发展行动计划(2021-2023年&#…

还有多少公司在使用H5?不怕被破解吗?

H5还有人在用吗 近几天,老板让我调查一下现在市面上H5的使用现状。粗略地调查了一下,发现现在使用H5的真不多了,但是还是有人在用H5的,原因无非一是成本低,相比户外广告,H5制作费用根本不值一提&#xff1…

Delta 一个新的 git diff 对比显示工具

目录 介绍git diff 介绍delta介绍 一、安装1.下载 Git2.下载 delta3.解压4.修改配置文件5. 修改主题6.其他配置和说明 二、对比命令1.在项目中 git diff 常用命令2.对比电脑上两个文件3.对比电脑上的两个文件夹 三、在Git 命令行中使用效果四、在idea 的Terminal命令行中使用效…

展览展会邀请媒体现场报道需要注意什么?

传媒如春雨,润物细无声,大家好,我是51媒体网胡老师。 真开心今天与大家分享展览展会邀请媒体的一些经验,行业复苏,各行各业都充满了活力,每天胡老师都会接到大大小小展会邀请媒体报道的需求,那…

终端数据防泄漏

场景描述 科技研发类公司在日常工作中,存在员工对源代码数据有意或者无意的传播。软件企业作为以源代码数据为核心资产的行业,如果数据安全管理不规范,会出现员工把核心数据一锅端,使企业失去竞争力,造成不可估计的损…

代码随想录算法训练营第五十六天|583. 两个字符串的删除操作|72. 编辑距离

LeetCode583. 两个字符串的删除操作 动态规划五部曲: 1,确定dp数组(dp table)以及下标的含义:dp[i][j]:以i-1为结尾的字符串word1,和以j-1位结尾的字符串word2,想要达到相等&#…

自己尝试在springboot2.0微服务中内嵌一个FTP Server

1.pom.xml添加依赖 <dependency><groupId>org.apache.ftpserver</groupId><artifactId>ftpserver-core</artifactId><version>1.2.0</version></dependency> 2.yml文件添加Ftp服务参数 3.增加apache.ftpserver专用配置文件 文…

OWASO 之认证崩溃基础技能

文章目录 一、burp爆破用法1.Attack type爆破方式设置2.payload处理3.请求引擎设置4.攻击结果设置5.grap匹配设置 二、常见端口与利用1、文件共享2、远程连接3、Web应用4、数据库 三、爆破案例经验1、暴力破解攻击产生的5个原因或漏洞2、猜测用户名方法3、猜测密码方法 四、实验…

第七十三天学习记录:计算机硬件技术基础:微型计算机基础

一、微型计算机的组成&#xff1a; 微型计算机由硬件和软件两大部分组成&#xff0c;硬件是指构成微型计算机的物理实体或物理装置&#xff0c;包括微型计算机的微处理器、储存器、总线接口电路和外部设备&#xff0c;以及电源和机械构件等。软件是指微型计算机所使用的各种程…

Python3数据分析与挖掘建模(11)多因子:复合分析-分组分析与实现示例

1. 分组分析 1.1 概述 分组与钻取是数据分析中常用的技术&#xff0c;用于对数据进行聚合和细分分析。它可以帮助我们从整体数据中获取特定维度的汇总信息&#xff0c;并进一步钻取到更详细的子集数据中进行深入分析。 分组&#xff08;Grouping&#xff09;是指根据某个或多…

SciencePub学术 | 国内高口碑重点SCIEI征稿中

SciencePub学术 刊源推荐: 国内高口碑重点SCI&EI征稿中&#xff01;期刊质量高&#xff0c;接收领域广。信息如下&#xff0c;录满为止&#xff1a; 一、期刊概况&#xff1a; 国内高口碑重点SCI&EI &#x1f4cc;【期刊简介】IF&#xff1a;7.5-8.0&#xff0c;JCR…

python高级-socket和web相关

目录 一、socket 1.客户端开发 2.tcp客户端 3.tcp服务端 4.连接的注意事项 5.多任务服务端 二、静态web 1.请求报文 2.响应头 3.静态web服务器 4.socket静态页面 5.多进程模拟404和200状态码 6.面向对象多任务 结语 一、socket 1.客户端开发 创建客户端套接字对…

anaconda ubuntu安装

1、下载anaconda 地址&#xff1a;https://www.anaconda.com/download#downloads 我是x86 64位系统&#xff0c;所以选择第一个 2、安装 执行命令&#xff1a; sh Anaconda3-2023.03-1-Linux-x86_64.sh中间会有几个过程 enter 确定 yes 确定 最后默认安装位置为&#xff1…

const、let、var区别

const、let、var区别 0、前言1、区别2、示例2.1 提前调用报错2.2 const与 let 定义的变量不能重复2.3 const与 let定义的变量如果在{}中只能在{}中调用2.4 const定义的变量不能重复赋值。 0、前言 let和const是ES6新增的声明变量的关键词&#xff0c;之前声明变量的关键词是var…

SpringBoot+mybatis教务管理系统

项目介绍 主要功能&#xff1a; 这个项目是一个教务管理系统&#xff0c;其中有三种角色&#xff1a;管理员&#xff0c;教师&#xff0c;学生 管理员权限&#xff1a; 管理员&#xff1a;对课程、学生信息、教师信息等进行增删改查&#xff0c;修改个人密码&#xff0c;修改学…

服务日志性能调优,由log引出的巨坑

只有被线上服务问题毒打过的人才明白日志有多重要&#xff01; 谁赞成&#xff0c;谁反对&#xff1f;如果你深有同感&#xff0c;那恭喜你是个社会人了&#xff1a;&#xff09; 日志对程序的重要性不言而喻&#xff0c;轻巧、简单、无需费脑&#xff0c;程序代码中随处可见…

新项目之初性能测试工作如何前移?

最近刚接手一个新项目&#xff0c;在最开始的时候要求对这个项目做性能测试&#xff0c;产品经理也给不出性能需求&#xff0c;只因为这个项目是电商项目&#xff0c;可能会有高并发&#xff0c;秒杀的场景&#xff0c;所以产品经理要求我们对这个项目必须做性能测试&#xff0…

Linux内核中内存管理相关配置项的详细解析16

接前一篇文章&#xff1a;Linux内核中内存管理相关配置项的详细解析15 三十五、Data Access Monitoring 此项展开后如下图所示&#xff1a; “DAMON: Data Access Monitoring Framework”项默认不选中。如果将其选中&#xff0c;则页面变为&#xff1a; 1. DAMON: Data Access…

关于 vue2 后台管理系统构建 vue2+mock.js 的经典案例

一&#xff0c;初识 Mock.js 1.什么是 mock.js: 主要是模拟数据生成器&#xff0c;可以生成随机数据&#xff0c;拦截器 Ajax 请求 2.为什么要使用 mock.js 由于很多学生在学习过程中&#xff0c;后端还没有做好接口&#xff0c;写好接口文档&#xff0c;有了mock.js 前端就…

2023VALSE目标跟踪相关的Poster

前沿&#xff1a;本博文分享了2023 中国无锡举办的VALSE 中与目标跟踪相关的Poster。 1. Weakly Alignment-Free RGBT Salient Object Detection With Deep Correlation Network IEEE TRANSACTIONS ON IMAGE PROCESSING, VOL. 31, 20 摘要&#xff1a;RGBT显著性目标检测&am…