# 测试圈TC：“测试开发”需要哪些技能？用数据说话！




有同学经常留言求指点，或者技术工具和技术太多，不知道学什么！那么我们用数据说话，看看招聘网站上对“测试开发”岗位都有哪些要求。

周末的时候我写了个简单的爬虫，登录某互联网招聘网站，搜索“测试开发”关键字，然后，把每一条招聘信息上的内容爬取下来，做简单关键字的频率分析。

__注：__ 每页显示15条招聘，共26页，大概390条招聘信息。


#### 编程语言
---
![](http://img.testclass.net/tc_programming_01.jpg)
![](http://img.testclass.net/tc_programming_02.jpg)
Java 排名第一，占绝对优势，因为有大量的项目基于Java开发，在这样的团队中，当然也要求测试开发能懂得Java语言了。Python出现的频率也很高，主要是它简单易学，有着非常丰富的测试库，符合测试人员的属性；我的建议是两个语言都要学，如果你编程能力比较弱的话可以从Python入门，如果你的项目以Java开发为主，建议从Java入手。

注明：这里统计的“C语言”实际为“C/C++”这个关键词，因为云图生成不了这个关键词，所以改为“C语言”。

Android和iOS两大平台不属于编程语言，我这里也归到了编程语言列表。出现的频率也很高，所以，测试开发也必须懂得移动平的测试技术（单元测试，接口/UI自动化等）。

#### 测试工具
---
![](http://img.testclass.net/tc_test_tools_01.jpg)
![](http://img.testclass.net/tc_test_tools_02.jpg)
JMeter 出现这么高的频率略为意外，仔细一起也正确，不管是性能还是自动化，开源工具的出现频率都占有绝对的优势。JMeter在性能测试和接口测试方面都非常优秀。

Selenium和appium 是一定要学的两个自动化工具，前者针对Web UI ，后者针对 app UI。

持续集成已经成为现在项目团队的标配了，所以一定要懂。

单元测试框架Junit/TestNG/unittest也一定要会用，它是做自动化测试的基础。

另外，Docker 技术也可以关注一下！


#### 测试类型
---
![](http://img.testclass.net/tc_test_type_01.jpg)
![](http://img.testclass.net/tc_test_type_02.jpg)
从测试类型可以看出，测试开发要求最多的，或者做得最多的还是“自动化测试”。“软件开发”和“开发经验”出现频率也很高，说明测试开发对“开发”能力要求接近开发人员水平。

“性能测试”、“接口测试”和“白盒测试/单元测试”也是测试开发应该具备的技能。

<br>
__备注：__ 
关于这些数据搜集和整理过程全部由Python下面的一些库实现，实现代码我还没时间去梳理。有时间另做一篇分享。




原始封面

![课程图片](https://images.unsplash.com/photo-1451337516015-6b6e9a44a8a3?w=300)


