我的软件测试故事:成长、迷茫、奋斗

news2024/9/28 23:32:03

前言

  测试工作6年,经历过不同产品、共事过不同专业背景、能力的同事,踩过测试各种坑、遇到过各种bug。测试职场生涯积极努力上进业务和技术能力快速进步过、也有努力付出却一无所得过、有对测试生涯前景充满希望认为一片朝气蓬勃过、也有对中年危机思考不知何去何从迷茫过。一直在努力,一直在思考,一直在探索。

    6年测试生涯,不同的产品、不同的人、不同的事,经历着不一样的经历,带给我不一样的思考。思考着如何不断提升自己、思考着是否一直走测试这条路、思考着如何转型、思考着如何做好现在以应对未来、思考如何可以赚更多的钱。问题一直都在,我也一直在努力寻找答案的路上。

   趁着国庆有空闲时间,写写我的软件测试故事,希望对未来想要进入要进入这一行业、即将进入以及正在测试领域努力奋斗的你有一点点启发和思考。我的软件测试生涯开始于2016年的那个夏天。。(一看就是老同志。。)

初入职场

    那年毕业的夏天,和舍友W踏上火车南下,一路偶有闲扯大多是在睡觉。对即将开始的工作有点期待、憧憬,对未来可以开始独立生活感到向往。入职体检、手续办理完成后正式开始上班的第一天了。依然清晰记得那一天,一同和F、C两个同事同时来到领导面前的场景。leader下面同时分管三个产品,我被分配到一个成熟产品P,其他两个同事分配到了产品C,另外一个产品是E,这个后话,暂且不提。因为产品P只有一个同事在负责,很自然他成为了我的新员工导师,我很荣幸。直到现在,虽然我几经辗转周折,但我们依然保持很好的联系。

  工作就在我的导师指导下开始了。。各种业务知识、技能、测试工具、环境使用等等知识在自学和实践、犯错总结中不断学习成长。新员工实践都是在导师和leader规划的范围内有条不紊的开展着,很庆幸他们大多都是包容、忍耐和鼓励、信任对待我的成长和不足,我们相处、沟通的很融洽。大概在第4个月的时候因为另外一个产品I因为测试经理精力有限需要放手。由于这个产品i业务知识与我当前产品P有相通之处,leader想到了我。。对,一个菜鸟。leader与我师傅沟通评估我的能力决定让我去接手产品I的测试组长职位,我也答应了。当时也不太懂,也没有太大的压力,就这样跑步开始上岗了。。后来的经历才知道跑步上岗的事情太多了。就跟打战一样,没有那么多的事情给你去准备。就是给你这个岗位,给你这一份压力和责任,剩下的你自己去学习、去能力,遇到问题自己想办法克服,通过自己、通过团队、上升等等都可以。。

  很庆幸,产品I在新员工负责期间也没有出啥问题,现在想想我又没有多大功劳,因为当时主要还是学习的心态去负责这个产品、去与这个团队的测试、开发成员、PM配合。去学习业务、去了解人、去提升自己。这时候谈不上管理。现在想想领导放心将产品放到我手里负责。我想主要有几个原因。第一、产品I团队开发、测试人员、PM人员稳定,技能成熟,合作的测试leader整体能力不错。团队阵型没有变化不会有什么风险。第二、产品成熟。每次版本交付需求量不大。第三、有我导师保障我,我有问题随时可以沟通。leader自己随时关注。

  新员工学习为主和相对压力较小的工作任务下有条不紊的进行着,因为在产品I中承担中与其他新员工不一样的职责、也承担了相对负责的性能测试等任务。很荣幸新员工结束考核时得到了一个不错的考评,这是有点出乎意料的。

  仔细回想,整个新员工期间有几个事情印象比较深刻。反思了一下以下几点如果做得更好,也许结果会更好。

  1、主动沟通。导师和leader都很忙,可以主动找他们沟通,可以发消息沟通、导师空闲时间工位沟通、发消息预约时间、吃饭时间闲聊都可以。吃饭时是一个很好时间段,尽量跟导师、老员工、新员工等一块吃饭。有更多的沟通时间也可以让你更快的融入这个团队。

  2、重复问题尽量不问第二遍。我的导师挺烦这个的。所以问问题得到的信息量大时我就会打断他找个本子记录回去慢慢整理。

  3、跑步上岗。有好的机会该抓住就该抓住。不要害怕自己这不会那不会。不会不是什么大问题,怕的是不敢承担。多问多学多沟通,注意处理问题的方法能解决很多问题。

  4、在有能力做好本职工作前提下,可以多关注一下其他角色有关的是事情。其实本来也是,测试就是一个端到端的任务,很多信息都会影响到你对测试任务的评估。包括测试计划、测试风险。

  5、学习、动手、总结、分享。新员工就是一张白纸,什么都要学。业务、技术、流程、沟通的技巧等等。努力提升自己。记得印象很深的一句话,当时去管理产品I的时候,与合作测试leader定位一个工具报错的问题。shell写的。看不懂。。合作测试leader说了一句,原来管理我们的人都懂啊。。其实,当时是有点尴尬的。。当然现在这个已经是so esay了。。

