8年测开年薪30W,为什么从开发转型为测试?谈谈这些年的心路历程……

news2024/12/25 22:08:43

谈谈我的以前,从毕业以来从事过两个多月的Oracle开发后转型为软件测试,到现在已近过去8年成长为一个测试开发工程师,总结一下之间的心路历程,希望能给徘徊在开发和测试之前的同学一点小小参考。

一、测试之路伏笔

上学偷懒,留下个习惯,喜欢看别人的代码。很多时候觉得别人写的比自己好太多,简单的一段代码别人写的精妙绝伦,自己的又丑又长。自己带有批判性眼光看代码。

逻辑思维能力比较OK,尤其是发散思维,工作面试的笔试题几乎都为逻辑题,我用非常快的速度全部正确做完,很开心拿到offer,发散思维在测试中很重要,往往问题都比较隐藏和集中,从不同的方向进行不同的测试,找到问题并带出系列性问题

(我曾测试过一个功能模块出现问题从而带出提交了一些问题,当时项目压力使测试和开发有些小气氛,被主管叫去批评,我写的太多,开发觉得其中提到的东西是正确的,后经验证一些列问题都是潜藏的问题,主管也不好在批评之后表扬,但那两个星期逗我特好了就)。

我有完美主义倾向(生活中的坏毛病),追求完美,这个给我带来了些小问题。自己写的东西有些小问题自己也会很气馁,测试找出别人的存在的失误会有成就感,我也知道能包容不完美才是完美,努力的目标。

我对开发的热情没有测试的火热。

我的开发能力都一般,不突出。而软件测试为复合型。要求广度和宽度,深度为其次。虽然测试的时候主动帮助开发做过数据库出现的异常处理,开始提出解决方案的时候,开发并不认同一个测试的方案,但是后来采用了。这位开发也不再小瞧我了。

二、测试之路小结

软件开发是建设性的,而软件测试从一方面来说是破坏性的,开发注重设计,使程序做的应该做的事情,不做不应该做的事情,一般来说,开发写完程序都会自己验证程序是否做了他应该做到的事情,软件测试不仅要验证程序是否做了他应该做的事情,更注重的是软件是否做了他不应该做的事情。所以测试更关注的是软件是否做了他不应该做的事情。

检验已实现的功能是否正确,检验是否正确实现了功能。

重新否定自己,开发测试自己的代码效率低是因为在内心深处他们不愿意否定自己,不愿意觉得自己有问题,测试人员应学会否定自己,这样在一个版本到另一个版本的回归测试过程中确保自己的测试无遗漏。

永远不要觉得软件质量是软件测试的任务,不要轻易背锅,软件质量从一开始就是开发的系统架构所决定的,软件测试不过是优化提高软件的质量,但是很可能还是存在致命的bug。所以做好自己的管理,证据,从而不要让自己轻易背锅。当然,在其位,谋其职,测试一定要富有强韧的责任心。对自己工作仔细细心。

学习多了解,测试一定要对自己能力的肯定,可能我的能力在别人的眼里不想开发在某一方面很突出耀眼,我对自己一直充满了自信,测试需要自己的广度和心态上的磨练更是需要的。就像是冰山,庞大的业务知识,测试框架,多维度的思维习惯虽然看上去是一个点一个点的,当你把这些点链接起来的时候,你会看到汪洋一片,所以,你一定要学习,更多的学习。

沟通很重要,多多沟通,沟通的艺术更是重要,和开发和睦相处能给工作带来很多乐趣,很多时候,你一天工作交流的基本都是开发人员。学会包容和理解。

目前我只是处于黑盒子阶段,我也想学习更多更多的测试工具和脚本语言,但是不能妄自菲薄,不管是自动化测试还是手工测试实质都是测试方法,测试工具不过是载体,不能弄混主次。级别不够,再厉害的测试工具你也不一定能用到而且会用,但一定多多了解学习。

三、8年蜕变,现在已近是测试开发,年薪30W+

8年时间的蜕变,我从一个初级测试工程师,成长为了一个测试开发工程师

