# 从高级测试到测试开发



最近加入了新的团队，角色发生较大的转变，在这里分享一下自己的感受。


### 测试的划分

如果我们把产品的生产看成一个流水线的话，那么测试就是流水线上的一个重要岗位，把控着产品的质量。

当然，产品类型的不同，测试人员的能力不同，可做的事情也会有很大不同，比如是Web产品，那么我们会去做性能测试和Web UI自动化测试；比如是App产品，那么我们会去做专项测试和APP UI自动化测试，再比如是后端接口平台，那么我们会去做接口自动化测试。再比如游戏产品，测试方法和手段又不一样了。

在此过程中，如果你是一名新手，只能测试UI功能，那么定位为测试工程师；如果你可负责一些复杂业务的测试，并且可以做一些自动化工作，那么定位为中级测试工程师；如果你有丰富的测试经验，综合的测试技术，以及深入到产品内部去做类白盒的测试能力，那么定位为高级测试工程师。（注：这里只是一般的划分，不代表任何公司）



### 高级测试

接下来聊一聊我做高级测试时的工作。

![](http://img.testclass.net/tc_level_test.png)

以我负责的接口平台为例，当开发完成接口开发后，我通过阅读接口代码逻辑的方式进行接口自动化用例的编写，过程中发的代码问题，反馈由开发修改；当我的用例编写完成，那么接口测试也基本搞定。当有新的接口更新时，我就可以重跑接口自动化用例来确保接口的质量，每次只需要对更新的接口编写测试用例。

由于接口先测试，当产品提供可测界面时，问题就少很多了，只是界面样式和兼容性问题。整体上会在缩短整个测试时间。

当然，产品测试过程中还会有一些零散的测试需求，可以快速的选取测试工具或编写测试脚本的方式来完成工作。

这是一般高级测试工程师应该具备的能力。


### 测试开发

接下来谈一谈测试开发，以及它在项目中的定位。

![](http://img.testclass.net/tc_test_dev.png)

以我目前所属的团队为例，初创阶段可能是没有测试人员的，随着产品的发展，为了提升产品的质量，另一方面也为了节约人力成本，所以会招一些功能测试人员承担产品的测试工作。开发人员完成功能开发后，由测试人员进行测试。

当公司进一步发展之后，为了优化团队，提升效率，单纯的功能测试人员就会成为短板，但为了保持团队的运行，不可能把功能测试人员全部替换为高级测试。另一方面功能测试也需要伴随公司成长。另一种办法就是引入测试开发团队。__当然，大公司的测试开发与高级测试是并存的，测试开发只负责工具与平台的开发。__

（__注：__ 这里不讨论个体的情况，比如有一位能力很强的测试/Leader推动测试团队转型）

测试开发不直接参于产品的测试工作。这其实也是与高级测试最大的不同之处。简单将测试开发工作总结为以下几个方面。

* 协助开发编写单元测试（并不是所有开发都一定会写单元测试），规范开发输出（比如输出一定标准接口文档）。

* 帮助功能测试人员提升技术能力，能够独立完成自动化测试工作。

* 开发测试平台：比如，性能测试平台，帮助开发测试进行性能测试。开发接口测试平台，管理与维护接口平台，开发自动化测试平台，方便管理与维护自动化测试。

* 挖掘测试需求，通过技术手段帮助测试团队提升测试效率。

总结下来，就是测试的经验，开发的能力，干着服务于开发与测试的工作。

最后，测试开发并不是高级测试的下一阶段，只职责不同而已。以上仅个人看法！

<br>
欢迎关注：__测试圈TC__ 公众号




![课程图片](https://images.unsplash.com/34/BA1yLjNnQCI1yisIZGEi_2013-07-16_1922_IMG_9873.jpg?w=300)


