当前位置: 首页 > news >正文

软件测试是个人就能做?恕我直言,你可能是个“纯粹”的测试工具人,BUG收集器

作为过来人的我和你说说软件测试的真正情况。

前言

一个软件做出来,最不能少的是谁?毫无疑问是开发,开发是最了解软件运作的那个人,早期就有不少一人撸网站或者APP的例子,相当于一个人同时是产品、研发、测试、运维等等。

随着软件的复杂程度的提高i,一个人是撸不出真正的大学商业软件的,所以开始各司其职。

要明确一点:别拿测试不当研发。测试岗本身就是从研发分出来的,大部分的公司也会把测试归类于研发中心,所以你认为测试知识偏业务的点点点小兵,那就大错特错了。

但是测试确实又不如研发,因为测试本身是个成本岗位,说白了就是不负责产出,理论上来说研发能力够强和自测做的好,测试甚至可以打酱油,这也是许多公司不怎么看好测试的原因,测试前景好不好,看你自己怎么定位测试这个职业,是偏向产品与业务的功能测试?还是偏向于研发的自动化、性能或者测开?

 

技能树

测试人员的难点在于如果你只是想安安静静的当一个纯粹的测试人员,那确实没有啥前景和出路,实际上测试走到最后都是要点技能树转职的:

1、点业务技能点的,以后可以成为半个产品,甚至业务专家,这在金融领域等重业务的公司是很吃香的。

2、点研发技能点的,以后可以成为测开、自动化、性能、安全等等,有研发能力的测试在大多数互联网公司都是很受欢迎的,一是开发愿意跟你沟通,二是互联网的测试内容需要一点的技术底子。

 

 

  

3、点管理技能点的,因为测试本身处在整个需求生命周期的中后端,也就是前期没啥事,后期能不能上线全看测试的表现,所以也有测试兼职做项目管理的,做着做着最后就成了实际的管理者了,所以如果你见到一个项目的负责人是测试不要觉得奇怪,这系统能不能上是他来点头的。

这既是测试的优点、也是难点,优点在于测试转岗的能力是仅次于开发的,缺点就在于纯测试的上限也确实是最低的,相比于业务、研发这两大直接产出职能来说,不信你瞧瞧各公司的高层、创始人,几乎没谁是一路测试干上来的。

转型方向

所以测试到了中后期是一定要转型的,而后期能不能转型成功全看你头几年的个人积累。我的建议是,你擅长干什么,或者喜欢干什么,就往那个方向转。

如果你业务贼牛,功能很熟练,整个公司比你更熟悉这个系统功能的人没几个,那你就尝试着转型项目负责人或者产品,不要只是被动的等需求。

如果你仍然把自己当作研发,那就去写代码,看代码,不要只会有问题就提BUG,要了解系统是如何运作的,要知道问题出在哪,最好是代码要改哪一行都给研发指出来,然后自己平时搞点自动化,前端后台都搞搞,弄个小的自动化平台出来,了解一点底层的知识,学到最后你就已经跟开发无异了。

我来给你说说一个测试工程师提BUG是分几个等级的:

初级:只知道提BUG,原因是啥不知道,让开发自己去研究。

中级:大概知道是哪里出了问题,能提供数据和日志,细致的还得开发自己去排查代码。

高级:有代码阅读能力,已经能把问题定位到具体的模块甚至具体的代码块了。

专家:拿个小版凳坐在开发旁边,用手指着开发的屏幕,呐,就这里出问题了,我来告诉你怎么改,你如果不会的话我甚至可以亲自帮你改。

其实我一直都认为测试应该就跟开发排排坐,两个人盯着代码慢慢的debug,而不是测试只管提BUG,一问怎么出问题的啥都不知道,那样只会降低测试的权威性。

为什么有些公司的测试没人权,而有些公司的测试地位高。主要就是看测试对这个系统的熟悉程度,某些老测试堪称百科全书,这个系统从业务到代码都懂,这种人他指出的问题即便是研发大佬都不太敢反驳,但实际上更多的人只是用例执行人,BUG收集器,一问三不知,反正就有问题,代码看不懂,原理不了解,一看就感觉这人不太靠谱,所以这也是为何有些研发会认为测试门槛低是个人就能做的原因。

总结

说了这么多,简单总结一下:

1、纯粹只干测试上限来的快,要趁着年轻多积累,争取转型的机会。

2、尽量提高个人的权威性,不论是技术、还是业务,这都需要更深入的学习和积累。

最后,软件行业有没有前景这不好说,但是从个人发展的角度来说,只当测试确实是没啥前景,送君一句话:

测试只是你的起点,而不是你的终点