日常工作内容:

  1. 编写自动化测试脚本:测试开发工程师需要使用编程语言(如Java、Python等)编写自动化测试脚本,用于执行系统功能测试、性能测试、接口测试等多个测试阶段。

  2. 搭建自动化测试框架:测试开发工程师可以使用开源测试框架或自己搭建测试框架,以提升测试效率和可维护性。一些常用的测试框架包括Selenium、Appium、JMeter、Robot Framework等。

  3. 分析测试结果和问题:测试开发工程师需要分析自动化测试脚本运行的结果和日志,找出问题所在,并及时反馈给相关开发人员或测试团队。

  4. 协同开发团队进行集成测试:测试开发工程师需要与开发人员紧密合作,进行集成测试工作,确保系统各个组件间的协调运行。

  5. 参与持续集成和持续交付:测试开发工程师需要参与持续集成和持续交付过程,保证软件质量和稳定性。这其中包括构建测试环境、制定测试策略、持续监控和优化测试过程等。

总之,测试开发工程师的日常工作内容以自动化测试为主,同时也需要具备软件开发和测试管理方面的技能。

END绵薄之力

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于对想进阶【自动化测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

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

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

相关文章

EGO-Link FPGA智慧教育社区介绍:用 leetcode 的方式练习 verilog 语言

文章目录 介绍FPGA 语法例1:P1203 1输入1输出例2:P1204 3输入4输出例3:P1207 P1208 P1205 与或非门例4:P1200 半加器例5:P1201 4位二进制转余3循环码例6:P1215 2选1多路选择器例7:P1236 D触发器…

【C语言】浅涉结构体(声明、定义、类型、定义及初始化、成员访问及传参)

简单不先于复杂,而是在复杂之后。 目录 1. 结构体的声明 1.1 结构体的基础知识 1.2 结构的声明 1.3 结构成员的类型 1.4 结构体变量的定义和初始化 2. 结构体成员的访问 3. 结构体传参 1. 结构体的声明 1.1 结构体的基础知识 结构是一些值的集合&…

探索Apache Hudi核心概念 (4) - Clustering

Clustering是Hudi在0.7.0版本引入的一项特性,用于优化文件布局,提升读写性能,现在它已经成为Hudi的一项重要性能优化手段。本文我们会通过Notebook介绍并演示Clustering的运行机制,帮助您理解其工作原理和相关配置。 1. 运行 Not…

RocketMQ 多级存储设计与实现

作者:张森泽 随着 RocketMQ 5.1.0 的正式发布,多级存储作为 RocketMQ 一个新的独立模块到达了 Technical Preview 里程碑:允许用户将消息从本地磁盘卸载到其他更便宜的存储介质,可以用较低的成本延长消息保留时间。本文详细介绍 …

记录贴:EasyPoi word导出问题一览

