继续介绍大数据系列岗位的要求,今天是“最冷门”的岗位数据测试,如果大数据要发挥真正的价值,前提条件是非常多的,比如数据量要大、要有相应的人才等,这其中还包括数据质量,数据质量给很多人带来的痛,要远比表达出来的少的多的多。还是先从几个大厂的岗位要求说起。
个推
1、本科及以上,计算机等相关专业,有一定的算法基础优先;
2、熟悉数据仓库系统架构,熟练测试理论及方法,能够针对不同场景完成不同测试方案的设计、实施;
3、较强的学习能力、分析能力和解决问题的能力,能主动进行技术钻研;
4、熟悉Hadoop生态圈技术,了解生态圈相关组件,主要包括Common、MapReduce、HDFS、Zookeeper、HBase、Hive等组件者优先;
5、掌握Java、HIVE、SQL语言,熟悉至少一种脚本语言(Python/Shell等),具备自动化测试经验者优先;
6、有针对用户画像测试的经验者优先
浙江执御
1、对软件测试有兴趣,有大数据平台测试经验;
2、熟悉linux操作系统,熟悉一款主流数据库的基本操作和原理,熟悉SQL语言;
3、熟悉java、Scala等至少一种编程语言,有Shell或Python/PHP/Ruby等使用经验者优先;
4、2年以上软件开发/测试工作经验;
5、熟悉分布式软件系统的测试方法,有BI、大数据平台和Hadoop相关组件的测试经验者优先;
华为
1、熟练掌握测试需求分析和设计方法、黑盒和白盒测试方法、自动化测试等;
2、精通软件开发和测试流程,有很强的测试技术规划和测试架构设计能力;
3、熟悉常见编程语言或者脚本语言,如C++/Java/golang/Shell/Python/Ruby/Perl的一种或多种。
4、有大数据产品解决方案测试、POC测试、开源组件集成验证经验者优先;
5、对大数据产品技术架构原理有深入了解者优先。
蚂蚁金服
1、计算机相关专业,本科以上学历; 3年以上开发/测试经验(语言不限,但要有专精)
2、熟悉Linux操作系统,熟练使用脚本语言编程(语言不限,但要熟练)
3、具有搜索引擎、算法优化及大数据等项目的测试经验者优先。
4、(可选)熟悉Hadoop、Hive、HBase等分布式开源项目及工作原理,有丰富的集群部署、开发和维护管理经验
5、(可选)熟悉数据仓库的设计和开发以及建模、数据质量监控,有实施过程中解决问题经验;
6、(可选)熟悉web前端架构并有实际工程构建的经验
7、(可选)有大数据/算法开发相关工作经验
曹操专车
1、计算机相关专业本科及以上学历;
2、两年以上大中型互联网测试开发工作经验,有小团队测试管理经验者优先;
3、有很强的分析能力和定位问题的能力,快速学习能力强;具有良好的沟通能力、细心负责、有团队精神;
4、熟悉Linux操作系统,了解基本的Shell命令,能够部署和维护测试环境;
5、熟悉MySQL、PostgreSQL、Redis等常用数据库及缓存者优先;
6、熟悉Python,java,Scala等至少一种编程语言者优先;
7、熟悉Hadoop、Spark、HBase、kafka等分布式开源项目及工作原理者优先;
8、熟悉分布式软件系统的测试方法,有电商平台数据功能、BI、大数据平台和Hadoop相关组件的测试经验者优先。
能力三核模型分析
综合结果如下
知识
1、本科及以上(3)
2、计算机等相关专业(3)
3、熟悉linux操作系统(3)
4、熟悉hadoop生态圈技术(3)
5、熟悉数据仓库系统架构(1)
硬技能
1、2年及以上测试经验(3)
2、熟悉测试理论和设计方法(3)
3、掌握java、sql、python等至少一种编程语言(4)
4、熟练掌握自动化测试(2)
5、熟悉数据仓库开发及建模(1)
6、熟悉Mysql PostgreSql、Redis等常用数据库及缓存
才干or软技能
1、较强的学习能力(2)
2、分析问题及解决问题能力(2)
3、良好的沟通能力(1)
4、有团队精神(1)
分析
通过上面能力三核要求来看,如果满足了这三方面的要求,表面上看上去并不能保证数据的质量问题。既然这样的话,还是先看一下上面几家公司jd上的工作职责,他们到底希望数据测试解决什么问题?
岗位职责(整理后)
1、负责大数据平台测试规划及架构(5)
2、负责大数据平台自动化测试工具(3)
3、负责大数据平台性能测试(4)
4、分析、定位问题并推动解决(3)
5、负责数仓计算逻辑正确性测试(1)
通过上述列表基本明白了,大家希望的数据测试并不是关于保证数据正确性的(只有一家公司有这方面的诉求),而是更多的希望保证数据平台功能性方面的稳定性和可用性。这样就跟上面的能力三核的要求对应上了。
个人经验
文章开头所说的“最冷门”岗位,经过上述的分析总结其实并不夸张,大家更多的是集中在数据平台功能性方面的测试(也许他们在这方面已经做的足够好了,不需要测试),这和非数据测试人员的要求并无本质区别。而我所理解的数据测试更多的是保证数据准确性方面。
不管是数据仓库开发还是数据分析师,他们的产出也都是正常人的产出,既然是正常人的产出,就有可能犯错,既然有可能犯错就需要有人测试来保证准确性,尤其是对外的数据应用。
目前业内最常见的做法是数据开发的同学AB角来保证数据的准确性,即2个数据开发的同学,一个负责开发,一个负责测试或者review代码,其实B角的同学在某个项目中已经是测试角色,只是这个测试角色周期比较短而已,他的主要职责还是开发。这样的做法在一定程度上是可以保证数据质量的,但是弊端也很明显,测试经验无法有效沉淀,同时也不会考虑更深的自动化测试。
按照我个人的经验来看,如果要高效的保证数据质量,专门的数据测试同学是必须的,这里的数据测试同学除了有上述能力三核中关于功能测试的要求之外,还要数据开发方面的经验与理念,简单总结如下几点:
1、熟悉测试理论和设计方法
2、掌握java、sql、python等至少一种编程语言
3、熟练掌握自动化测试
4、熟悉数据仓库开发及建模
上面所说的都是关于在数据开发或者数据加工阶段的准确性保证。但是请记住大数据同学是不产生数据的,他们只是数据的“搬运工”,如果数据的源头出现了问题,大数据的同学就必须要费九牛二虎之力才有可能保证数据的准确性,甚至根本无法保证数据的准确性。在这里抛出另外一个问题:如何保证数据源头的准确性,也是大数据的同学必须要关注的,这个将在另外一篇文章中单独介绍。
系列文章
大数据岗位要求之大数据开发工程师
大数据岗位要求之数据挖掘
大数据岗位要求之数据仓库
大数据岗位要求之数据产品经理
大数据岗位要求之数据分析师
大数据岗位介绍-引子(能力三核模型)