最后感谢每一个阅读我文章的人,一点小心意,虽然不是啥值钱的,需要的话直接拿走:

 

 

相关文章:

软件测试是个人就能做?恕我直言,你可能是个“纯粹”的测试工具人,BUG收集器

作为过来人的我和你说说软件测试的真正情况。 前言 一个软件做出来,最不能少的是谁?毫无疑问是开发,开发是最了解软件运作的那个人,早期就有不少一人撸网站或者APP的例子,相当于一个人同时是产品、研发、测试、运维等…...

递归算法(recursion algorithm)

递归算法 什么是递归算法 在过程或者函数里调用自身的算法; 递归算法(recursion algorithm),通过重复将问题分解为同类的子问题而解决问题的方法, Java中函数可以通过调用自身来进行递归,大多数编程语句…...

VScode下 ESP32 下载程序

ESP32-S3 下载方式可以通过UART0 下载,USB 下载,JTAG下载,还可以使用WIFI进行远程OTA升级程序。插件底栏按键介绍:①选择串口端口号,如COM3; ②选择芯片型号; ③工程idf设置,相当于menuconfig; …...

黑苹果日历

黑果日历 2023/2/27 总结 安装流程 制作启动U盘2017年,本来去当兵,结果近视👓没验上。父母我还想学什么?我想到了黑客操作电脑的画面,感觉特别酷。 2017年有了第一台自己的笔记本,是小米游戏本&#xff0…...

python+pytest接口自动化框架(5)-requests发送post请求

在HTTP协议中,与get请求把请求参数直接放在url中不同,post请求的请求数据需通过消息主体(request body)中传递。且协议中并没有规定post请求的请求数据必须使用什么样的编码方式,所以其请求数据可以有不同的编码方式,服务端通过请…...

Linux 进程:进程控制

目录一、进程创建1.fork2.vfork二、进程终止三、进程等待四、进程替换1.理解程序替换2.子进程在程序替换中的作用Linux的进程控制分为四部分: 进程创建进程终止进程等待进程替换 一、进程创建 常见的创建进程的函数有两个: pid_t fork(void)pid_t vf…...

过滤器的创建和执行顺序

