经常有一些考虑转行IT的网友朋友问我一些软件测试相关问题,虽然问法五花八门,但总结下来无非就是几大类。现在就把大家想知道的答案专门整理了一篇长文,供大家查阅,希望对考虑转行和已经转行软件测试的朋友有所帮助。
本文探讨主要包括:
什么是软件测试?软件测试的发展前景如何?软件测试行业有什么样的特点?软件测试人员的薪资收入怎么样?软件测试的职业发展方向是怎样?软件测试的工作内容主要有哪些?软件开发是不是比软件测试更好?测试是不是比开发要求更低一些?软件测试岗位会不会被开发取代?软件开发比软件测试更有前景,是真的吗?一个优秀的软件测试工程师要具备哪些能力?入行软件测试,是选择自学还是培训?不参加培训,如何通过自学的方式成功转行?软件测试需要学习掌握哪些知识点?如果要参加培训,如何选择一家靠谱的机构入读?
问题一:什么是软件测试?
顾名思义,就是在规定的条件下对一个产品或程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。通俗来讲,软件测试是保障软件质量全过程的集合。
软件质量会根据产品、行业、阶段不同而有所变化,所以测试应该覆盖软件的整个生命周期,比如调研、需求、设计、研发、测试、上线、运维等。
敲黑板,软件测试要贯穿产品整个生命周期,而非大家浅显理解的开发完后简单测试的那一段小过程。
另外,所有为了保障软件质量的工作,测试人员都应该积极主动的参与,比如前期的市场调研、竞品分析、用户画像;后期的线上运维配置、环境配置、业务监控等等。
测试早就不再是大家认知的功能性测试,而是需要具备更多的专业技能,比如自动化测试、性能测试、手工测试等等。
问题二:软件测试的发展前景如何?
软件测试伴随着软件产品应运而生,早期的开发规模比较小、产品也较为简单,所以测试的含义也很狭窄,开发人员将测试统称为“调试”,目的是纠正软件中已知错误。在国内市场,很多软件企业都存在着重开发、轻测试的现象,甚至有很多互联网和软件企业都没有专门的测试岗位,而是在产品上线前要求开发和非专业人士的内部测试,这就造成软件产品的质量问题频出,上线后出现各种问题。
近两年来,随着互联网的快速发展,软件系统变得越来越复杂,一个软件产品不再是由1-2个开发人员单独编写,而是团队配合,可能每个人只负责一个单模块,对于产品全局没有全据了解,所以这些软件在运行时就非常容易错误,行业内将此称之为Bug。
并且每一个软件工程师都会有思维死角,不容易发现自己编写出来的错误,所以这时就需要专门的软件测试工程师用专业的测试方式来检查产品了。
并且,因为我国企业对软件测试技术的认知较晚,所以这方面的专业技术人才在国内还很稀缺。据调查显示,目前国内软件测试人才缺口已达到30万,中国软件业每年新增约20万测试岗位就业机会,但是企业、学校培养出的软件测试人才不足需求量的1/10,并且需求与供给间的差距仍在进一步拉大。华为就曾一次抛出过50名软件测试人员的招聘大单,而其他大厂也纷纷打出高薪招聘软件测试人才的启事。
随着用户对产品要求逐渐提升,测试人员在企业内部的分量只会越来越重,北上广深等一线城市将会带动其他城市一起发展。因此,软件测试的前景只会是越来越好,当然,最基础的功能测试的岗位需求已经很少了,但自动化、性能、安全乃至于以后可能出现的大数据测试、AI测试仍存在着非常多的机会。
问题三:软件测试行业有什么样的特点?
1、职业发展更多元化
由于工作的特殊性,测试人员不但需要对软件的质量进行检测,而且对于软件项目的立项、管理、售前、售后等领域都要涉及。在这过程中,测试人员不仅提升了专业的软件测试技能,还能接触到各行各业,进而在项目管理、沟通协调、市场需求分析等能力上得到很好的锻炼,从而进一步为自己的多元化发展奠定基础。
2、通用性人才,有无限机会
软件测试人员是通用性人才,其不受地域、行业发展的限制,而且也不受年龄和体力的影响,职位经验越丰富越吃香,因为工作的时间越长积累的项目经验越多,在测试中会更加敏锐的发现软件中的Bug。
并且相对于一些其他传统行业,在互联网公司里,内部政治、勾心斗角一般是比较少有的,上下级关系也较为简单,更重要的是只要你技术出众、有实力,你就可以获得无限的机会。
3、缺口大,薪资高
从需求分析到产品开发再到产品维护,都离不开软件测试。并且,由于软件测试的重要性近两年才在国内被重视,所以高校教育和企业培养都还没有跟上,致使软件测试人才供不应求,薪资也随之走高,优秀的软件测试人才年薪可达十万,甚至二三十万或更高。
2020年-2025年,我国将利用国际产业转移的重大机遇,聚集各种资源,突破核心技术制约,在软件、计算机与信息处理、现代移动通信、信息安全、信息服务和系统集成等技术领域加强创新,促进IT产品更新换代,推动我国由IT大国向IT强国的转变,进而推动国民经济信息化进程,以信息化带动工业化,走出一条新型工业化道路。
因此,IT行业的人才需求也会进一步加大,对软件测试人员而言,这是一个机遇,也是一次挑战,更是一个弯道超车的好机会。
问题四:软件测试人员的薪资怎么样?
从国家统计局发布的2018年国人平均工资数据显示,薪资最高的是信息传输、软件和信息技术服务行业,平均工资高达141962元,计算下来人均月薪为11830元。
我了解了全国软件测试人员以及成都地区软件测试人员的工资收入水平,据岗位调查,两者之间相差一千六百元左右元,最大影响因素是各城市地区的互联行业发展环境的不同。
IT行业的高薪是毋容置疑,也无需多言的,虽然程序员常被人调侃“钱多、人土、爱加班”,但也不得不承认,这个一个高回报率的行业,只要你努力付出,你就一定有所收获。
很多人都认为,测试的薪资比开发要低很多,实际上现在测试岗位早就不是以往那种普通的功能性测试了,虽然软件测试依然是IT行业中最适宜转行、练级的新手区,但对于每个从业者而言,随着从业年限、处理问题能力的提升速度、发展方向的不同等,测试人员的薪资也在大幅提升,甚至大有超越开发之势。
并且,如果测试和开发薪资差别真的很大,只能是有些人能力不足,能力上去了一切薪资都会很好的,不同的能力对应了不同的薪资水平。
并且,若你真想挣钱,那就先学技术,目前自动化测试、测试开发等从业者薪资都不比开发低。以下是软件测试职业成长路径以及与之对应的薪资,数据来源自某招聘网站。
问题五:软件测试的职业发展方向是怎样?
对于技术人员而言,职业发展规划一般分两个方向:做技术、做管理。
刚进入软件测试行业的新人都会从最基础的执行开始做,然后是用例设计,相当于基本的功能测试。随后大家会根据个人职业发展来进一步细化,有的走管理路线,成为了主管,经理,项目负责人等;有的深入测试用例设计,继续高级的功能测试;有的发展技术,专研性能测试,安全测试,自动化测试,测试架构设计等。
如果你想往技术领域深耕,一般又可以细化为两类:一类是功能测试,也就是大家相对熟悉的点点点测试、黑盒测试,这类工作不需要太多的编程经验,只要看得懂代码就可以;另一类是自动化测试,包括功能自动化、性能自动化、接口自动化等,这一类工作对代码能力要求就比较高了,也就是大家常说的测试开发工程师。