软件开发和软件测试,到底学哪个好呢?

news2024/11/27 12:39:55

写在前面:买车没有最好,只有最适合。

类似这类“很难选择”的问题,在知乎上其实有很多。

比如:“该去年薪10w的国家电网,还是去年薪40w的互联网大厂”;

比如:“城里有房,剩下的100W是存银行还是回农村盖民宿”;

比如:“手握30W现金,是买倍有面子的奔驰宝马。还是买倍有里子的国产汽车”....

现在这个问题,“软件开发和软件测试,到底学哪个好呢?”其实也是如此。

面对这类选择的问题,往往会令人纠结,原因是每种选择都各有优缺点。

解决办法:不要将全部关注点落在“琢磨哪个选择面谁优谁劣”(心思花的越多,也可能没结果)。而应在了解两类选择优劣势的前提下,从自身出发,去看看哪个选择面更适合自己,那答案就出来了。

所以在汽车销售团队,有这么句话:没有最好的车,只有更适合自己的车。

所以,“软件开发和软件测试,到底学哪个好呢?”我们分三步走:

1、两个岗位谁优谁劣,值不值得纠结
2、从专业、年龄、性别、学历这四个维度去分析适合什么岗位
3、最后总结,什么人适合学开发,什么人适合学测试


一、软件开发与自动化测试PK,看各自优劣势分别在哪?

1、先比较薪资PK

哪个岗位好,普通人最关注的是薪资。薪资低的岗位,了解的兴趣都不会有。

所以我们先来比较大家最关注的薪资。

看到薪资,很多人可能认为是开发完胜测试。但是,现在与开发比较的不是软件测试,而是更具技术含量的自动化测试。实际情况如何呢?刚好黑马既有开发学科,又有软件测试学科(主要培养自动化测试),大家可通过“黑马各学科薪资汇总”这个视角,一窥两个岗位的平均薪资。

图片

黑马最近2年各学科平均薪资汇总,测试略高于开发学科

图片

季度和月份薪资PK,北京区域的自动化测试薪资依然高于开发学科

若想看到软件开发与软件测试更多维度的薪资PK,可狠戳下方链接:

《为什么软件测试相比软件开发薪酬待遇差别那么大?269 赞同 · 41 评论回答》
https://www.zhihu.com/question/56939189/answer/1850310934

上方文章给大家揭露一个非常有趣的现象:以10年工龄为界,10年之内,同等工龄的开发岗位平均薪资要超过测试;但10年之后,软件测试的平均薪资却要反超编程开发。
上方文章,也介绍了软件测试薪资,为何频频上涨的原因。

总结:可见,自动化测试的薪资总体虽然会微弱于开发。但,入行薪资和10年后薪资PK,软件测试薪资却略高于开发。

2、再比学习难度PK

看完薪资,接下来看入门门槛,也就是学习难度。

二者的学习难度,从黑马培训时间就可以看出来。

软件测试,只要3个半月,
而软件开发,无论javaee还是前端,都需要系统学习半年左右。

为什么软件开发的学习周期这么长呢?举例Java开发。小伙伴们听说过9大主流技术栈吗,我们来列一下:

1.Spring Framework是Java中最流行的应用程序框架之一,提供了依赖注入、面向切面编程、数据访问、Web开发等众多功能。
2.Hibernate是一个流行的对象关系映射(ORM)框架,使得Java应用程序可以轻松地访问和操作数据库。
3.Struts是一个用于构建基于Java的Web应用程序的MVC框架,提供了一个统一的架构来处理请求、响应和数据验证。
4.Apache Maven是一个流行的构建自动化工具,可以用来构建、测试和部署Java应用程序。
5.Apache Tomcat是一个流行的Web服务器和Servlet容器,用于运行Java Web应用程序。
6.JUnit是一个流行的Java单元测试框架,可以帮助开发人员编写和运行单元测试。
7.Log4j是一个Java日志框架,可以用来记录应用程序运行时产生的信息和错误。
8.JavaFX是一个用于构建丰富的、可交互的图形用户界面(GUI)的框架。
9.Apache Kafka是一个分布式流处理平台,可以用于构建高吞吐量、低延迟的消息传递系统,支持大规模数据流处理。

正因为学的多,所以开发技术天花板是很高的。若想扎根IT技术,推荐学开发。

图片

3、三看技术更新程度

技术学会了,还得看看技术更新速度。

因为开源的流行,除了让开发技术变的廉价外,也让开发领域技术更新会非常快。

