正文

返回 导航

我的软件测试进阶路径

发布日期:2019-10-09 10:00:01

点击上方蓝色字体,关注我们

一、测试进阶方向

  说到功能测试进阶方向,这是每个测试从业者都会经历的一个阶段。

  个人把测试进阶分为两大类:业务测试和技术测试。

  业务测试:

  顾名思义就是对当前从事的业务知识非常熟习,了解产品的显示、隐示需求,测试过程中能够结合产品的知识覆盖更多的测试场景,想到别人想不到的逻辑,后期能够进阶为产品测试方向。

  技术测试:

  耳熟能详的性能测试、自动化测试、接口测试、数据库测试、安全渗透测试、白盒测试、灰盒测试等等,任何一个都可以成为一个大的分支。

  说说我自己,在做了两年多的功能测试后,在今年非常迫切的想提升下自己的硬件能力——学习代码,进阶自动化。

  在有这个想法之前,也是非常懵的,该先学什么呢?感觉哪样都需要,哪样都想学,心里想着不能一口气吃成大胖子,但实际做的就是想一口气成大胖子,哈哈哈,这个想法就导致我一时兴起买了很多书,然后放那里吃灰了。

  听着身边的人讨论技术的时候,感觉自己是真的菜,什么都不懂,什么都不知道,有点技术的问题就插不上话?

  越想越懵的我,浪费了一大段的时光。

  今年开始重新思考,强制给自己定个目标:往技术发展,做一个懂技术的测试工程师。

  总结:

  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等)为踏板。

  你的学习不可能止于某个工具。

  但是一种编程语言可以贯穿各个工具。

  编程语言是所有测试技术进阶的基础。

结束。

阅读原文,查看更多行业信息

点击阅读全文

猜你喜欢