大数据测试
大数据测试
大数据测试重点关注
hadoop生态系统组件测试工具
| 分类 | 测试工具 | 说明 |
|---|---|---|
| 专项 | hadoop GridMix | hadoop集群测试 |
| 专项 | YCSB | NoSQL数据库的性能测试 |
| 专项 | linkBench | Facebook 社交图谱 |
| 专项 | SysBench | Mysql基准测试 |
| 综合 | hibench | Hive平台的基准测试 |
| 综合 | ICT BigDataBench | 大数据测试工具 |
| 端到端 | BigBench | 基于TPC-DS |
ETL测试主要流程
分析业务及需求
1.业务流程和业务规则——根据业务需求分析源表与目标表 mapping 关系。
2.数据重点关注
| FOCUS |
|---|
| 数据质量现状 |
| 表字段含义 |
| 元数据信息 |
| 解析数据流转血缘关系 |
测试计划+用例设计+数据准备
1.与数据开发人员沟通——拿到数据处理的详细步骤
2.提前准备测试用例和数据——最大程度覆盖测试场景。
静态代码CR
静态代码CR的目的是尽早通过阅读代码发现显而易见的缺陷或Bug。
比如:数据类项目(主要侧重HiveSQL的CR)通用检查项如下:
| HiveSQL的CR |
|---|
| 正确性——表名、字段名、主键名、DML、DDL 语句 |
| 合理性——字段顺序、数据类型、脏数据的处理 |
| 对应——[表中字段的业务含义,实际业务] |
| 数据计算异常——如除数为0、NULL、空字符串 |
| 数据精度——是否达标 |
| 数据去重——满足业务 |
| 数据流转逻辑符合需求文档 |
| 编码规范 |
测试执行
- 不污染生产数据
- 测试覆盖全面
测试要点
| 侧重 |
|---|
| 数据质量 |
| 数据处理过程 |
功能+性能+安全
功能测试
| 功能FOCUS |
|---|
| 数据完整性 |
| 数据一致性 |
| 数据准确性 |
| 数据的及时性 |
| 数据间的约束检查 |
| 数据处理逻辑 |
| 数据存储检查 |
场景:
- HiveSQL语法
- 规范验证
- 加载规则
- 调度任务的测试
数据质量(数据质量监控平台来进行定期监测):
- 数据完整性
- 一致性
- 准确性
- 及时性也
性能测试
常规性能测试验证参数:
- 内存使用率
- 吞吐率
- 任务完成时间
- 存储:大数据量情况下数据如何存储在不同的节点中,是否有表漏写分区
- 并发性:大并发场景下的数据读取、写入、计算等性能,有多少个线程可以执行写入和读取操作。
- JVM参数:堆大小,GC收集算法。
- 缓存:调整缓存设置“行缓存”和“键缓存”。
- 超时:连接超时值,查询超时值、任务执行超时。
- 消息队列:消息速率,大小。
安全测试
- 特殊数据进行加密
- 数据权限:(库、表、文件层面)+ (数据行、列)
- 实施数据读取、下载、管理权限控制