基于技术,流程和解决方案,在服务产品方面为客户提供了不同的产品系列,分布在许多领域, ETL或数据仓库是快速成功发展的产品之一。
ETL从源系统获取数据,根据业务规则进行转换,最后加载到目标系统(数据仓库)。数据仓库是企业范围的商店,其中包含有助于业务决策过程的集成数据。它是商业智能的一部分。
为什么需要数据仓库?
数据是任何组织中最重要的部分,它可能是日常数据或历史数据。数据是任何报告的基础,报告是所有重要管理决策的基准。
构建数据仓库,以存储和监控实时数据以及历史数据。制作高效的数据仓库并非易事。许多组织已经分布了使用分布式技术运行的不同应用程序。
使用ETL工具以便在来自不同部门的不同数据源之间进行完美的集成。 ETL从不同来源提取数据;根据业务转换规则将其转换为首选格式,并将其加载到已知的内聚数据库中,即数据仓库。
无论使用何种技术或ETL工具,ETL或数据仓库测试都分为四种不同的参与:
- 新数据仓库测试 - 从头开始构建和验证新DW。数据输入取自客户需求,不同的数据源和新的数据仓库在ETL工具的帮助下构建和验证。
- 迁移测试 - 在这种类型的项目中,客户将有一个现有的DW和ETL执行工作,但他们正在寻找新工具以提高效率。
- 变更请求 - 在此类项目中,新数据从不同来源添加到现有DW。此外,可能存在客户需要更改其现有业务规则或可能集成新规则的情况。
- 报告测试 - 报告是任何数据仓库的最终结果,也是DW构建的基本建议。必须通过验证报告和计算中的布局,数据来测试报告。
ETL过程
ETL测试
1)数据转换测试:根据各种业务要求和规则验证数据是否正确转换。
2)源到目的计数测试:确保目标中加载的记录数与预期计数匹配。
3)源数据目标数据测试:确保所有预计数据都加载到数据仓库中,没有任何数据丢失和截断。
4)数据质量测试:确保ETL应用程序适当拒绝,替换为默认值并报告无效数据。
5)性能测试:确保在规定的和预期的时间范围内将数据加载到数据仓库中,以确认改进的性能和可伸缩性。
6)生产验证测试:验证生产系统中的数据并将其与源数据进行比较。
7)数据集成测试:确保来自各种源的数据已正确加载到目标系统,并检查所有阈值。
8)应用程序迁移测试:在此测试中,确保ETL应用程序在移动到新的盒子或平台时工作正常。
9)数据和约束检查:在这种情况下测试数据类型,长度,索引,约束等。
10)重复数据检查:测试目标系统中是否存在任何重复数据。
除上述ETL测试方法外,还进行了系统集成测试,用户验收测试,增量测试,回归测试,重新测试和导航测试等其他测试方法,以确保一切顺利可靠。
ETL /数据仓库测试过程
要求了解
证实
测试评估:基于多个表,规则的复杂性,数据量和作业的性能。
测试计划:基于测试评估和业务需求的输入进行测试计划。我们需要在此确定范围内的内容和范围之外的内容。我们还会在此阶段寻找依赖关系,风险和缓解计划。
测试用例:从所有可用输入设计测试用例和测试场景。我们还需要设计映射文档和SQL脚本。
测试数据准备:一旦所有测试用例都准备好并获得批准,测试团队就会继续执行执行前检查和测试数据准备以进行测试。
-测试执行:最后,执行执行直到满足退出标准。因此,执行阶段包括运行ETL作业,监视作业运行,SQL脚本执行,缺陷日志记录,缺陷重新测试和回归测试。测试报告:成功完成后,将编写摘要报告并完成关闭过程。在此阶段,将签名以将作业或代码提升到下一阶段。
有必要定义测试策略,在开始实际测试之前,应由利益相关者共同接受。明确定义的测试策略将确保遵循测试愿望的正确方法。
ETL /数据仓库测试可能需要测试团队广泛编写SQL语句,或者可能需要定制开发团队提供的SQL。无论如何,测试团队必须知道他们试图使用这些SQL语句获得的结果。
参考资料
- python测试开发项目实战-目录
- python工具书籍下载-持续更新
- python 3.7极速入门教程 - 目录
- 讨论qq群630011153 144081101
- 原文地址
- 本文涉及的python测试开发库 谢谢点赞!
- 本文相关海量书籍下载
- https://www.softwaretestinghelp.com/etl-testing-data-warehouse-testing/
数据库和数据仓库测试之间的差异
有一种流行的误解,即数据库测试和数据仓库是相似的,而事实是两者在测试中都有不同的方向。
使用较小规模的数据(通常使用OLTP:联机事务处理Online transaction processing类型的数据库)进行数据库测试,而数据仓库测试使用涉及OLAP(联机分析处理)数据库的大量数行。
在数据库测试中,通常数据始终从统一源注入,而在数据仓库测试中,大多数数据来自不同类型的数据源,这些数据源是顺序不一致的。
我们通常在数据库测试中执行唯一的CRUD(创建,读取,更新和删除Create, read, update and delete))操作,而在数据仓库测试中,我们使用只读(选择)操作。
规范化数据库用于DB测试,非规范化数据库B用于数据仓库测试。
对于任何类型的数据仓库测试都必须进行许多通用验证。以下是在此测试中被视为验证必不可少的对象列表:
- 验证从源到目标的数据转换是否按预期工作
- 验证是否已将预期数据添加到目标系统
- 验证是否加载了所有数据库字段和字段数据而没有任何截断
- 验证记录计数匹配的数据校验和
- 验证对于被拒绝的数据,是否日志生成了包含所有详细信息
- 验证NULL值字段
- 验证未加载重复数据
- 验证数据完整性
参考:difference between ETL/Data warehouse testing & Database Testing.
ETL测试挑战
- 不兼容和重复的数据
- ETL过程中的数据丢失
- 包容性测试平台不可用
- 测试人员无权通过自己的方式执行ETL作业
- 数据的数量和复杂性非常巨大
- 业务流程和程序出错
- 无法获取和构建测试数据
- 测试环境不稳定
- 缺少业务流程信息
数据对于企业做出关键业务决策非常重要。 ETL测试在验证和确保业务信息的准确性,一致性和可靠性方面发挥着重要作用。此外,它最大限度地减少了生产中数据丢失的危险。
希望这些提示有助于确保您的ETL过程准确无误,并且由此构建的数据仓库对您的业务而言具有竞争优势。