定义ETL测试
- 大数据测试的流程
- 大数据测试遵循通用的测试方法
- 大数据测试需要的测试工具、技术栈
- 大数据测试实现自动化
- 衡量大数据测试质量的标准
ETL测试数据构造
- 高效构造测试数据并覆盖全场景,满足特定场景
- 数据质量的幂等性;源数据和写入DB数据一致准确
ETL测试专项技能
- 性能测试和衡量指标
- Hadoop、spark
- 在分布式场景下偶发性bug,如何复现
- 整理质量保障重点(线下、线上)
- 避免数据缺失、数据错误等线上数据故障
ETL测试目的
- 目的是确保从源到目的地数据经过业务转换的准确性;
- 从源到目的地数据各阶段的数据验证;
ETL测试类型
- Production Validation Testing 该类型的ETL测试是在数据迁移至生产系统时进行的。为了保证生产业务的正常运营,生产系统中的数据必须以正确的顺序进行排序。在该ETL测试类型中要注意从数据层面进行自动化测试和管理能力的植入。
- Source to Target Testing(Validation Testing) 该类型的测试主要元组转换的数据是否满足预期的转换目标
- Application Upgrades(升级测试) 该类型的ETL测试是可以自动生成的,能节省大量的测试开发时间。主要检查旧应用或存储库中提取的数据是否与新的应用或新的存储库中的数据完全相同。
- Metadata testing(元数据测试) 元数据测试包括数据类型检查、数据长度和索引/约束检查。
- Data Completeness Testing(数据完整性测试) 当把所有期望的数据从源加载到目标地时,就算完成了数据完整性测试。在数据完整性测试过程中,我们还可以进行一些简单的转换或无转换的源与目标之间的计数、聚合和实际数据比较和验证的测试。
- Data Accuracy Testing(数据准确性测试) 该类型测试验证数据正确的完成加载和按预期目标进行转换。
- Data Transformation Testing(数据转换测试) 测试数据转换是一个复杂的过程,并不是简单的写一个源SQL查询并与目标进行比较来实现的。可能需要为每个行运行多个SQL查询,来验证转换规则
- Data Quality Testing(数据质量测试) 数据质量测试包含语法和基准测试。为了避免在业务过程中由于日期或唯一编号(例如订单号)引起的错误,进行数据质量测试。
ETL测试与数据库测试的区别
ETL测试 | 数据库测试 |
验证数据按预期移动 | 验证数据遵循了设计预定的数据模式规则或标准 |
验证数据经过业务转换后满足预定的转换逻辑,源数据和目标数据计算一致 | 表的主外键 |
验证ETL过程数据表的主外键关系 | 验证冗余表 |
验证已载入的数据拷贝 | 验证数据完整性 |
ETL测试工程师面临的挑战
对于ETL测试工程师,其关键的责任有三类:
- 源数据分析(数据库、文本等类型数据分析)
- 业务转换逻辑实现
- 将经过转换的数据载入至目标表
ETL测试的挑战:
- 不兼容性和重复数据
- 在ETL过程中数据丢失
- 不可用包容性的试验床
- 数据的数量和复杂性非常巨大
- 业务流程和程序的故障
- 获取和构建测试数据困难
- 缺少业务流程信息
其他工作内容
- 掌握ETL测试软件
- ETL数据仓库测试组件
- 在后端执行数据驱动测试
- 创建、设计、执行测试用例、计划
- 标识问题、提供问题解决方案
- 梳理业务需求和设计测试策略
- 编写SQL或数据库操作代码