大数据的测试工做:html
一、模块的单独测试前端
二、模块间的联调测试web
三、系统的性能测试:内存泄露、磁盘占用、计算效率sql
四、数据验证(核心)数据库
下面对各个模块的测试工做进行单独讲解。后端
0. 功能测试缓存
1. 性能测试安全
2. 自动化测试服务器
3. 文档评审oracle
4. 脚本开发
后端的测试重点,主要集中在数据的采集处理、标签计算效率、异常数据排查(功能),测试脚本编写(HiveQL)、自动化脚本编写(造数据、数据字段检查等)
1.数据的采集处理(Extract-Transform-Load)
ETL:即将数据从源系统加载到数据仓库的过程。源系统包括:数据文件(excel、log等)、RDD数据库、非RDD数据库等;
extract:从源系统提取需求数据。
transform:清洗数据(数据格式转化、异常数据处理等)。
Load:将清洗的数据加载至数据仓库。
ETL测试:即确保根据需求将源系统的数据通过处理后加载到目标的数据是准确的。即源和目的数据之间转化过程当中的数据验证。
测试类型
测试场景
券商等金融机构,其用户天天都会产生大量的交易数据,这部分数据最初都会存储在客户的关系型数据库中(oracle),所以后台天天须要先进行数据采集,将数据采集至Hadoop的hdfs系统;数据采集事后,须要对源数据进行一次数据清洗工做:过滤异常数据(NULL)、筛掉关联性较高的数据。
2.标签计算效率
根据标签文档编写hiveSQL、MR等标签计算代码,针对hiveSQL,不一样的开发人员编写的sql质量不一样,执行的效率也不相同;此部分不只须要开发人员具有基本的复杂sql编写功底,也须要开发人员掌握必定的sql性能调优能力;在数据,服务器配置必定的状况下,效率的提高来源于对sql的优化;
因为hivesql的计算(都会转化成一个MR),须要大量的读写数据到磁盘的操做,所以计算效率较低;
impala则是将数据push到内存中,而后从内存中读取数据,效率有大幅提高,可是耗费了较高的服务器内存,成本较高;
Spark :内存计算引擎,提供Cache机制来支持须要反复迭代计算或者屡次数据共享,减小数据读取的IO开销;
3.异常数据排查
异常值:分为两类:null,计算错误的值。 (1)Null值(标签下的数据均为NULL),首先 需求排查是不是数据的影响(例如 依赖数据缺失)。其次排查依赖数据的因素后,就须要排查是不是hiveSQL编写的问题和MR代码问题。(2)标签计算错误: 经过手工根据标签公式计算标签的值和经过hive计算得出的值进行对比,若是不一致,则须要排查是不是hivesql没有对标签公式进行精确实现。计算错误的值能够分为两类:1.明显错误(能够经过sql筛选出来的异常值,针对存在阈值的标签,好比股票仓位:仓位不得>1,若是出现>1的数据,则能够判定此标签计算有问题);2.非明显错误(此部分没法筛选出来,必须经过计算才能验证)
因为此部分计算好的数据须要导入到中台进行进一步运用,因此此部分的数据准确性有相当重要的做用。(测试人员须要对业务十分了解)
中台产品通常以web服务呈现。测试内容除了与普通的Java web项目相同,还要测试后台数据Export中台的过程当中,数据类型、准确性、完整性、性能进行测试。
就目前的项目而言:测试计划的内容包括:需求文档测试、后台导出表的测试(表字段类型、数据完整性、浮点型数据精度、导出性能等)、中台接口测试(自动化)、前端UI页面测试、性能测试、安全测试、兼容性测试。
需求文档:需求点梳理、整理测试点、编写测试用例
数据连表导出:后台数据和中台数据的类型、精度要保持一致(中台数据库为MySQL,数据类型可能和后台的数据类型定义不一致,要确保数据类型转化的正确性);
中台接口测试:此部分能够进行接口自动化测试。
UI页面测试:根据需求文档、UI设计图编写测试用例
性能测试:中台接口的压测、中台服务缓存数据占服务器的内存空间测试
安全测试:根据公司安全测试手册进行测试(安全漏洞扫描)
兼容性测试:IE10
主要是app端的测试工做:通常的app测试工做,数据的核对(类型、精度等)
能够看出来,整个项目始终包含数据的验证工做。
附录:
异常值检查: https://www.cnblogs.com/xiaohuahua108/p/6237906.html
spark 优点: https://www.zhihu.com/question/31930662
接口测试: https://www.cnblogs.com/iloverain/p/9429116.html