测试进阶方向
说到功能测试进阶方向,这是每个测试从业者都会经历的一个阶段。
个人把测试进阶分为两大类:业务测试 和 技术测试
业务测试:
顾名思义就是对当前从事的业务知识非常熟习,了解产品的显示、隐示需求,测试过程中能够结合产品的知识覆盖更多的测试场景,想到别人想不到的逻辑,后期能够进阶为产品测试方向。
技术测试:
耳熟能详的性能测试、自动化测试、接口测试、数据库测试、安全渗透测试、白盒测试、灰盒测试等等,任何一个都可以成为一个大的分支。
说说我自己,在做了两年多的功能测试后,现今非常迫切的想提升下自己的硬件能力——学习代码,进阶自动化。
在有这个想法之前,也是非常懵的,该先学什么呢?感觉哪样都需要,哪样都想学,心里想着不能一口气吃成大胖子,但实际做的就是想一口气成大胖子,哈哈哈,这个想法就导致我一时兴起买了很多书,然后放那里吃灰了。
听着身边的人讨论技术的时候,感觉自己是真的菜,什么都不懂,什么都不知道,有点技术的问题就插不上话?
越想越懵的我,浪费了一大段的时光。
今年开始重新思考,强制给自己定个目标:往技术发展,做一个懂技术的测试工程师。
总结:
1、确定自己喜欢的是什么,钻研业务?钻研技术?
2、业务测试具有一定的局限性,以后的工作可能基本限制在你说接触的业务知识里,跳槽什么的也类似这一个道理。其他不同的业务又需要重新去学习。但行行出状元,做好了就是某个业务的业务测试专家。
3、是否喜欢研究技术,是否对代码敏感,学技术是个痛苦漫长的过程,需要坚持,更加需要承受打击。技术性的测试不受业务的影响,只看单位需要什么能力,而自己是否已经掌握、熟能生巧。用所学的技术发现问题,解决问题。提高产品质量、提高工作效率。
4、任何一种测试,都是合理的,没有对错与好坏,都只是为了达到目的的不同手段。
沉下心来思考
如何选择测试进阶的方向,很明显我是选择了往技术方向发展。
往往学习的时候,遇到的第一个难题:如何下手?
要学的那么多,要会的也要求那么多,我该如何下手,我该先学什么再学什么呢?
这是一个千古难题,现在就需要沉下心来,结合实际来思考。
为什么说要结合实际?
1、因为学习,往往伴随着实践。学来的东西,如果没有地方去实践,要不了多久,就会遗忘掉,忘掉的东西一般不会再去拾起。
2、自己想学什么,先把目标定小一点,别一口气想成胖子。找一个能够有地方实践的,并且当前想学的技术下手。
(以下观点纯属个人,仅供参考)
个人认为学习任何一门测试进阶技术,所有技术的基础:编程语言。
不管你是做一般的技术测试,或者高大上的技术测试,通通离不开编码。哪怕你现在会用了一些工具,你也会发现,再往深层次学,还是需要编码。编码是基础,编码是基础,编码是基础。
不要一来就搞工具,工具只是工具,帮助你完成快速完成工作罢了,工具总有一天你可以熟能生巧。
但,代码需要基础能力扎实,不断的学习巩固,后期看到各种单元测试框架,才能更好的理解。
编程语言的选择
测试如何沉下心来,选一个学习的入口。假如你的学习入口是编程语言,那么恭喜你,你至少对了一半。
现在会遇到第二个老生常谈的问题:选择哪一门编程语言。
首先说说:测试能用到的编程语言,大致两种:python,java,还有比较少的C语言等其他语言。
那么如何选择呢?
1、看公司实际情况,有些可能会要求测试学某种语言,才能和开发更好的对应。
2、没有第1种情况的话,就看自己的喜好来选择。
3、python语言上手相对简单,往深了学就要懂数学,懂算法等了,但用于测试的,相对java来说,会友好一些。
4、java语言相对上手难一些,对于有代码基础的来说,上手会好点,纯新手会感到比较难。
5、喜欢哪一样,喜欢哪个学哪个,毕竟兴趣是最好的老师。
编程语言的学习思路
终于写到我原本想写的内容了。这里是我个人的学习思路,不一定适合所有人,参考吧。
以我学的python为例:
1、我是在官网学习的python,了解到测试能用到的,需要学到面向对象。
2、学习过程当中,去理解每一章内容的概念,每一个例题。达到能够理解到概念看懂例题的状态。
3、跟着敲代码,你可以多敲,你可以少敲,清楚自己的目的,理解概念和例题。当时我是一个例题都想不出来。
4、要想在基础学习过程中领悟到什么技巧,是比较难的,基础学习过程中,一般就是学习语法、表达式、概念。
5、学到面向对象花了个月的时间吧,很慢,因为还要工作,也做了不少笔记。
6、这时候就需要找一个东西练手了,什么合适,就需要结合公司情况了。
7、我选择了以selenium+python为基础来学习,一方面学习selenium的基础用法,另一方面巩固python的基础知识。
8、大概了解了selenium后,发现对学python基础的帮助不是那么大,或者说好多地方还不能明白,方法的调用、参数的传入返回等基础。
9、正好公司系统需要导入大量的excel表格数据,以这个为目标,开始下手。
10、自己编写随机生成各种所需要的字段数据,下载表格、创建数据、写入数据,不同的excel分不同的模块。
11、写完一套脚本后,只能代表你完成了50%,还有一半是需要不断的优化自己的代码。
12、自己写的代码,一定不要写完就不去管它,一定要想办法去优化它,优化过程中,可能比你设计的过程中,学到更多的基础,这就是巩固。
13、优化函数之间的调用关系、优化参数的传入、表达式的简洁写法、类方法的调用、模块的调用、库的学习和用法等等,细节的地方都在优化的过程中能够体会到。
14、注释!注释!注释!很重要,别忘记它。别让某个时候回顾自己的代码时:这写的什么?
总结
初步学习理解概念,实践的时候巩固概念。
以python(或其他)编程语言为学习中心目标,工具(selenium、unittest等)为踏板。
你的学习不可能止于某个工具,但是一种编程语言可以贯穿各个工具。编程语言是所有测试技术进阶的基础。
当大家的测试技术进阶后,自然可以通过申请、跳槽等方式加薪了。