开发者网络

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 112|回复: 1

纠结,到底选择软件测试还是软件开发

[复制链接]

1

主题

2

帖子

4

积分

新手上路

Rank: 1

积分
4
发表于 2023-1-1 17:12:58 | 显示全部楼层 |阅读模式
我们今天的主题是,入行互联网。纠结,到底选择软件测试还是软件开发好?其实有软件开发就有软件测试,两者是不可分割,他们是相辅相成的。

但如果目前你是一个在校大学生,应届生。或是刚入行互联网行业的测试和开发,或者说你又是一个即将转行做互联网行业的人员,对于这个选择题你还可能比较迷茫,必须选择一个。

那我根据在互联网这些年,摸爬滚打的经验。不吹不黑,实事求是客观的来分析一下,希望给到正在纠结的朋友一些建议。

那我们回到主题,软件测试还是开发,怎么选择?

首先,我们来看他们的一些区别,第一个岗位的区别。

包括他的一些工作内容,入门难度,技术深度。

我们来看软件测试和开发他们的工作内容有什么不同,第一个做开发,我们主要的任务,工作内容就是根据用户需求,我们去建造一个软件系统。或者你只是去开发软件一个部分的一个模块,这个过程叫做软件开发。

比如说我们常用的滴滴,微信,淘宝,这样的系统软件。就是我们开发人员做出来的,那么这个实现过程呢,需要用到很多的开发语言来设计来实现,比如说企业主流的Java语言,C语言,PHP,Python,.net。

那我们的软件测试呢?就是针对这些开发,弄好的软件系统,我们去发现软件中的这个错误。当然这个思想可能还是算比较传统的思维了。

那么对于行业高速的发展,软件的质量要求越来越高,竞争越来越大,我们不仅要发现这个软件的错误,我们还要去交付一些高质量有价值的软件,所以不仅仅是功能,还有这些软件的易用性,安全性,以及它的性能都要全方面的去考虑。

所以我们看两者的工作内容区别,第一个我们的开发,他是需要有较强的这个实战能力,我们需要去做一些东西(系统)出来。他偏重一个对语言的要求,然后有对算法的要求,有严密的逻辑思维能力。

那我们做软件测试,更偏重于对测试工具的操作,我们通过测试工具去发现软件中的错误,通过一些测试方法。然后还有一个对产品的理解,对需求的理解,整个产品的一个把控,我们要有发散思维,如何把这个软件的质量提高。

根据这两者的区别,那我们来看入门难度。

开发需要严密的开发思维,掌握一门编程语言,所以相对测试来说,开发的入门难度相对高。比如我们一个零基础零经验的同学来做开发 ,你从学习一门编程语言,再加上你的实战能力,编写一些小的项目经验去找工作,至少需要6个月时间。

学习到找工作的过程,可能需要6~12个月,这个时间还是比较保守的。很多同学可能在这6个月过程中,他就坚持不下去了,发现这些代码不仅枯燥,而且理解不了。他本身对代码看着就头疼,很难坚持。

有些同学可能学完6个月了,但可能这些东西都还没有消化,去找工作的时候到处碰壁。所以刚刚学完出来的开发,找工作其实是一个难题,现在的竞争压力也挺大。所以你需要沉得住气度过一个周期,比如说经过一个菜鸟阶段,工资低,然后到处找工作碰壁的一个阶段。1~2年,然后走上正轨。

那我们测试进入这个行业,他的周期比较短。因为我们学习的技能,相对于开发来说比较少,技术难度没有那么大。你在学习的过程中,你应该也能接受,能学懂。然后我们的项目经验,有很多的练手项目,不需要自己再去写项目来测试学习,找工作相对于比较简单。学得快的可能两个月,我们就可以入手这个功能测试,2~4个月。那么如果你要学一些自动化技术,脚本能力,可能需要四个月的时间,这些是他们的入门难度。

再来看技术深度,也是他们很大区别的地方。我们的开发,他学习一门编程语言基础语法之后,我们在工作过程中你还要去,深入底层的一个原理,你才好有自己的思维,怎么去开发一个比较好的软件。需要你的技术面比较广。

然后开发的技术有一个特点,更新迭代比较快,像我很多朋友之前他是做.net开发,目前行业,你如果去找一个.net开发的工作都比较困难。那当然也是有很多.net开发,只是说相对于Java其他语言找工作就业机会比较少。所以这个是语言之间的技术迭代。

同一门语言他有很多技术框架,比如说你做前端开发,有很多新型的框架,更新出来你就必须要去学习。所以我们开发的技术深度深,技术面需要很广。

