“测试开发”我们应该会些什么

先说测试开发这个职位,其实有很多定义:测试会代码、专门开发工具或者测试平台的测试、什么都会的测试等等

其实,我要说的是,叫什么或者怎么定义不重要,重要的是,在当下做测试你要让自己朝着与开发比肩甚至超越开发技术能力去发展。

互联网行业中测试开发应该具备哪些能力,我认为我们应该掌握的能力有两个大方面:工作硬实力 + 工作之外的探索学习能力

工作硬实力

这方面是我们应该培养的基本能力,就测试开发来说,针对互联网行业,我们应该从以下几点去学习:

  • 计算机基础
  • 软件测试理论
  • 操作系统
  • 计算机网络
  • 数据库
  • 数据结构与算法
  • 编程语言
  • 工具及框架
  • 项目经验

一、计算机基础

这部分找些大学课程书籍或者百度一些论坛博客就可以有个大致的了解

二、软件测试理论

不管是测试开发还是纯功能测试,又或者是性能测试、嵌入式测试、AI测试......都需要有软件测试理论作为工作支撑,这部分的知识是帮助我们理解测试、编写测试用例的关键,让你写出的测试用例有理有据而不是天马行空

下面有一些资料,可以自行下载学习,当然网上有很多测试理论的教程,可以选择适合自己的

2、等价类划分法.pdf

3、边界值分析法.pdf

4、决策表法.pdf

5、因果图法.pdf

6、场景法.pdf

7、正交试验法.pdf

三、操作系统

操作系统有很多,百度一下可以扫盲,但是我们工作中最常用的也就两种:windows和linux,这里推荐大家好好学一下linux

比较经典的linux书籍还是《鸟哥的私房菜》(大家应该都听过),关于linux的教程B站也有很多免费优秀的教学视频

操作系统学习到什么程度呢?我认为开始学习的时候能够满足你工作中的需要就可以,比如:

  • 常用的linux命令
  • 了解进程、线程、管道等等一系列的概念
  • 环境的搭建
  • 网络相关的一些知识

但是想想“测试开发”这个名词,上面这些远远不够,你要继续学习,可以第二遍看书,也可以到论坛或者博客找一些牛人写的文章学习,有条件的甚至可以自己搞一个云服务器亲自搭建一下

操作系统再下一个阶段呢,你要熟练的掌握一些细节,到什么程度呢,操作linux可以像windows一样熟练,在系统上搭建工具、环境都很熟练,还能够结合编程语言进行开发,总之一直深入下去就可以了

四、计算机网络

《tcp/ip》卷1-3

《网络是怎样连接的》

《图解tcp/ip》

《图解http》

《鸟哥私房菜》网络部分

这些都看完,然后接下来你就知道怎么办了

五、数据库

关系型、非关系型找本书啃就可以了

边学边敲,在学习完操作系统的基础上自己搭建并维护一个数据库,学习这些东西最好都要自己动手搭建一遍

六、数据结构与算法

这部分好像是现在互联网行业面试比较爱考的一块,我不是计算机专业出身,对这部分也只是懂个皮毛,不做推荐了

也不能够说我们测试谁用的上算法呢,那说明我们的层次真的是不到位的,大数据、人工智能测试都会用到,什么时候你用到了,那么你的层次一定到达了一定的高度

七、编程语言

C、C++、Java、Python、Shell、Go、Js、Php......

数量你不用担心,只有你学不完的,没有数量不够多的编程语言。

学什么编程语言无所谓,但是学习需要遵守一个原则,就是:一个主流高级语言+主流脚本语言+快速学习一个新语言的能力

边学边练,多动手,书本与视频结合着学

八、工具与框架

测试工具有很多,这里不赘述,我要说的是,不需要贪多,能给你解决问题,提高效率就行,用工具不要只用皮毛,学一个东西就要把这个东西作为你的技能之一,搞透它,最好能写出文档与人分享的那种

框架:开发框架、测试框架你都要会,测试框架是我们做自动化测试的核心,这块的学习还是秉承的不要贪多,学就学精的原则去学习

开发框架这里指的是你学的编程语言中所用的框架,比如python做web开发就需要学习Django、Flask等框架,学习这些框架一方面是你可以写出更高级自动化测试工具,另一方面就是更贴近开发所使用的技术,也是更好的服务于测试

九、项目经验

项目经验学习的最好办法肯定是从工作中找寻,尽可能的熟悉你所负责的业务工作,将所有的文档、开发代码都详尽的吸收,将上面一~八的基础能力和项目工作相结合,才是最佳搭配

这里说一个学习编程、工具、项目经验的小技巧。

举个例子,我们工作中会遇到zookeeper这个组件,在你对它什么都不了解的时候,肯定是百度找相关的教程,看完这些教程之后呢,我相信你肯定还是不怎么理解,开发代码里面的使用你又看不到(除非你能看到开发代码),这时候怎么办呢??

前面你已经学习了编程语言,拿python来说,python就可以帮你很好的进一步理解zookeeper的原理和使用方法,首先python的第三方库有很多,再者就是不止我们测试在用python,很多人也在用python做开发,所以你要做的就是,把自己当做开发,

准备用python+zookeeper大干一场吧,百度搜索:python如何操作zookeeper,我相信看到搜索出来的内容你就知道接下来怎么应用了

通过这种方式,你既能加深对编程语言的使用,又能对工作中开发使用的技术进行一个深入的理解,后面再遇到相关模块的测试,我相信你一定能回想起来你用python自己也实现过一遍,测试用例写起来更加得心应手。

工作之外的探索学习能力

如果把工作中接触到的东西就视为所有,那么我们就会和测试开发或者优秀的测试这个角色离得很远,个人建议我们在工作之外一定要掌握一些其他的“技能”,这里的技能不是做微商、跑滴滴、投资理财......,这里的技能是基于你的主业工作做的

横向或者纵向的技能拓展,举个例子,你工作中用到了python,可能只用到了简单的一些字符串操作、request库等等,那么工作之外你要看一些框架的使用,看一些同行优秀博主在测试中的探索,比如我们自动化测试用到了最基本的断言,那么你就要在

工作之余考虑有没有其他的断言方式,这种就是纵向深入的技能拓展;

在说横向拓展,横向拓展是技术深度之外的广度提升,需要你跳出当前的一个舒适圈,站在刚上一层去学习技术,这里就不局限于具体的测试、开发、或者工具之类的概念,但是要秉承一个原则,那就是边学边思考,什么时候你学到的技术能够在工作中或者

实际场景中有所应用,又或是说新技术能够给你的工作带来怎样的效率。

熟练掌握工作中的内容,再有前瞻性的探索一些工作之外的技术,学成后反哺工作上棘手的事,形成一个良性的闭环,久而久之能够培养一种超前看问题的能力

说了这么多,总结一下我个人的想法,那就是无论你是功能测试、测试开发、还是纯开发,不要局限自己的职位名称,也不要仅仅局限于title给你定义的那些事,让自己不断学习、提升超越职位名称的限制。

如果文章对你有帮助,可以私信进一步交流

你可能感兴趣的:(职场感悟,软件测试,测试工程师)