项目场景: EasyPoi word导出 问题描述1 easypoi 模板导出 我直接在map的value输入空格或"",出来的是{{,两个左花括号,咋解决 解决方案: exportMap.put("key", "\u00A0"); //空格前端效果: 其他无效解决方案…

Redis安装配置操作记录

Redis 官网:https://redis.io/ 中文文档:https://www.redis.com.cn/documentation.html 在线命令参考:http://doc.redisfans.com 一,Redis下载安装与配置 下载网站,可下载安装包然后安装或可使用brew来安装Redis&#…

LeetCode——前K个高频单词

692. 前K个高频单词 给定一个单词列表 words 和一个整数 k ,返回前 k 个出现次数最多的单词。 返回的答案应该按单词出现频率由高到低排序。如果不同的单词有相同出现频率, 按字典顺序 排序。 示例 1: 输入: words [“i”, “love”, “le…

太阳能电池测试解决方案NS-9001

前言 太阳能行业的快速发展提高了对太阳能电池测试和精确测量解决方案要求,伴随着太阳能电池尺寸大小质量的提升,充电电池测试必须更多的电流和更高输出功率水准,这就更加需要灵活多变的测试方案支持。 现阶段,太阳能电池测试 解…

Java学习星球,Java学习路线

目录 一、Java学习路线二、学习计划三、为何会有Java学习星球?四、加入星球后,你可以得到什么?五、如何加入Java学习星球?六、打卡挑战 大家好,我是哪吒,一个靠着热情攀登至C站巅峰的中年男子,C…

【历史上的今天】3 月 20 日:cURL 二十五周年;Docker 发布;思科收购 Linksys

整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来。 今天是 2023 年 3 月 20 日,在 1999 年的今天,人类首次成功乘热气球环球飞行。在 24 年的今天,瑞士人皮尔卡、英国人琼斯经过近 20 天的飞行…

JavaWeb—HTTP协议

目录 1.HTTP协议 1.1 HTTP-概述 1.1.1 介绍 2.1.2 特点 1.2 HTTP-请求协议 HTTP-请求数据格式 GET请求和POST请求的区别: 1.3 HTTP-响应协议 1.3.1 格式介绍 1.3.2 响应状态码 常见响应状态码 1.4 HTTP-协议解析 1.HTTP协议 1.1 HTTP-概述 1.1.1 介绍 HTT…

ModuleNotFoundError: No module named ‘cuda‘、‘tensorrt‘

1、 ModuleNotFoundError: No module named ‘cuda’ python -m pip install --upgrade pip pip install cuda-python2、 ModuleNotFoundError: No module named ‘tensorrt’ 2.1 依赖库 先安装两个TensorRT的依赖库 python -m pip install --upgrade pip pip install nvi…

openstack compute schedulers

https://docs.openstack.org/nova/latest/admin/scheduling.html 在默认的配置中,调度器将考虑如下的几个方面: 请求的是Availability Zonenova-compute服务在目标节点上是启用的满足实例类型的extra specs(ComputeCapabilityesFilter&#…

Spring Boot Web

一. 概述 下面我们将进入 SpringBoot 基础阶段的学习。 在没有正式的学习 SpringBoot 之前,我们要先来了解下什么是 Spring 。 我们可以打开 Spring 的官网 ( https://spring.io ) ,去看一下 Spring 的简介: Spring makes Java simple 。…

UUID无处不在,你就是唯一(2023.4.16)

六种语言生成UUID 2023.4.16 引言1、UUID简介2、UUID格式和编码3、UUID各历史版本4、UUID代码具体调用实现4.1 C# 生成UUID4.2 Java 生成UUID4.3 Python 生成UUID4.4 C 生成UUID4.5 C 生成UUID4.6 JavaScript 生成UUID(较为实用)4.6.1 控制台运行&#x…

测绘与设计之间的鸿沟:坐标系,教你如何将CAD与测绘数据准确叠加

一、背景 2008年,我国推出了2000国家大地坐标系(以下简称国家2000坐标系),截至2022年,国家2000坐标系在自然资源领域已经取得了较高的普及率,但在工程建设领域的普及率依旧比较低,很多工程项目…

23种设计模式(9)——适配器模式

目录 一、基本介绍 二、demo 2.1、类适配器模式 类适配器模式注意事项和细节 2.2、对象适配器模式 对象适配器模式注意事项和细节 2.3、接口适配器模式 接口适配器模式介绍 三、适配器模式在框架中的应用 3.1在 SpringMVC 框架应用 3.2、spring AOP中的适配器模式 一、…

如何制作实时库存报表

草料二维码暂不支持自动计算功能,无法看到实时的库存数量。但可以使用外部数据分析工具,如百度Sugar,连接草料二维码官方数据库,即可自由实现各类计算,包括实时库存。 一、案例效果 输入物料名称,即可快速…

oracle学习之rownum和rowid

rownum先百度一波https://www.cnblogs.com/xfeiyun/p/16355165.html rownum是oracle特有的一个关键字。 对于基表,在insert记录时,oracle就按照insert的顺序,将rownum分配给每一行记录,因此在select一个基表的时候,r…

Java基础(八)异常处理

1. 异常概述 1.1 什么是生活的异常 男主角小明每天开车上班,正常车程1小时。但是,不出意外的话,可能会出现意外。 出现意外,即为异常情况。我们会做相应的处理。如果不处理,到不了公司。处理完了,就可以…