最近看了很多提问,都是如何跨行转为软件测试,能不能转,转了以后怎么发展,有没有前景。
我个人在IT行业从事十几年的时间,成就几乎没有,但经验确实积累了一些。在这里,以我个人的角度对这个问题发表一点看法,看能否给希望转型或已经转型的朋友一点帮助。(本文纯粹个人看法)
期望转为软件测试的朋友,一般有以下几个理由:
1、IT行业薪资待遇丰厚
2、软件测试对比IT其他岗位,年限较长
3、软件测试门槛较低
我们就先从这三个角度来分析一下:
一、IT行业薪资待遇丰厚
确实,IT行业包括软件测试,薪水普遍比其他行业要高一些,一些资深测试岗位的薪资20K以上是常态,测试专家或技术比较好的测试开发,薪资40K以上的也不少。
但是,软件测试的基础人员,薪资不会太高,特别是对于新人来说,薪资收入没有你预期的那么高,以武汉为例,在初级测试人员中,普遍工资在4到6K,两到三年测试经验的中级测试人员,薪水一般在6到8K之间(此时对经验和技能就有一定的要求了)。
所以,并不是一入门,就有高薪等着你,想要高薪,得积累,包括测试经验和测试技能的积累。
二、软件测试对比IT其他岗位,年限较长
这个完全不是,咱们国家各行各业都在内卷,互联网行业内卷尤其严重,这个其实并不分是什么岗位的。软件测试如果想跳出内卷,除了向上走管理路线以外(其实我觉得管理路线也未必就跳出了内卷,如果跳槽找工作,到一定年龄后,管理岗也不是很好找了),更多的应该是提升自己的能力。无论是什么行业和岗位,你在团队里越重要,替代你的成本越高,那么你就越安全。
从软件测试来说,真正的成为行业专家/技术专家后,你才不用担心年限问题。诚然,有些朋友说他们周边就有四十多岁的开发人员、测试人员,即不是管理岗位,也不是专家。这个肯定有,但真的是凤毛麟角,我周围更多的要么自己去创业,要么开个小店过日子。
三、软件测试门槛较低
这个不能说不对吧,软件测试相对于软件开发来说,门槛确实不高,只需要对IT有一定的认识,具体基础的测试思维即可入门。但是,这个条件针对的是测试实习生,是有年龄限制的(即刚毕业的学生)。对于跨行转软件测试的朋友来说,如果你们跟刚毕业的学生是一个水平,那么你们的简历根本到不了业务部门,在人事那里就被筛选下来了。
那是不是说跨行转测试这条路走不通,或者说必须得学一些测试技术才能转呢?并不是,其他行业完全可以转软件测试,并且入职的岗位和薪资不会太低。
说到这里,就得分析一下软件测试的路线了,软件测试大体分为两个路线,业务路线和技术路线,这两个路线在初中级的时候很难划分清楚,但最终的走向是不同的,业务路线针对的是产品设计,技术路线针对的是功能本身。那么其他行业的朋友想转软件测试,最好的办法就是从业务路线为切入口。
这里我举个例子。几年前我负责一个视频联网报警系统的测试工作,这个产品跟南昌一个保安公司进行试点合作,我经常去南昌进行现场的调试和问题的收集。这个公司有一个设备调试人员,因为最年轻,所以被甲方派来配合我(这个同事姓吴,我一般叫他小吴)。
小吴高中学历,除了对报警设备的安装调试,基本啥都不会。但是,他对用户(小商铺)如何使用这套设备,然后对这个报警设备的期望和要求非常清楚,在我出差期间,他给我提出了很多要求和对当时系统的不便捷的地方。我根据这些要求和问题,整理汇报后,整个产品进行了重构,然后我跟我们公司的老总沟通,希望小吴能加入我们测试团队,并且给出了12K月薪的待遇。后来没挖过来,对方公司给小吴提升了待遇,并让他专门负责这个系统的验收工作。然后小吴在我们公司开始被称为吴哥,从配合我收集问题,到真正成为甲方的监理。
虽然小吴最后没转为软件测试,但是他确实有这个契机转岗。
这也是我为什么说其他行业完全可以转为软件测试的原因,目前所有行业都在进行互联网化,如果你有其他行业的经验,你完全可以找到针对这个行业产品的互联网公司,用你专业的优势来弥补测试技能的不足,从而完成这个踏板。
所以,是否要从其他行业转为软件测试,主要看你自己,软件测试这个行业并不是像很多培训学校描述的那么美好,但也绝对不是完全不可行的。
转为软件测试后,要怎么发展?
这里只针对跨行转软件测试的朋友,如果各位本身就是测试从业人员或者开发转测试的人员,可以看其他同仁编写的测试学习路线,走技术测试,学编程,转测开,出任CTO,迎娶白富美,走向人生巅峰。
一、提炼测试思维
测试人员最核心的能力,就是拥有测试思维,简单的来说,测试人员要站在使用者的立场上,对产品经理和开发人员灌输的信息(设计和功能)进行拆解,在拆解的过程中,提出质疑,通过质疑来推动整个产品的改进。
举例,产品出个需求设计,你对设计拆解,得到对应需求的目标(使用者),核心功能(用这玩意干啥),特色功能(跟其他相同产品有啥不一样的),附加功能(显得咱功能比较多,其实没啥用)。
这时候,你根据你在这个行业的经验,来提出质疑。
核心功能到底对不对,这个功能对于使用者来说,是不是真的有用,有必要。
特色功能有够特色吗,这个特色功能加上去是增加了使用者的困惑,还是真的有提高产品的可用性。
附加功能是否多余,附加的功能有没有压过了核心功能,导致核心功能不够突出。
是不是很简单?
那么,产品设计这块儿过去了,开发把功能做出来了,那你就需要对功能进行拆解。
首先验证这个功能是不是正确的。 (正常流程)
其次,要达到使用者的目的,操作繁琐不繁琐。 (体验 友好度)
然后,考虑到使用者是个生手,可能在各种情况下进行各种非规定的操作,这个功能会不会有问题。(异常流程)
最后,如果产品使用的时间够长,数据量不停增大的情况下,功能呈现会不会变慢 (大数据量、性能)
是不是也很简单?至于大数据量你还不会验证,没关系,你只要提出来需要测试这个点,可以让开发给你造测试数据。
二、提高沟通能力
对测试来说,沟通能力是非常重要的能力,而且,在互联网公司,你沟通能力强,往往意味着升职的机会多。
当然,在我们软件测试活动中,沟通能力并不是我们通常意义上所讲的交流,这里包含的更多成份是技术含量以及服务意识。这里的沟通不是耍嘴皮,与产品人员或者开发人员沟通,我们需要从专业知识角度考虑,比如当我们发现的缺陷开发人员不认可的时候,我们如何从理论、实际应用以及缺陷可能引发的后果等角度去阐述缺陷,使他们认同我们的观点。所做出的阐述要有理有据,而不是强词夺理,更不是争吵。
沟通这个确实很难具现化出来,唯一可以总结的就是,坚持原则,善于倾听,心平气和,互换立场。
网上一直有个笑话流传:
测试说:你的功能有BUG
开发说:怎么可能
开发想:这个傻逼是不是不会用啊
测试说:你这个和预期的有点不太一样,你看是不是我的操作方法有问题
开发说:我看一下
开发想:卧槽,是不是出BUG了
三、学习一点简单的脚本语言
即便你决定了走业务路线,也是需要学习一点技术的,这个对你后来的工作有非常大的帮助。当然,因为不走技术路线,所以学习内容跟测开是不同的。
你不需要(或者暂时不需要)去学习一门编程语言,入手一门简单的脚本语言即可,我个人建议首先学习SQL语言和SHELL语言。
学会了SQL语言,你就可以自己造数据了,不需要找开发了。而且,有很多功能需要对页面呈现的数据进行验证,那么会SQL语言的话,就可以从数据库中查出对应的数据来跟页面上的数据进行比对验证。
学会了shell语言,可以熟练的操作服务器,也可以独立完成一些小脚本,并根据脚本追踪一些问题,例如页面报错这种问题,可以先自己查一下日志,或者通过shell命令来追踪这个数据请求的链路,定位到是哪一层发生了问题。
这属于进阶的基础要求,都不难,其实更多的时候,在工作中碰到了问题,先通过网络寻求解决方案,把别人的方法记下来自己运用,多来几次你就熟练了。
以上三点,能够掌握的话,在一般性的互联网公司,工作不能说完全没问题,基本会顺风顺水的。工作中,根据自己的实际情况和发展方向,在进行学习和积累,成为大牛指日可待。
在这里,祝大家找到满意的工作,前程似锦。