导师和leader

  这两个可能是可遇不可求的事情。大部分人对导师和leader其实是没有选择的权利。主要看缘分。我之所以要专门在这里列出,就是我很庆幸我都遇到了。当时,产品P属于成熟产品,我导师带着一帮合作同事完全能hold住。我完全可以不用参与任务。所以我的任务主要是学习。导师也是个技术控,喜欢钻研各种问题。我有幸也跟着学习了很多的知识,也给了我充分的时间去学习各种各样的知识。不仅仅是业务。同时,leader也给予充分的时间自由去学习各种业务知识,并没有催着我师傅给我分配任务,leader的基本观点是磨刀不误砍柴工,打牢基础对以后会有很大帮助。同时在负责产品I期间,给予我充分放权、指导、鼓励我放手去做,实践我自己的想法。可惜的是我当时没有什么太多的管理想法。。浪费了大好机会。。

  当时记得leader找我沟通的时候经常会聊天。之所以是沟通是聊天,因为对leader还是整体比较轻松。有几句话到现在还有一些印象,比如三年内不要太关注收入,绩效、职级、收入是你个人成长的附属品,放手实践你自己的想法、产品是公司的,能力提升是你自己的。我当时新员工过对收入也没想那么多也不认为是画饼洗脑上的,我现在也同样认为这些是有道理的。也可能会以自己看到的、经历的去跟一些需要的人去讲这些。这些内容关注点要放在自己身上,放在自己能力提升上面。因为这对于你来说是可控的部分。做好你现在的事情,努力提升自己,主要是关注自己有没有收获。你做好了很多东西自然就有了。。如果你能力提升了但是回报并没有增加,你也有广阔的选择的余地去支撑你的能力,你有更多的选择,你可以跳槽。只要你有能力,企业给的待遇还是很高的。当然,如果领导跟你说板凳坐十年冷,这个我是不太赞同。十年过去了中年危机就到了。。不能光忽悠,不来点实质的物质奖励啊。。

  转岗

  这里指的是公司内部的转岗,转岗这种事情好坏也说不准。这里说一件事。主要是供读者一些思考。其实在我工作第二个年头的时候,是有机会转岗到安全测试部门的。当时同事就在那个部门要招人问了我的意向。以我当时自己考核结果和能力要去应该也能去成。当时我的思考点主要是部门和leader都挺好的,觉得就呆着未来应该也还可以。当时转岗也不像现在这么容易。也没有思考太多当前部门的测试和安全测试有多大的区别,我就没有选择走。现在想想其实有些小后悔。因为现在绝大多数部门的测试还是偏重于功能测试,安全测试属于专项测试,技能模型也不一样,前景也不不一样。其实有些小后悔,当时如果选择走,短期可能会有一些影响,但是长远来看,应该是更符合当前的期望。毕竟就业前景要好很多。所以大家在做选择的时候尽量慎重,多思考,多跟好朋友多交流。考虑的维度尽量广一些。

