目录
在软件业较发达的国家,软件测试产业已形成规模,比较发达,软件测试不仅早已成为软件开发的一个重要组成部分,而且在整个软件开发的系统工程中占据着相当大的比重。在微软公司内部,软件测试人员与软件开发人员的比例一般为1.5∶1到2.5∶1左右,即一个开发人员背后,有至少两位测试人员在工作,以保证软件产品的质量1。国外优秀的软件开发机构把40%的工作花在软件测试上,软件测试费用占软件开发总费用的30%至50%,对于一些要求高可靠性、高安全性的软件,测试费用甚至相当于整个软件项目开发所有费用的3至5倍。
我国软件测试行业起步较晚,发展较慢,直到21世纪初期,我国才逐步开始重视软件测试行业。但近年来,软件行业的快速发展为软件测试行业的发展提供了良好的基础,随着我国软件测试行业的发展,行业内企业向规模化发展将获得规模效应,可以有效降低企业的单位成本;而软件测试技术的不断发展,也将淘汰那些技术实力较弱的企业,促使行业内企业向专业化方向发展。近年来中国软件测试行业市场规模稳定增长,截至到2021年中国软件测试行业市场规模达到2347亿元,同比增长18%。
从发展来看,由于我国软件测试行业起步较晚,因此存在大量技术和资金实力都较弱的企业。随着我国软件测试行业的发展,行业内企业向规模化发展将获得规模效应,可以有效降低企业的单位成本;而软件测试技术的不断发展,也将淘汰那些技术实力较弱的企业,促使行业内企业向专业化方向发展。
一、 2022年中国软件测试行业发展态势分析
从国内软件公司软件测试部门的独立性来看,多数软件企业没有专门的测试技术部门,软件测试程序也不太规范,多数企业也不懂测试,对测试的投入资金过少。大多数是在经过简单的测试之后,就认为是没有问题了,就交于用户了,让用户去“测试”;于是,软件产品在没有经过严格测试的情况下就发布了;对国内消费类软件而言,经常出现一些已经推向市场的产品由于被发现有严重缺陷而导致大量退货的现象;定制的行业软件,常出现一再返工、无限期的修改和维护的现象。
图表:软件行业公司软件测试部门设置情况
随着中国IT业的发展和软件市场的不断成熟,人们对软件功能的期望值也逐步增高,人们常关注的是:软件的性能、可靠性以及最重要的质量等问题。几乎每个中大型厅企业的产品在发布前都需要大量的质量控制。测试和文档工作。但是,目前中国软件产业在产品功能和性能测试领域还存在着严重不足,中国软件企业也都开始意识到,软件测试的广度和深度决定了中国软件企业的前途命运。当前国内软件测试行业主要存在以下问题:
①软件规模越来越大,功能越来越复杂,如何进行充分而有效的测试成为难题;
②面向对象的开发技术越来越普及,但是面向对象的测试技术却刚刚起步;
③对于分布式系统整体性能还难以进行很好的测试;
④对于实时系统缺乏有效的测试手段;
⑤随着安全问题的日益突出,信息系统的安全性如何进行有效的测试与评估,成为世界性的难题;
⑥测试的自动化程度不高,手工测试过多,自动化测试工具和手工测试人员也缺乏较好的结合;
⑦缺乏软件测试意识、对其重视不够;
⑧在软件开发基本完成后才进行测试,也缺乏软件测试的统一标准;
⑨高校从师资储备到专业设置再到人才培养的机制薄弱。
二、 2022年中国软件测试行业发展特点分析
一、发展迅速
在当今高速发展的信息社会,计算机和电子技术越来越受到人们的重视,以软件为代表的计算机行业正在以一种井喷式的发展趋势。软件测试得到了许多科研单位和企业公司的大力重视,我国软件测试行业发展迅速。
二、人才缺口大
软件测试行业以人才为生存和发展的基石。随着信息产业的蓬勃发展和软件市场的不断成熟,人们对软件产品的期望不断提高,软件的质量、性能、可靠性等方面越来越受到业界重视,软件测试作为软件产业中的新兴贵族而迅速发展起来,专业软件测试人才的需求迅速攀升。
据招聘网站统计,国内超过150万软件从业人员中,能担当软件测试职位的不超过10万人,具有3-5年以上从业经验的更是不足5万人,紧缺的软件测试工程师的数量和能力也比较薄弱,不如国外。
与此同时,国内30万的软件测试人才需求缺口正以每年20%的速度递增。测试工程师正在成为软件开发企业必不可少的技术人才。然而,由于国内软件业对软件质量控制的重要作用认识较晚,尚未形成系统化的软件测试人才需求供应链,造成目前软件测试人才千金难求的尴尬局面。
三、如果想入行该怎么规格学习路线呢?
第一阶段 测试基础
测试基础是软件测试最最最重要的部分,只要你是做测试,不管是什么测试,测试的基础、理论知识都是必须学会的。
最好学到什么程度呢,最好是能够理解,并能够用自己的话给复述出来。
毕竟面试初级测试的时候,问的问题都是从基础理论上进行考核的。
那测试基础有哪些内容呢?
测试的定义、测试的分类、测试的方法、测试的生命周期。
测试计划、测试方案、测试策略、测试用例的编写。
BUG的定义、BUG的分类、BUG的六要素、BUG的生命周期。
测试和开发流程的关系、瀑布流、V字形、W字型(双V)、螺旋型、敏捷等等。
PDCA、5W2H等分析管理的方法
质量管理体系CMMI(了解)
嗯,大概就是以上的内容吧,以上全部都是理论和文档能力、只要你肯背、肯写,都是能独立的掌握的。
第二阶段 工具学习
软件测试的基础学完了过后,应该学习工具了。
其实学工具真的很容易,所以大家不用去纠结工具的选择。
把最基础的几个工具学习了就行了,以后用到什么工具就去学什么。
在这个阶段,学习工具什么的,重点在于接口测试的学习,所有的工具的学习,都是在为了接口测试的学习做铺垫。
下面我会列出需要学习的工具和知识点,按顺序学习就好。
简单的网络协议:TCP/UDP,HTTP/HTTPS
Linux的基本操作和常用指令。
MySQL数据库的基本操作和常用sql语句。
fiddle抓包工具的使用。
postman接口测试工具的使用。
jmeter和loadrunner性能测试工具的使用。
第三阶段 代码学习
好了,学完了以上两个部分,恭喜你,你已经是一个出色的初级测试工程师了。
接下来,你要考虑你的发展方向了
是成为一个自动化测试工程师呢?
还是性能测试工程师呢?
还是安全测试工程师呢?
啊!这个问题好难!我也不知道该怎么选。
反正我啥都会一点,哪个岗位都能去面一面。
关于方向的选择,看我的这篇文章
嗯,相信你心中已经有了答案了,那我们继续往下面说。
这个阶段,我们应该学习代码了,关于编程语言的选择,我推荐Java或者python。
还有数据库也是必须掌握的!在工具篇的学习里,我认为你已经可以掌握数据库的相关的应用了!
所以现在各位可以去学习编程语言了,
不过不用像开发那样,学的那么深入。
比如Java,只需要学完JavaSE的部分就够你用了。 python的话也是一样的,把基础的部分学完就行了。
总之前期你两者二选一的学习就OK了。
啥?你问我学的啥。
我当然是两种都会啊
哈哈哈哈哈哈哈,惊不惊喜!意不意外!
自动化方向
等你代码已经基本掌握了,嗯,很好,接下来就要学习各种自动化测试了。
各种单端测试框架:unittest(python)、pytest(python)、JUnit(java)
WEB自动化测试框架:selenium(适用于java\python\javascript)
APP自动化测试框架:appium(适用于java\python\javascript)
以上的内容,根据你学的语言进行选择。
appiunm和selenium根据你参与的项目进行选择。
不过无所谓了,反正迟早都要学会的。
这部分的教程太多了,你学会了编程的基础后,随便百度,好多博客论坛都有教程。
而且凭你那时候的水平,你都能轻松的看懂。
性能方向
对loadrunner和jmeter的掌握更加的深入。
可以手写脚本、脱离录制。
学会了多线程编程、能够手写java或者python、不用工具直接实现压测。
学习linux,毕竟性能总是和服务器打交道的。
学习系统架构的相关知识、方便你更容易的分析系统瓶颈。
说实话、性能方向的提示更难、因为需要掌握的东西太多了。
性能测试做深入了,基本上就是架构师的水平了。
可能你现在看着这个性能方向的学习一脸懵逼。
没关系、等你把上面的编程语言学会了你就不懵逼了。
安全方向
渗透测试
SQL注入
暴力破解
脱库
等等
其实安全测试基本上偏向于网络攻防了,也就是传说中的黑客了,不过我们都是好人,这个的发展方向就是白帽子。
推荐知道创宇的学习体系。
我估计你看到这里就更懵逼了。
没关系、等你把基础的东西学会就知道我在说啥了。
毕竟你现在还是一个小白嘛。
不要去纠结这种小事。
各位在这个阶段,正常情况都应该是中级测试工程师的水平了。
第四阶段 架构学习
前三个阶段学习完成后,各位就应该考虑怎么写代码更合理了。
怎么去测试更全面。
怎么才能更好的保障项目的质量。
我认为,在这个阶段,应该回头重新学习一遍测试基础。
因为这个阶段的提高是思想、方法的提高了。
上面讲的都是教你应该怎么做。
在这个阶段你要自己去发现、为什么要那样做。
跨过了这个阶段就基本上可以成为专家了。
学习都是水到渠成的,在这个时候,你应该已经掌握了不少框架了,甚至自己也能开发合适的框架了。
自动化测试框架、性能测试框架等等。
已经有了属于自己的一套东西了。
在群里或者论坛上去装逼、别人都会尊称你一声大佬了。
可能你也学会了一些其他的技术了,甚至在往全栈等方向跨进了。
总之,到了这个阶段就没什么学习路线了。
最后:【可能给你带来帮助的教程】:111111111
这一些资料,对做【软件测试】的朋友而言应该是较为完整了,这类学习资料也陪伴我走过了最艰难的路程,希望也可以帮助到你!万事要尽早,尤其是技术行业,一定要提升技术功底。