其他分享
首页 > 其他分享> > 为什么说软件测试行业现状是就业“竞争小、人才缺口大”?

为什么说软件测试行业现状是就业“竞争小、人才缺口大”?

作者:互联网

1.从岗位要求看软件测试

首先,我想请大家和我一起思考一个问题:我们要以什么标准来区分初级、中级、高级软件测试工程师、测试专家这几个岗位职称?也就是这4个职位怎么去界定,我们自己属于哪个级别呢?(为什么选这4个呢?因为现在整个行业基本都是这么去划分软件测试工程师岗位级别的。)从众多的招聘信息上看到,似乎是可以用工作年限来界定的:1年以下是初级、1-3年是中级、3-5年是高级、5年以上是专家。

在这里插入图片描述

那有的人就会想了,我已经工作5年了,是不是我可以去应聘测试专家了呢?答案是不一定。为什么呢?因为先不说以工作年限作为判断的标准是对还是不对,仅仅简单地依据年限来判断这个方法就是会有偏差的。不是有个段子嘛,说是10年工作经验,其实是用1年的经验工作了10年。 继续从众多的招聘信息上看到,似乎是可以用工作技能来界定,功能测试是初级、会用工具是中级、能开发自动化脚本是高级、能开发自动化框架是专家。那又有人会想了,现在这么多培训,线上线下都有,各种方面的,比如python编程,自动化测试培训等等。那是不是我参加这些培训班,学会了python、学会了自动化测试框架的使用,那我至少可以应聘高级软件测试工程师了吧?答案还是不一定,为什么这么说?我们先把这个问题记下,继续往下,看完我后面的认知理解,我们再回来看这个问题应该就能有答案了。

02.软件测试技术的认识和理解

现在我们稍微转换个话题,讨论一下什么是软件测试,什么是软件测试技术。很多时候,很多从业者一提到软件测试技术,想到的就是自动化测试、测试开发这样的字眼,比如接口自动化、UI自动化、性能测试;什么postman、Jmeter、selenium、appium、RobotFramework、Cucumber等等,似乎简历里不带有这些字眼就体现不出技术能力。不过呢,如果把这些信息从简历里拿掉后,我们又会发现绝大部分简历似乎都一样了。难道说软件测试技术真的就是通过上面所说的测试类别或内容、测试工具或框架来体现的?小编个人认为这个理解没有错,但是不够全面。这个理解是站在狭义的技术上去看,让我们换个角度,从广义的技术上来看软件测试应该是什么样。
在这里插入图片描述

小编理解的软件测试技术包括四个方面:工艺、工序、方法、手段。这四个方面环环相扣、是个有机的整体。其中工艺、工序是一对,理解起来略显抽象;方法和手段是一对,这一对是我们经常谈到的。这里先举个例子做下说明,便于大家对我接下来要说的内容能更好地理解。我们大家都有过体检的经历,体检就是对人体这个复杂的系统进行一项项的检验,来确认健康或者是有什么问题。体检的时候我们要验血、验尿等,化验的有很多细分项,比如血小板、红细胞、白细胞、血红蛋白、(尿糖、尿蛋白)等,每项都有个正常的指标范围;然后查心脏会拍心电图、查肝脾肾会做B超、查肺会拍X光等等,影像或者片子出来后,医生会以他脑子里记忆的正常标准的影像图来进行比对,从而确定是否健康。讲到这儿,思维比较活跃的人是不是已经感觉到体检和咱们测试很像了?只不过体检测的是人体系统;而咱们测试呢,测的是软件系统,被测物不一样、指标不一样、方法手段不一样而已,但道理是一样的。

在这里插入图片描述

okey~我们回来接着聊广义的软件测试技术。 首先来说工艺,它是指测试的指标体系,也就是标准;构建指标体系,就是针对测试对象,从多个方面,不同维度,构建一个测试指标项的集合。测试的指标项简单地来看,就是我们常说的测试点或检查点或checklist再加上针对这些点的指标要求,它是工艺的核心,更是软件测试技术的根本。就好比我们体检时要做哪些检查项,每项检查中细分哪些指标的检测。体检结果准不准,主要就看检查的指标全不全、细不细。同理,我们的测试做得好不好,就要看我们的指标体系构建的合理不合理、完整不完整了。