业务和技术

  业务和技术对于测试来说,其实是存在一个木桶效应的问题。业务不熟或者技术有短板你可能都搞不好测试。业务和技术都很牛逼你的精力和时间投入肯定要都满足。所以要尽量做好知识体系构建、职业规划,确保平衡这二者之间的经历投入。相对来说,技术更通用,技术越强你就越牛逼。业务(产品)相对有局限,比如你是搞通信领域的、比如你是搞支付产品的、你是测试app的、测试嵌入式产品的等等。业务能力很强也可以成为一个很厉害的人,比如你对支付产品的汇款、转账、支付非常熟悉,支付产品的行业理解也很深入,你去求职银行业务相关的企业、阿里支付、腾讯财付通的部门应该会比其他产品转岗过去的测试人员要更有优势,以前不少同事都去了这些部门。另外,如果你一直在一个产品,精通业务的各种知识,这种人也非常厉害,可以搞TSE,可以支撑开发、产品、测试内部所有人关于业务的答疑。这种业务强的人在部门待遇和职级也会很高。

    但是从个人角度来说,我会倾向于多花一点时间在技术能力提升上面。以我为例,我主要经历过几个不同产品,有传统通信领域的产品、有充值转账产品、有支付的产品、其他当前的不写了。。业务并没有太强的连续性。但是我的技术一直是通用的。不管是编码、网络、数据库还是测试基础理论、工程能力等等。重申一下,业务和技术都很重要,根据自己岗位的职责要求和自己的职业规划,做好这二者之间精力的分配。如果不知道咋规划。就做好现在。比如功能测试,你一定要精通业务。如果你是性能测试,你可能只需要关注核心流程,然后是各种性能工具使用、性能调优方法。

  到这里说一点,其实个人一直还算是有点上进心的,从事工作到现在也一直努力。技能自认为还算过的去。编码也不怂,Python/Shell/Java/Autoit/DOS也都能写、数据库基础、oracle数据库管理、计算机网络、测试基础理论、测试管理、linux系统基本问题解决也还算可以。组内大部分相关的问题到我这也能闭环,但是总是感觉还是不够。说这个意思,就是希望读者可以多考虑一下,让自己在某一方面特别精通,比如搞工具开发,你可以不仅能编码,编码效率写的规范、效率高,你还能自己做规格设计。开发出的工具可扩展性、可维护性都很好等等。总之,一定要有某一方面的特长、深度,有广度加分。全才对普通人不太可能,人的精力都是有限。

有价值的2件事

  这里说2个我认为对自己能力提升或者经验积累有很大帮助的2件事。

  第1个就是案例学习。学习你的产品第一个版本到目前的所有的问题、现网问题、现网案例等等,快速积累经验,提高对问题的敏感性。会对你以后的测试设计有很大的帮助。通过分析这些问题你会发现各种问题,有非常简单显而易见的、比如冒泡提示,有非常难以复现需要特殊构造场景才能发现的、有用户体验方面、性能、可靠性等等,全部分析下来你会发现自己对产品的理解、对测试的理解、对站在用户角度做测试的理解会有很大的帮助。

  第2个就是针对环境搭建或者常用工具测试源码的学习。这里的源码不是指的版本源码,主要指工具类源码,因为像环境搭建或者升级操作之类对测试来说是非常常规的操作但是又经常会遇到问题。工具源码通常来说体量都不会太大,你可以用个思维导图梳理一下工具的源码、一步一步拆解出关键步骤,每一步骤都是做什么的、输入输出是什么。到最后你再遇到环境搭建的问题,你会发现你很轻松的就可以解决。因为你对他们的报错日志、为什么会报错、定位方法了若指掌。你能解决的问题多了之后你会发现你可能在你们部门就会有影响力,你就有可能快速脱颖而出。另外,带来的附加价值你可能对该门语言能力会提高很多。。

   以上就是我说的挺有价值的两件事。因为我这么干过,也确实从中获得不少收益。

测试职业发展

  软件测试人员职业发展大概有2条途径。一种是走技术路线,初级、高级、资深测试工程师,一种是管理路线。初级、高级工程师、测试组长、测试经理、测试部长等。还有一种是非正常的路线。有业务能力强的测试转岗去搞产品经理的、搞需求调研的。有编码能力强的测试转开发的、也有转资料的、也有转岗与测试有相关性的,比如QA。还有风马牛不相及的,转岗去搞HR的、搞财经的、搞采购的、搞销售的、服务的都有。正常的发展通道居多的还是前面两条的。

  总的来说,要想有个好的职业生涯、有份好的收入首先要做的是不断提高自己的业务和技能水平,提升自己的软、硬技能。对于测试,分析问题能力、沟通表达能力一定要好,对于沟通,起码的要求就是你能简单明了的把一件事情或者一个问题说清楚,因为测试经常要和各个角色配合工作。关于测试职业发展,我也没想好自己未来要从事什么,现在也就是按部就班的做好当下。自己都没想好做好的事情就不再这多说了。如果你也没想好,那就做好现在。起码收获当下,你把当下事情做好了,领导认可了。你有好的绩效,好的绩效就有好的回报。继而你可能会有好的岗位任命。做好了当下,可能领导就帮你规划好了。。见过是有这样的。。