那我们的测试呢?首先他的技术,最主要的偏重于测试方法和工具,那这个是技术迭代没有那么快。测试也是需要去学习这些编程语言,从长远的发展考虑来说。我们也需要去理解一门编程语言,帮助我们去更好的理解这个bug、定位这个bug、分析这个bug。

然后我们需要去做自动化测试,提高我们测试效率。测试所学相关的编程语言和技术更新迭代没有那么快,举一个最简单的例子。

Selenium这个是目前,在测试行业的人员都知道,用来做自动化的一个主流的技术、测试框架。那么,在我接触到的自动化技术,或者更早十几年之前,可能这个框架工具就诞生了,但是到目前为止,这还是企业主流的一个技术框架,所以他的技术迭代更新比较慢。现在也会新兴出来很多框架,比如说Cypress,但是相对于开发来说比较少。



了解到这两个岗位的区别,还有入门难度,技术深度。我们再来看他的发展前景,那首先就会有同学就会问到,我们开发他的一个难度大,技术深度广度要求都高。所以,那他的发展前景比测试好吗?

我给一个参考答案,同级别软件开发肯定是要比软件测试工资高的。

那么我们首先来看发展前景中间的一个薪资,大家最关心的。那我们刚入门级别的开发,比如说刚工作一年左右的开发和测试,他们的这个门槛没有那么高,相差不大。拿一线城市的薪资水平举例,比如开发在一线城市,一年左右的经验刚出来8~10K左右。那么测试他也能达到这个技术水平,也能拿到这个范围的薪资。

随着工作经验和技术的增长,在三年五年之后,测试和开发的工资就会逐渐的拉开差距。比如一个三年的开发,他可能在一线城市能够拿到12~20K。那我们做测试的可能三年左右,10~15K。时间越久可能开发相对于测试,他的工资是要高那么一点,虽然我是做测试的,但这是实事求是。

再来看我们的职业规划



接下来让我们来看,根据自己的定位,到底我适合做软件测试还是软件开发?

第一个开发,首先我要去做一个开发人员,我一定要有对编程有浓厚的兴趣,因为你天天需要去写代码,大量的代码如果你对代码不感兴趣,那你简直就是受罪对吧,然后你需要有一定的计算机专业基础。如果你对电脑操作系统完全没有任何基础,你学这个开发学起来就比较吃力。更别说去编程、那些算法题了,就好像我们小学,要你本来一个数学成绩不及格的人去做一个奥数的题目,这个你能受得了吗。所有我们需要有一定的专业基础。

第二个就是我们的抗压能力,我们在开发过程中,需要不断的去学习新的技术,而且在你初级成为中高级之前,在这段时间你的压力是很大的,因为你的技术不成熟,在企业中 ,那么如果你的能力不强,你会被各种角色去怼,比如说产品给你一个需求你半天做不出来,那么这个东西你不能作假。“你做不出来,为什么别人能够做出来” 而且你做的东西一堆bug,提交个代码都不会。所以你需要有很强的抗压能力和坚持不断的学习,你如果具备这两项特质,你适合去做开发。(还有你想成为真正的程序员中间的大神级别的大佬,因为只有像这种高级或者架构师级别的,会去做一些自己的开源项目,开发一些好用的框架,成为业界的大神,那你需要去做开发)

那什么样的人适合做软件测试呢?

首先第一个,你对这些代码不是非常敏感,那你又想做这个互联网行业,我建议你做测试。

然后就是一个转行的人员,之前可能你是做其他的运营或者是非互联网行业的人员,你现在想做测试和开发。那我建议你先做测试,我们再慢慢的学习编程语言,看自己是否合适。

如果你是非计算机相关专业,以前没有任何的这些编程语言基础,那我建议你先做测试,然后如果你想快速往互联网行业发展,在一线城市拿到月入上万的工资,快速的学习到找工作,建议你还是做测试。在两到四个月的时间,你能学完去找工作。

还有一个你年龄偏大,比如说自己25岁以上了,虽然25岁以上还是比较年轻的,但是你相对于那些应届生。你25岁了,你如果去做开发的话,还要经历成长周期,从学习到积累项目经验,时间压力很大,建议你做测试。



你如果有探索精神,你喜欢去找软件中的一些瑕疵,找他的问题找他的bug,那你是最适合做软件测试的。
回复

使用道具 举报

0

主题

4

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 3 天前 | 显示全部楼层
垃圾内容,路过为证。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|开发者网络

GMT+8, 2025-4-6 14:12 , Processed in 0.095406 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表