所谓开源,就是作者开放源代码,用户网上轻松获取。

举例Java,大家可以想一想自己参与的一些项目,用到了多少开源的东西。以一个典型的后端项目为例,可能涉及到了Redis、MySQL、ElasticSearch、Kafka、RabbitMQ、Nginx、MinIO、SprintBoot、Docker···程序员要做的就是根据业务需求,把上面那一堆组件堆在一起。一般就是Nginx负载均衡,Spring写后端业务,Redis做缓存,MySQL、ES、MinIO做数据存储,Kafka和RabbitMQ做一个消息队列,最后塞到docker里面部署运行。如果你觉得东西这么多,头都要炸了不想用,还不行,没有上面这一套开源东西,估计有一大批公司要倒下。

再举例前端,从最初的Javascript源码到jQuery,再到MVC框架,然后到 Angular.js 和 React.js ,再到最近非常流行的VUE框架,每个阶段的前端框架都经历了一段时间的发展,再到被广泛使用,再到被抛弃。前端技术也被戏称“学2年用1年”。

所以选择开发岗位的同学们,需要不断关注前沿的技术,需要不断的学习,压力不小。

图片

但年龄大了,就会有很多家庭琐事,学习时间变少了。再加上人的机能也下降了,学习效率也低了,而开发技术迭代却又非常快。你若学不动,就意味你会逐渐落伍,逐渐被淘汰。

所以开发常有35岁后找不到工作的说法。

而测试,经验更多在于“强业务经验、沟通协调能力”这种软实力的积累,而这种软实力,是没法开源、复制和迭代的。所以测试人员不需要像开发一样需要不断的学习新技术。

什么是强业务经验的积累呢?给大家稍微科普下。
虽然测试人员和开发一样,也需要按照《产品需求文档》,对软件进行规划、定义,但为尽量降低Bug,测试人员要比开发更关注业务细节、关注产品使用场景,要站在客户的维度设计用例。所以测试人员要比开发更深入业务。
当前项目所走过的每一个坑,都会成为测试下一个项目的经验和教训。经过长时间的历练后,测试人员的思维就有那么一点特殊,他设计的用例就是能发现BUG。所以测试随着工作时间,对业务深入逐渐积累的,反倒会越老越吃香。
尤其是一些2B类业务,举例金融行业,对金钱,对保密非常关注。随着测试人员对金融业务的深入了解,业将为测试人员树立一道职业护城河。

所以,软件测试不能说没有35岁危机(张雪峰灵魂发问:请告诉我,哪个岗位没有35岁危机?),只是处境会比开发好很多,职业生命也会更长。

4、四看工作强度pk

两个岗位,关于加班,有这么一种说法:

测试加班,开发一定要加班,比如项目快上线的时候。而开发加班,测试未必要加班。

这也就意味着测试工作要比开发轻松。

软件开发天天加班不假,但并不是加班写代码,主要是白天都被抓去开会,晚上和人撕逼需求,深夜才能写代码。老这么加班,年轻还可以顶着,年纪大了还真的顶不住。

更详细的【软件开发】真实工作场景介绍,可以狠戳下方链接:

《软件测试真的干到35就干不动了吗?2293 赞同 · 498 评论回答》
https://www.zhihu.com/question/61117238/answer/1540761285

所以开发领域,男生更受重视,因为开发工作强度大,所以开发需要的是抗压能力强,可以接受秃头的男生。

图片

而测试领域,却是男女比例均衡,甚至女士还会更多些,可见测试工作强度远比开发低。

5、五看行业切换PK

开发转行自动化测试,还是较为容易的。毕竟懂代码,学起自动化测试自然简单。所以在黑马,就有一些开发同学,选择转行测试。

图片

但测试转行开发比较难,因为入行门槛,工作强度,薪资吸引力...

了解了开发和测试的五大维度 PK后,应该很多同学就知道该选择哪个学科了。如果如果还限于纠结。那我们继续往下看:

二、从专业、年龄、性别、学历这四个维度去分析适合什么岗位

对于第一部分看完后还纠结的同学,接下来,我们再从专业、年龄、性别、学历这四个维度去分析这两类岗位。

Boss招聘的几张招聘截图镇楼:

图片

图片

图片

通过认证分析boss直聘对这三个岗位的要求,我们可以得到以下的结论:

1、学历:

开发岗,对于学历要求就是本科。
而软件测试,对学历却有一定的包容,大专学历也可以。

2、专业:

不管是前端开发还是后端开发,绝大多数的开发岗,对专业都要求计算机及相关专业。
而软件测试,对专业要求就低很多,很多公司的测试岗,对专业甚至没要求。

3、年龄:

大多数开发的岗位需要三年以上工作经验,这就意味对于24岁以下的同学而言,找工作会比较困难。
而测试在这方面相对宽容,哪怕是应届毕业生,仅21岁,不少公司的软件测试岗也会给你机会。

4、性别:

岗位招聘上,不管是测试和开发对于性别都是没有要求的。
但到软件公司去,就会发现,做开发的绝大部分是男生,很少女生。
相反,在软件测试岗位中,女生比例和男生却差不多,女生还多那么一丢丢。

三、最后总结,怎么人适合学开发,什么人适合干测试

总结1:什么人更适合学开发

1)本科学历
2) 且计算机相关专业。
3)且男生。
4)且聪明好学。
5)且愿意与计算机打交道,想扎根IT技术。
6)且30以下。30+的人学开发,企业对你的【技术期望】会非常高,压力会不小。
7)且只要工资高,加班无所谓。

总结2:什么人更适合学测试

1)大专及以上。如果只是大专学历,更建议选择软件测试。
2)性别不限。如果是女生,最好是选择软件测试。如果是男生怕秃头,可以选测试。
3)非IT相关专业。比如文科生,学开发压力会很大,建议测试方向
4)年龄20+,30+均可。年龄30+同学更建议学测试,测试职业生命会更长些,企业的对于测试岗位【技术预期】也能抗住。
5)更喜欢研究产品,研究业务,不太愿意敲代码。
6)不太喜欢频繁加班。

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

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

相关文章

营业执照识别

目录 1、制作文本检测数据集 2、导出文本检测推理模型 3、制作语义实体识别数据集 4、训练模型 5、模型预测 6、模型导出 7、模型推理 1、制作文本检测数据集 文本检测数据集格式如下: dataset_dir # 数据集根目录,目录名称可以改变 ├── im…

一招告别百度广告烦恼,同时效率提高100倍的几个常用搜索技巧!

《博主简介》 小伙伴们好,我是阿旭。专注于人工智能AI、python、计算机视觉相关分享研究。 ✌更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~ 👍感谢小伙伴们点赞、关注! 《------往期经典推荐--…

软件测试面试-如何定位线上出现bug

其实无论是线上还是在测试出现bug,我们核心的还是要定位出bug出现的原因。 定位出bug的步骤: 1,如果是必现的bug,尽可能的复现出问题,找出引发问题的操作步骤。很多时候,一个bug的产生,很多时…

可以写进简历的软件测试项目实战经验(包含电商、银行、app等)

前言: 今天给大家带来几个软件测试项目的实战总结及经验,适合想自学、转行或者面试的朋友,可以写进简历里的那种哦。 1、项目名称: 家电购 项目描述: “家电购”商城系统是基于 web 浏览器的电子商务系统,通过互联网…

GBase8a-GDCA-第二次阶段测试