中年危机

  危机十足啊。对这个问题,对自己的未来也有过思考,但是始终也没有得到自己想要的答案,也就是现在我也没定好自己的目标。尤其在二线城市,你可以上各招聘APP看看,能力要求都挺高,但是薪资待遇还是有限。这是客观环境无法改变。所以更需要提前考虑这个问题,提前做好准备,不打无准备之战。对自己大概有个初步计划,就是把这些年的经验再梳理总结一下、把英语口语练练、测试管理中遇到的问题总结总结,踩过的坑再反省反省。。

小结

  上述都是一些个人体会,文笔有限写的有点零碎,但是内容都是真实感受的,如果能对一部分人有所启发那就再好不过。目前自己还是一直在思考未来,自己可以做什么,还是期望未来可以多赚钱^_^,过更好的生活。。

加油吧,测试人!如果你需要提升规划,那就行动吧,在路上总比在起点观望的要好。未来的你肯定会感谢现在拼命的自己!

 

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

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

相关文章

OpenAI Embedding:快速实现聊天机器人(二)

theme: orange 本文正在参加「金石计划」 接上文OpenAI Embedding:快速实现聊天机器人(一)有讲到聊天机器人的一些概念,这篇开始讲讲这个聊天机器人的架构和流程。 总架构图 这里我参照一个现成的架构图来讲如何实现,其是基于Azure多个相关云…

香港进出口报关指南

由于香港优越的地理位置和政策支持,大部分外贸货物通过香港出口到世界各地。与内地海关相比,香港报关更简单快捷。司机可根据内地舱单填写一份香港进/出口舱单(俗称司机纸)进出香港海关,并在货物抵港后14天内申报。 香港进出口报关需要提供哪…

单机/集群/热备/磁盘阵列(RAID)的区别详解

一、单机部署(stand-alone) 单个服务器,只有一个饮水机提供服务,服务只部署一份。 二、集群部署(cluster) 服务器集群就是指将很多服务器集中起来一起进行同一种服务,在客户端看来就像是只有…

MySQL连接空闲时间超过8小时报错原因与延伸知识

1 错误原因 1.1 两个参数 MySQL服务端两个参数控制连接超时时间: wait_timeoutinteractive_timeout1.1.1 如何查看 show global variables like interactive_timeout show global variables like wait_timeout 复制代码 1.1.2 含义与区别 wait_timeout&#xf…

JAVA System.nanoTime()与GO time.Now().UnixNano()区别

JAVA System.nanoTime() public static void main(String[] args) {long nano System.nanoTime();System.out.println(nano);} 输出:701863191254000,这个值有点奇怪,System.currentTimeMillis()不是System.nanoTime()的1000000倍。 这个值…

【springcloud开发教程】路由网关——zuul

官方资料:https://github.com/Netflix/zuul/ 什么是Zuul? Zuul包含了两个主要的功能:路由和过滤 路由功能将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础,而过滤器功能则负责对请求的处理过程进行干预&#…

Ubuntu环境安装指定版本的docker 和一键卸载dockerdocker-compose

一、环境 我的linux系统是Ubuntu 22.04 二、开始安装 卸载旧版 由于apt官方库里的docker版本可能比较旧,所以先卸载可能存在的旧版本: $ sudo apt-get remove docker docker-engine docker-ce docker.io更新apt包索引 $ sudo apt-get update安装以下…

基础工业工程(易树平、郭伏)——第四章 程序分析

第四章 程序分析 第一节 程序分析概述 一、程序分析的概念、特点及目的 1.程序分析的概念 程序分析是一种重要的生产管理工具,它是依照工作流程,从第一个工作地到最后一个工作地,全面地分析有无多余、重复、不合理的作业&…