过滤器的创建和执行顺序 8.1.1创建并配置过滤器 P143 重点是如何创建并配置(xml) 1.创建 public class EncodingFilter implements Filter {Overridepublic void init(FilterConfig filterConfig) throws ServletException {}Overridepublic void doFil…...

JDK1.8 ConcurrentHashMap

数据结构锁sizeCtlconcurrencyLevelForwardingNode、ReservationNode扩容get、put、removehashmap:线程不安全 hashtable:通过synchronized保证线程安全但效率低。强一致性 ConcurrentHashMap:弱一致性 数据结构 ConcurrentHashMap为node数…...

参考 Promise/A+ 规范和测试用例手写 Promise

前言 这可能是手写promise较清晰的文章之一。 由浅至深逐步分析了原生测试用例,以及相关Promise/A规范。阅读上推荐以疑问章节为切入重点,对比Promise/A规范与ECMAScript规范的内在区别与联系,确定怎样构建异步任务和创建promise实例。然后开…...

yolov5数据集制作

yolov5 数据集的格式 每个图像的标注信息存储在一个独立的txt文件中每个txt文件的名称应该与其对应的图像名称相同,只是文件扩展名不同。例如: 对于名为“image1.jpg”的图像,其标注信息应存储在名为“image1.txt”的txt文件中。 在每个txt文件中,每一行表示一个对象的标注…...

主板EC程序烧写异常致无法点亮修复经验

主板型号:Gigabyte AB350M-Gaming3 官网上明确写着支持R5 5500,但按照如下步骤实践下来实际是不支持的 升级biosF31到F40版本的注意事项: 步骤: 1 使用Q-Flash先将bios升级到f31版本;2 然后下载提示中的ECFW Update To…...

【Java爬取赛事网站】命令行输出(仅供学习)

Java爬取赛事网站 Java爬取赛事网站Java爬取赛事网站参与社区的问题回答Gitcode项目地址PSP表格解题思路描述问题接口设计和实现过程编写中的测试关键代码展示性能改进单元测试异常处理心路历程与收获参与社区的问题回答 问题回答这个作业属于哪个课程软件工程-23年春季学期这…...

redis主从复制原理

在 Redis 中,我们可以通过 SLAVEOF 命令或者 slaveof 选项,让一个服务器去复制另一个服务器,被复制的服务器称为“主服务器”,发起复制的服务器称为“从服务器”,由两种服务器组成的模式称为“主从复制”。 主从复制原…...

buu刷题(第一周)

目录 [DDCTF 2019]homebrew event loop action:trigger_event%23;action:buy;5%23action:get_flag; [CISCN2019 华东南赛区]Web4 [RootersCTF2019]babyWeb [GWCTF 2019]mypassword [NESTCTF 2019]Love Math 2 [BSidesCF 2019]Pick Tac Toe [RootersCTF2019]ImgXweb [SW…...

算法训练营 day62 单调栈 每日温度 下一个更大元素 I

算法训练营 day62 单调栈 每日温度 下一个更大元素 I 每日温度 739. 每日温度 - 力扣(LeetCode) 给定一个整数数组 temperatures ,表示每天的温度,返回一个数组 answer ,其中 answer[i] 是指对于第 i 天&#xff0c…...

ChIP-seq 分析:Peak 注释与可视化(9)

1. 基因注释 到目前为止,我们一直在处理对应于转录因子结合的 ChIPseq 峰。顾名思义,转录因子可以影响其靶基因的表达。 转录因子的目标很难单独从 ChIPseq 数据中确定,因此我们通常会通过一组简单的规则来注释基因的峰: 如果峰与…...

ABB机器人配置DeviceNet总线IO板以及信号分配的具体方法示例

ABB机器人配置DeviceNet总线IO板以及信号分配的具体方法示例 基本步骤: 配置IO板分配IO信号这里以DeviceNet总线的DSQC652为例进行说明: 配置IO板的基本步骤:  配置IO板的型号  连接到总线  配置IO板的地址 (1台机器人可以配置多个IO板连接到DeviceNet总线,为了让机…...

2023 年网络安全漏洞的主要原因

​  网络安全漏洞已经并将继续成为企业面临的主要问题。因此,对于企业领导者来说,了解这些违规行为的原因至关重要,这样他们才能更好地保护他们的数据。 在这篇博文中,我们将概述 2023 年比较普遍的网络安全漏洞的主要原因。 云…...

剑指 Offer 34. 二叉树中和为某一值的路径

剑指 Offer 34. 二叉树中和为某一值的路径 难度:middle\color{orange}{middle}middle 题目描述 给你二叉树的根节点 rootrootroot 和一个整数目标和 targetSumtargetSumtargetSum ,找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。 叶子节…...

2023前端vue面试题(边面边更)

Vue中key的作用 vue 中 key 值的作用可以分为两种情况来考虑: 第一种情况是 v-if 中使用 key。由于 Vue 会尽可能高效地渲染元素,通常会复用已有元素而不是从头开始渲染。因此当使用 v-if 来实现元素切换的时候,如果切换前后含有相同类型的…...

基于Flask实现的医疗保险欺诈识别监测模型

基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施,由雇主和个人按一定比例缴纳保险费,建立社会医疗保险基金,支付雇员医疗费用的一种医疗保险制度, 它是促进社会文明和进步的…...

理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端

🌟 什么是 MCP? 模型控制协议 (MCP) 是一种创新的协议,旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议,它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...

Objective-C常用命名规范总结

【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名(Class Name)2.协议名(Protocol Name)3.方法名(Method Name)4.属性名(Property Name)5.局部变量/实例变量(Local / Instance Variables&…...

在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module

1、为什么要修改 CONNECT 报文? 多租户隔离:自动为接入设备追加租户前缀,后端按 ClientID 拆分队列。零代码鉴权:将入站用户名替换为 OAuth Access-Token,后端 Broker 统一校验。灰度发布:根据 IP/地理位写…...

MMaDA: Multimodal Large Diffusion Language Models

CODE : https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA,它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构&#xf…...

Springboot社区养老保险系统小程序

一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,社区养老保险系统小程序被用户普遍使用,为方…...

ABAP设计模式之---“简单设计原则(Simple Design)”

“Simple Design”(简单设计)是软件开发中的一个重要理念,倡导以最简单的方式实现软件功能,以确保代码清晰易懂、易维护,并在项目需求变化时能够快速适应。 其核心目标是避免复杂和过度设计,遵循“让事情保…...

【JVM】Java虚拟机(二)——垃圾回收

目录 一、如何判断对象可以回收 (一)引用计数法 (二)可达性分析算法 二、垃圾回收算法 (一)标记清除 (二)标记整理 (三)复制 (四&#xff…...

Python 实现 Web 静态服务器(HTTP 协议)

目录 一、在本地启动 HTTP 服务器1. Windows 下安装 node.js1)下载安装包2)配置环境变量3)安装镜像4)node.js 的常用命令 2. 安装 http-server 服务3. 使用 http-server 开启服务1)使用 http-server2)详解 …...

【LeetCode】算法详解#6 ---除自身以外数组的乘积

1.题目介绍 给定一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法,且在 O…...