文章目录 主要内容在这里插入图片描述 ![在这里插入图片描述](https://img-blog.csdnimg.cn/1d552b9d6d204f4fb4280ccc52807ed5.png)在这里插入图片描述 总结 主要内容 GBase8a-GDCA-第二次阶段测试及答案 总结 以上是今天要讲的内容,GBase8a-GDCA-第二次阶段测试…

clion qt导出dll给别的项目用

clion 导出dll给别的项目用,并且引入matplotcpp dll生成一个mydll的dll文件 1.先做一个简单dll的测试下 cmake_minimum_required(VERSION 3.26) project(untitled) set(CMAKE_CXX_STANDARD 11) add_library(untitled SHARED main.cpp)main.h void hello();main.cp…

在windows下vs c++运行g2o的BA优化程序示例

目录 1、前言2、准备工作安装git安装vcpkg(1)下载(2)安装(3)集成至vs 安装cmake 3、安装g2o4、安装opencv(1)下载(2)双击安装(3)环境变…

Redis应用场景及常见的数据类型

目录 一、Redis应用场景 1.1 Redis作为缓存 1.2 Redis作为消息队列 1.3 实现计数器和排行榜 1.4 实现分布式锁及分布式会话管理 二、Redis常见的数据类型 2.1 String(字符串)类型 2.2 list类型 2.3 Hash类型 2.4 Set类型 2.5 Sorted Set 一、Redis应用场…

前端开发学习 (一) 搭建Vue基础环境

一、环境搭建 1、安装nodejs #下载地址 https://nodejs.org/dist/v20.9.0/node-v20.9.0-x64.msi 2、配置环境变量 上面下载完安装包后自行安装,安装完成后安装下图操作添加环境变量 #查看版本 node --version v20.9.0# npm --version 10.1.03、配置npm加速源 np…

机器学习的逻辑回归

Sigmoid函数 逻辑回归的预测函数 梯度下降法-逻辑回归 import matplotlib.pyplot as plt import numpy as np # 生成一个关于分类器性能的详细报告。 # 这个报告包含了每个类别的精度、召回率、F1分数,以及所有类别的平均精度、召回率和F1分数 from sklearn.metri…

leetcode:367. 有效的完全平方数(python3解法)

难度:简单 给你一个正整数 num 。如果 num 是一个完全平方数,则返回 true ,否则返回 false 。 完全平方数 是一个可以写成某个整数的平方的整数。换句话说,它可以写成某个整数和自身的乘积。 不能使用任何内置的库函数&#xff0c…

科技云报道:Citrix正式退出中国市场!国产们谁能真正顶上?

科技云报道原创。 2023年12月3日, Citrix(思杰)发布的公告将全面生效,中国市场(包括香港地区和澳门地区)也会停止所有新的交易。 这个消息,无疑是引起了业界的热议,毕竟Citrix可以…

11.11作业题

1.不死兔子 def fib(n):if n < 4:return 1else:return fib(n-1) fib(n-2) print("一年后共繁殖{}对兔子".format(fib(12))) 2.输入字符串&#xff0c;判断该字符串是否是回文字符串 s input("请输入一个字符串&#xff1a;") if not s:print("…

el-select组件绑定change怎么获取label和value值

组件中change回调只能获取到value,但是有时候需求是要传两个参数&#xff08;elementui 封装的change只能获取到value,我们可以通过原生事件去获取option值&#xff09;。 如果要在element组件上触发原生事件&#xff0c;一律都得加.native修饰符&#xff0c;否则无法触发事件。…

6.1 集合概述

1. 集合概述 1.1. 引入 在前面的章节中我们学习了数组&#xff0c;数组可以存储多个对象&#xff0c;但是数组只能存储相同类型的对象&#xff0c;如果要存储一批不同类型的对象&#xff0c;数组便无法满足需求了。为此&#xff0c;Java提供了集合&#xff0c;集合可以存储不…

《011.SpringBoot之餐厅点餐系统》

《011.SpringBoot之餐厅点餐系统》【界面简洁功能简单】 项目简介 需要源码及数据库的私信… [1]本系统涉及到的技术主要如下&#xff1a; 推荐环境配置&#xff1a;DEA jdk1.8 Maven MySQL 前后端分离; 后台&#xff1a;SpringBootMybatisPlus; 前台&#xff1a;Layuivue; …

现在做跨境电商还需要全球代理IP吗?全球代理IP哪家靠谱?

随着全球互联网的发展&#xff0c;电商平台的发展和跨境贸易的便利化&#xff0c;跨境电商在过去几年中也一直呈现增长趋势&#xff0c;吸引了越来越多的企业和个体创业者入行。 然而&#xff0c;行业竞争也在不断加剧&#xff0c;跨境电商面临更多的越来越多的挑战&#xff0…

3C品牌国际市场攻略:海外网红营销如何推动电子经济

随着全球信息技术的快速发展&#xff0c;3C电子产品市场变得愈发竞争激烈&#xff0c;各品牌需要不断寻求新的市场推广方法来吸引更多消费者。其中&#xff0c;海外网红营销成为了一个备受关注的趋势&#xff0c;融合了互联网、社交媒体和消费品牌的力量&#xff0c;为3C品牌在…

comfyui指北-1

https://colab.research.google.com/github/tieai/SDXL-ComfyUI-Colab/blob/main/SDXL_OneClick_ComfyUI.ipynb#scrollToSaAJk33ppFw1https://colab.research.google.com/github/tieai/SDXL-ComfyUI-Colab/blob/main/SDXL_OneClick_ComfyUI.ipynb#scrollToSaAJk33ppFw1 可以用上…

解决IP查询结果偏差的几个方法

解决IP查询结果偏差的方法可以包括以下几个方面&#xff1a; 选择权威的IP查询工具&#xff1a;使用来自可信来源的IP查询工具&#xff0c;例如官方或专业的IP地址数据库&#xff0c;以确保查询结果的准确性和可靠性。 考虑使用代理服务器或VPN&#xff1a;如果需要更准确的IP…