浅谈测试发展的未来--全栈式测试工程师
一,首先来看一下这个软件测试行业的实情:
1.面试造火箭,入职拧螺丝。
企业在招聘的时候希望你什么都会,软件测试理论,语言,工具,数据库,网络知识,等等,无可厚非谁都想花一块顾能干十块钱的事,这种想法是没有问题的员工,但是往往进入企业之后却不尽如此,基本行测试可以用一个字来形容“点”,用多个字来形容;点,点,点。以至于到后来越做越没有信心,感觉前途一片黯淡,感觉自己的可替代性太强了。
2.整个测试行业用到的专业技术(自动化,性能等)与功能测试占比:
先从从功能测试与自动化以及其他测试分布占比:市面上理想的占比:自动化占比百分之30%
:现实有10%已经不错了。原因随后再说。
人员分布:95%左右的都是功能测试
人员素质:有一部分是校招被莫名其妙的招成测试,还有很大一部分是经过几个月的速成班,然后做成测试,我就是这一类人,掌握了一点测试理论,严格的来说我们现在的测试都没有经过长期专业的学习,计算机专业的可能没学习过测试框架的理论体系,速成培训的可能计算机,等一些专业知识比较差,总之无论是那种人,只要一直思考自己的不足,抓住测试的核心,并不断努力的学习,一定是可以进步有所成就的。
3.测试接触的面比较广但是浅:
从环境的部署-日常维护-执行数据库脚本-定位错误 等:所以就需要掌握一些环境部署的工具原理,语言知识,数据库知识,前端知识,http协议,web网络框架,操作系统以及命令,自动化,接口,还有一些开发用的工具,等等,我们在平时都是要有接触的,但也都是浅层的,所以我有一句话可以来形容:我貌似站在科技的前沿,但却被前沿啪啪打脸。
4.行业不良现象:测试本质的扭曲
为什么说人不会被机器完全替代:最本质的原因是人有思想,有感情,有对事物自己独特的感受,人对未知的解决能力比较强,如果在你身上找不到这几点特征,那么从客观上来说你不如机器。
测试核心:就是人模拟一些场景对软件进行操作,保证软件功能的实现,用户体验的提升,核心:功能实现,和用户体验,这两点也是软件存活的决定性因素。
测试思路:所以软件测试无论到什么时候软件测试思路依旧是核心,也就是人对这个软件的理解,以及使用方式是核心,在测试中具体体现就是:测试计划的安排,测试点的提取,测试用例的编写。
所需技术:我认为技术是为你思想服务的,比如:我有一个功能需要重复测试的,用的方法都是一样的,那我们来考虑用自动化来实现重复的测试,如:每次我们部署环境的时候嫌麻烦,那我们可以用一些比如,shell,或者Python脚本来实现自动部署,比如,我们想看一下接口怎样传值的,那我们可以用一些接口测试工具jmeter,我在我整个测试中想做什么,我觉的需要一些什么手段提高测试效率,那我们就可以用些工具或者方法来解决他。
不良现象:现在慢慢的重技术,轻测试思想测试理论,这点我特别的强调下,因为现在整个行业都在追求技术。我们在很多网站可以看到这里很牛的hook技术,那边有很牛的遍历技术等等。但行业却慢慢的弱化了测试原本需要有的技术能力。比如测试策略的制定,比如测试的方式,测试用例设计的方式等等。我很担心再过10年,测试行业都是一群技术很牛却不懂测试的人。就好像我已经听到很多测试同学和我说,很多公司的测试总监不知道ab test 和灰度发布有什么区别,竟然认为两个是一个东西。让我也是很担心测试行业的发展。
那接下来我们就谈一下前景把----全栈测试工程师是前景?
未来测试的前景:是以产品质量和工作效率来决定的,主要还是以功能测试为主测试点覆盖全面保证产品质量,以各种自动化,持续集成来减少成本提高效率。
我们从以下几个角度来思考:
什么是全栈测试工程师:
我理解的全栈:在未来全栈测试工程师,就是集各种自动化测试方法,以及使用测试工具于一身,会多,一专的一个状态,实现测试思想自由,代码自由,方法自由,可以做好整个团队的测试补位,有整个测试环节都能参与进去的能力。
为什么需要全栈测试工程:
所谓的全栈指的是一种能力,一种以测试思想为核心,以专业的计算机知识为武器,更加高效的,更加优质的进行测试工作,可以做好整个团队的测试补位,能有整个测试环节都能参与进去的能力,为什么需要懂得全栈核心其实也就是:提高工作效率,保证产品质量。
怎样成为一个全栈测试工程师:
核心:快速学习的能力和驱动持续学习的兴趣。
学习技能:面需要广,但是在学习中也需要分清主次。
我目前的一个计划:
1.不断的完善自己的测试理论框架体系。
2.掌握一种语言如Python,和shell
3.掌握深层次的自动化,以及接口测试(http,以及更深层次的网络知识)
4.学习渗透测试的理论以及实战应用
暂时就这些以后再进行扩充。