接着来说工序,它是指测试的工作项的顺序,也就是流程;就像我们体检的时候要先查什么、后查什么,哪些项可以没有顺序,哪些项又必须串行,查某项的时候有什么前提,比如空腹、憋尿等等。我们有不少从业者一说起测试流程就是参加需求评审、评估测试周期、设计测试用例,有的流程严谨些的会有测试用例评审,有的可能没有,然后是执行测试,记录、跟踪并验证bug,测试总结报告,就完了。太粗犷!不妨借鉴某些食品或者饮品广告里说的“经过21道工序加工而成”来仔细琢磨一下,我们还做了什么必不可少的环节?比方说功能需求or软件需求到测试需求的转换、梳理上下游系统的关联和交互、根据调用链or数据流圈定回归测试范围、结合业务设计全流程覆盖的测试场景并造数据等等。当你把工序细化到每一项有明确产出物的工作项时,你就会清楚哪做得到位,哪做得还不够;同时,对应这些工序要做到什么程度也就有了目标了。在工艺和工序上深入思考,就能基本上搞清楚“测什么”这个问题。下面我们再继续来谈谈怎么测。 先说方法,它是指测试的方法和策略,也就是思路;这个是大家经常讨论,有很多借鉴和参考,并且已经有很多方法论可供学习的。核心也基本上都是从软件产品质量六性出发,划分出测试类别,然后针对测试类别思考采用什么测试方法。需要注意的是对于测试方法的灵活运用,以及考虑投入和产出的平衡。这部分内容在网络上或者测试专业书籍都有大量的、详细的介绍,大家有兴趣可以自行搜索阅读。再说手段,它是指我们测试方法的具体落实,也就是实操;大多数情况下工具就代表了手段,毕竟咱们人类使用工具基本上已经成了一种本能。做什么事之前都会想想有什么可用的工具没有,这正是工欲善其事,必先利其器。它和测试方法经常被一起提及,我相信大家说起来也是如数家珍。手段这方面是目前大多数软件测试职业培训主打的一点,也是大多数想入行或者入行后想迅速提升的同学们可以选择的路径。但是请大家注意,手段只是软件测试技术中的一个方面,应该重视,但不能过于重视。也不能因为会用工具、会些自动化测试就鄙视手工测试,因为两者没有优劣之分。
在这里插入图片描述

让我们一起看下《测试武功论》就会明白了。(测试武功论这个说法是很多测试圈内人人士常用得一种说话,因为武侠小说中分内功&外功,所以拿武功来类比了一下软件测试,感觉更简单易懂一些)软件测试的武功分内功和招式,像功能测试、性能测试、安全性测试、兼容性测试等等,是一种思想理念的体现,一种方法论,所以是内功心法。其中功能测试又是一门基本功法,是一切的基础。像前面提到的LR、Jmeter、postman、selenium、appium、Robtframework、Cucumber等等都是刀枪剑戟等兵器以及配套的招式,属于外功功法了。有人会问,那手工测试算什么?我的回答是,手工测试是拳脚招式,兵器好选、招式好练,但是内功积累就不容易了。仅仅会招式,有兵器不行,这是花架子,遇到懂行的一碰就倒。这也是为什么学会python编程,经过测试工具或者测试开发培训也不可能轻易从0基础达到高水平的原因。但仅仅是内功深厚也是不够的,因为你与人比武时,总不能遇到谁都不过招,上来就比拼内力吧?这就从侧面回答了为什么内功也就是功能测试达到登峰造极,也要最好能用一些工具或者能懂自动化、有编程能力;为什么没有内功,即便有神兵利器也发挥不出威力,也就是自动化测试需要先做好测试再来谈自动化,测试开发也一样。
综上,如果想要达到武功天下:
第一,成为一代宗师,最好内外兼修,不仅内力深厚,而且招式精妙、兵器趁手。

有了上面软件测试技术和测试武功论的理解,我们再回过头看之前遗留的那个问题。
在这里插入图片描述

还不够,因为曾经就看到过这样的事故案例:接口测试只做了回参和落库的校验,漏掉了对于调用链上关联系统MQ消息的幂等校验,结果因为订单退款流程涉及的一系列系统幂等没有做好,一个订单能够多次退款,也就是每单退款公司都多给客户返还了好几笔钱,造成了相当严重的资损。虽然责任不全在测试,但是实际上如果测试人员多思考系统结构、上下游系统关联关系,多思考接口调用链路、数据链路,是完全有可能在线下测试的时候就发现这个bug的。所以仅仅是掌握了一些测试工具的使用、仅仅会做些自动化脚本的开发、仅仅会做软件的测试而不懂软件系统的测试是完全不够的。

标签:现状,缺口,内功,测试,自动化,招式,我们,软件测试
来源: https://blog.csdn.net/m0_57162664/article/details/115721824