我理解着:测试开发人员,也是我们常说的测试人员。(理解不到位,见谅)那既然是测试,为什么又称之为测试开发工程师呢?主要原因是对于现在的测试人员而言,不再是依靠单纯的手工测试来发现和定位Bug,而更多的是通过编写脚本/项目/平台来自动化测试、回归测试、性能测试等。因此,对于测试人员来说,其主要的精力和时间也在脚本和工具开发中,因此通常称之为测试开发工程师。
1、基础
首先,基本的测试理论一定是需要了解的,包括黑盒测试、白盒测试以及通过等价类、边界值等设计测试用例等。
其次,需要通过编写代码来进行测试,那么一定需要熟练掌握一门编程语言,例如Python,Java或者Go语言等。
性能测试【1】是每个项目中必不可少的一部分,因此需要理解性能测试的基本原理、理解性能测试的目的并能够独立分析性能测试的指标。同时,还需要掌握某个性能测试的工具,例如Jmeter,Loadrunner等等。
在自动化测试中,通常接口测试是最常用的并且有效的。所以熟练精通接口测试及其HTTP相关原理和使用,可以使用某种编程语言或Jmeter等工具进行接口测试【2】也是必备的技能之一。
此外,UI自动化测试是更多同学对自动化测试的理解。虽然在实际应用过程中,UI自动化测试受到各种局限,但是作为最终UI级别的自动化测试对于一些核心功能页面而言,也是不可或缺的。目前比较常用的UI自动化测试工具【3】有:Selenium。
当我们准备好了各种自动化测试脚本之后,我们测试人员需要再掌握持续集成的概念和理论,并熟悉使用某个持续集成工具,例如Jenkins。
同时,由于基本所有的服务都会部署在Linux机器上进行测试,因此,我们需要掌握Linux系统的基本使用和相关操作。
2、从0开始的测试开发工程师
Step1:首先需要掌握一门编程语言和某种数据库。推荐:Python,Go,NodeJS。数据库可以从MySQL入手,后续可以学习一下MongoDB以及Redis。
在学习语言开发项目的过程中,推荐使用TDD(测试驱动开发)的方式进行开发,一方面可以学习如何有针对性的设计测试用例,另一方面可以学习单测的基本知识(Ps:在大部分公式中,单测是由开发人员编写,但是掌握如何编写单测后有助于更好的推进开发人员完成单测)
Step2:学习测试相关的基本原理,比如软件测试一书。
Step3:利用测试理论对我们自己开发的小型Web项目进行测试,找出其中存在哪些问题并修复。
Step4:学习接口测试理论,利用我们掌握的编程语言对开发的小型Web项目进行接口测试
Step5:学习Jmeter或者Loadrunner的使用,来对我们的Web项目进行简单的压测,并找到我们项目能达到的最大并发数等信息,90%响应时间等。
Step6:学习Selenium并针对我们的Web项目编写UI自动化测试。
Step7:学习Linux系统的基本操作,将我们编写好的项目部署在Linux机器上。
Step8:学习Jenkins的基本使用,在Linux机器上安装Jenkins并配置Jenkins Job,使得其可以完成代码提交后自动部署并进行单元测试、接口测试、UI测试、性能测试