【单片机/普中A2】学习笔记3-数码管

数码管主要概念 参考文献:点击前往 数码管分类 字形重叠数码管:将不同数字、字母与符号重叠,需要用到那个就显示那个 分段式数码管:最常见的数码管,按照笔画来显示,主要有七段式和八段式数码管 点矩阵式…

JavaScript 代码整洁之道

文章目录概述篇变量篇函数篇注释篇异常处理篇复杂判断函数篇重构篇参考资料概述篇 书写能让人读懂的代码使用英语编写代码团队协作 制定通用的规则,依靠工具让团队的代码风格保持统一,要让代码看起来是由一个人编写的,消除个人的代码风格。…

这么好看的客服组件,还是觉得接入ChatGPT,把它放在博客中那就完美了

我们在使用ChatGPT时,它的返回方式是采用流式回复。感觉这个效果不错。之前做的全都是的等全部结果请求完成,再一次性返回给用户。今天就通过流式回复的效果重写之前的程序。 前端 前端采用一个网页版的客服组件,整体的效果如下:…

小白学Pytorch系列- -torch.distributions API Transforms (2)

小白学Pytorch系列- -torch.distributions API Transforms (2) AbsTransform AffineTransform 通过逐点仿射映射进行转换yloc⁡scale xy\operatorname{loc}\text { scale } \times xyloc scale x loc (Tensor or float) : 位置参数scale (Tensor or float) : 尺度参数event…

k8s Deployment

一个Deployment控制器会创建一个新的ReplicaSet控制器,通过ReplicaSet创建pod rs v1控制三个pod,删除一个pod,在rs v2上重新建立一个,依次类推,直到全部都是由rs v2控制,如果rs v2有问题,还可以…

Spark on Yarn(client和cluster模式,spark-shell 和 spark-submit 的区别,WorldCount实现与理解)

文章目录Spark on Yarn两种模式clientclusterspark-shell 和 spark-submit 的区别的理解spark-shellspark-submitWorldCount实现IDEA本地实现On Yarn 实现WorldCount图解Spark on Yarn spark on yarn 的两种模式是指 spark 应用程序的 driver 进程(负责控制和协调整…

JAVA8的Optional类,还用 != null 判空?

在文章的开头,先说下NPE问题,NPE问题就是,我们在开发中经常碰到的NullPointerException.假设我们有两个类,他们的UML类图如下图所示 在这种情况下,有如下代码 user.getAddress().getProvince(); 这种写法,在…

springboot整合mybatis(idea)

从idea新建项目 选择spring启动* help、mvnw 文件可以删除 springBoot3.0需要的最小JDK是JDK17,当低于17的时候会报错。 改成2.7.6 新建控制层Controller、Mapper层和Model文件夹 必须在springBoot启动项下面新建,不然无法识别。 允许XML进入target…

Java - 泛型

一、什么是泛型? 一般的类和方法,只能使用具体的类型: 要么是基本类型,要么是自定义的类。如果要编写可以应用于多种类型的 代码,这种刻板的限制对代码的束缚就会很大。----- 来源《Java编程思想》对泛型的介绍。 泛型是在JDK1.5…

初次使用yolov8遇到的问题

记录第一次使用yolo8跑自己的数据; 首先将官方文档看一下,大概捉摸了2个小时,地址:GitHub - ultralytics/ultralytics: NEW - YOLOv8 🚀 in PyTorch > ONNX > CoreML > TFLite 获得了基本的一些了解&#x…

$\Beta$分布推导与可视化

$\Gamma$函数 $\Gamma$函数(Gamma函数)是阶乘函数在实数和复数域的扩展。对于正整数$n$,阶乘函数表示为$n! 1 \times 2 \times ... \times n$。然而,这个定义仅适用于正整数。Gamma函数的目的是将阶乘扩展到实数和复数域,从而计算实数和复数…

代码随想录【链表】--->删除倒数第N个节点、链表相交、环形链表

⭐️代码随想录⭐️ 数组篇: 二分查找 移除数组 有序数组的平方 长度最小的数组 螺旋矩阵 链表篇: 链表移除 设计链表 反转链表 交换链表中的节点 文章目录19. 删除链表的倒数第 N 个结点思路代码面试题 02.07. 链表相交思路代码142. 环形链表 II思路判断链表有环确…