ETL测试
ETL测试过程与其他测试过程类似,包括一些阶段。
- 确定业务需求
- 测试计划
- 设计测试用例和测试数据
- 测试执行和错误报告
- 总结报告
- 测试结束
ETL测试的类型
- 生产验证测试: 也称为表平衡或产品对帐。 它在以正确顺序移入生产系统之前或同时对数据执行。
- 源目标测试: 在数据转换后验证数据值。
- 源应用程序升级: 检查数据是从旧应用程序或新应用程序或存储库中提取的。
- 数据转换测试: 为每一行运行多个SQL查询以验证数据转换标准。
- 数据完整性测试:验证是否按照预定义标准将预期数据加载到适当的目的地。
我还想将ETL测试与数据库测试进行比较,但在此之前让我们看一下有关数据库测试的ETL测试类型。
下面给出了与数据库测试有关的ETL测试类型:
约束测试:NULL、唯一、主键、外键、校验、空值、默认
重复检查测试:源表和目标表包含大量具有频繁重复值的数据,在这种情况下,测试人员会按照一些数据库查询来查找此类重复。
导航测试:导航涉及应用程序的GUI。 当用户在整个系统中获得简单且相关的导航时,用户会发现应用程序友好。 测试人员必须专注于从用户的角度避免不相关的导航。
初始化测试:执行初始化测试以检查硬件和软件要求以及安装的平台的组合
属性检查测试:
执行此测试以验证源系统和目标系统的所有属性是否相同
从上面的列表中可以看出,ETL测试与数据库测试非常相似,但事实是ETL测试涉及数据仓库测试而不是数据库测试。
ETL测试与数据库测试不同,还有其他一些事实。
让我们快速看看它们是什么:
- 数据库测试的主要目标是检查数据是否遵循数据模型的规则和标准,另一方面,ETL Testing检查数据是否按预期移动或映射。
- 数据库测试侧重于维护主键 - 外键关系,而ETL测试根据需求或期望验证数据转换 ,并在源系统和目标系统上相同。
- 数据库测试可识别缺失数据,而ETL测试可确定重复数据。
- 据库测试用于企业商业智能报告的 数据集成和ETL测试
这些是使ETL测试与数据库测试不同的一些主要差异。
ETL错误列表的表:
bug的类型 | 描述 |
---|---|
计算错误 | 由于数学错误,最终输出错误 |
输入/输出错误 | 接受无效值、拒绝有效值 |
H/W错误 | 由于硬件问题,设备无响应 |
用户界面错误 | 与应用程序的GUI相关 |
加载条件错误 | 拒绝多个用户 |
如何在ETL测试中创建测试用例
ETL测试的主要目标是确保提取和转换的数据是否从源到目标系统准确加载。 ETL测试包括两个文档,它们是:
1)ETL映射表:该文档包含有关源表和目标表及其引用的信息。 映射表提供了在执行ETL测试时创建大SQL查询的帮助。
2)源和目标表的数据库模式:应该在具有数据库模式的映射表中保持更新,以执行数据验证。
最流行的ETL测试工具列表
与自动化测试一样,ETL测试也可以自动化。 自动ETL测试可减少测试过程中的时间消耗,并有助于保持准确性。
Informatica数据验证
Informatica Data Validation是一个基于GUI的ETL测试工具,用于提取,[转换和加载(ETL)。 测试包括数据迁移之前和之后的表的比较。 此类测试可确保数据完整性,即正确加载数据量并以预期格式进入目标系统。
主要特点:
- 全面的ETL测试工具,不需要任何编程技能。
- 在ETL测试期间提供自动化,确保数据是否正确传送并且是否以预期的格式传送到目标系统。
- 有助于在测试和生产环境中完成数据验证和协调。
- 降低了在转换过程中引入错误的风险,并避免将错误数据转换到目标系统。
- 在开发,测试和生产环境中非常有用,在此环境中,必须在进入生产系统之前验证数据完整性。
- 可以节省50%到90%的成本和工作量。
- 为数据验证和数据完整性提供了完整的解决方案。
- 直观的用户界面和内置操作员,减少了编程工作和业务风险。
- 识别并防止数据质量问题并提高业务生产力。
- 允许64%免费试用和36%付费服务,减少数据验证所需的时间和成本。
访问官方网站 :Informatica Data Validation
QuerySurge
主要特点 :
- QuerySurge是一个用于大数据测试和ETL测试的自动化工具。
- 提高数据质量并加快测试周期。
- 使用查询向导验证数据。
- 它通过自动化手动工作并在特定时间安排测试来节省时间和成本。
- QuerySurge支持跨IBM,Oracle,Microsoft,SAP等各种平台的ETL测试。
- 有助于构建测试场景和测试套件以及可配置的报告,而无需具备SQL的特定知识。
- 通过自动化流程生成电子邮件报告。
- 可重复使用的查询代码段,用于生成可重用的代码。
- 它提供了数据健康的协作视图。
- 与HP ALM,TFS,IBM Rational Quality Manager集成。
- 通过ETL过程验证,转换和升级数据。
- 它是一种商业工具,可连接源数据和目标数据,还支持测试场景的实时进度。
访问官方网站 :QuerySurge
iCEDQ
iCEDQ是一个自动化的ETL测试工具,专门针对数据中心项目(如数据仓库,数据迁移等)所面临的问题而设计.iCEDQ在源系统和目标系统之间执行验证,验证和协调。 它确保迁移后数据是否完整,并避免将错误数据加载到目标系统中。
主要特点 :
- iCEDQ是一个独特的ETL测试工具,可以比较数百万行数据库或文件。
- 有助于识别包含数据问题的确切行和列。
- 在执行后向订阅的用户发送警报和通知。
- 支持回归测试。
- 支持各种数据库,可以从任何数据库读取数据。
- 连接关系数据库,任何JDBC兼容数据库,富文本等。
- 根据数据库中的唯一列比较内存中的数据。
- 与HP ALM集成。
- 专为ETL测试,数据迁移测试和数据质量验证而设计。
- 识别数据集成错误,无需任何自定义代码。
- 支持ETL流程的规则引擎,协作工作和有组织的QA流程。
- 30天试用期的商业工具,可提供包含警报和通知的自定义报告。
- 大数据版现在使用Hadoop Cluster的强大功能
- 使用iCEDQ进行BI报告测试和仪表板测试
Datagaps ETL Validator
ETL Validator工具专为ETL测试和大数据测试而设计。 它是数据集成项目的解决方案。 此类数据集成项目的测试包括各种数据类型,大量数据和各种源平台。 ETL Validator通过自动化帮助克服这些挑战,进一步有助于降低成本并最大限度地减少工作量。
- 内置的ETL引擎,可以比较来自各种数据库或平面文件的数百万条记录。
- 专为自动数据仓库测试而设计的数据测试工具。
- 具有拖放功能的Visual Test Case Builder。
- Query Builder的功能,可以编写测试用例而无需手动输入任何查询。
- 比较聚合数据,如计数,总和,不同计数等。
- 简化跨各种环境的数据库模式的比较,包括数据类型,索引,长度等。
- ETL Validator支持各种平台,如Hadoop,XML,Flat文件等。
- 支持电子邮件通知,Web报告等。
- 它可以与HP ALM集成,从而在各种平台上共享测试结果。
- 查数据有效性,数据准确性以及执行元数据测试。
- 检查参照完整性,数据完整性,数据完整性和数据转换。
- 试用期为30天,无需自定义编程,提高了业务效率。
QualiDI
QualiDi是一个自动化测试平台,提供端到端测试和ETL测试。 它可以自动化ETL测试并提高ETL测试的有效性。 它还可以减少静止周期并提高数据质量。 QualiDI非常容易识别不良数据和不合规数据。 QualiDI减少了回归周期和数据验证。
主要特点 :
- QualiDI创建自动化测试用例,并为自动数据比较提供支持。
- 提供数据可追溯性和测试用例可追溯性。
- 集中的存储库,用于需求,测试用例和测试结果。
- 它可以与HPQC,Hadoop等集成。
- QualiDI在早期阶段发现了一个缺陷,从而降低了成本。
- 电子邮件通知。
- 支持持续集成过程。
- 支持敏捷开发和快速传递sprint。
- QualiDI管理复杂的BI测试周期,消除人为错误和维护的数据质量。
访问官方网站: QualiDi
用于数据集成的 Open Studio
Talend Open Studio for Data Integration是一个开源工具,可以简化ETL测试。 它包括所有ETL测试功能和其他持续交付机制。 在Talend Data Integration工具的帮助下,用户可以使用各种操作系统在远程服务器上运行ETL作业。
ETL测试确保数据从源系统转换到目标而不会丢失任何数据,从而遵守转换规则。
主要特点 :
- Talend数据集成支持任何类型的关系数据库,平面文件等。
- 集成的GUI,简化了ETL过程的设计和开发。
- 内置数据连接器,包含900多个组件。
- 快速检测转换规则中的业务歧义和不一致性。
- 支持远程作业执行。
- 早期识别缺陷以降低成本。
- 根据ETL最佳实践提供定量和定性指标。可以在两者之间切换
- ETL开发,ETL测试和ETL生产环境。
- 实时数据流跟踪以及详细的执行统计信息。
访问官方网站:Talend ETL Testing
参考资料
- python测试开发项目实战-目录
- python工具书籍下载-持续更新
- python 3.7极速入门教程 - 目录
- 讨论qq群630011153 144081101
- 原文地址
- 本文涉及的python测试开发库 谢谢点赞!
- 本文相关海量书籍下载
- https://www.tutorialspoint.com/sqoop/sqoop_installation.htm
- https://sqoop.apache.org/docs/1.4.7/SqoopUserGuide.html
- https://www.softwaretestinghelp.com/top-4-etl-testing-tools/
Codoid的ETL测试服务
Codoid的ETL和数据仓库测试服务包括从源到目标系统的数据迁移和数据验证。 ETL测试确保在将数据从源加载到目标系统时没有数据错误,没有错误数据或数据丢失。 它可以快速识别ETL过程中发生的任何数据错误或任何其他常见错误。
主要特点 :
可确保数据仓库中的数据质量以及从源系统到目标系统的数据完整性验证。
ETL测试和数据验证确保从源系统转换到目标系统的业务信息准确可靠。
自动化测试过程在数据迁移期间和之后执行数据验证,并防止任何数据损坏。
数据验证包括目标数据和实际数据之间的计数,聚合和抽查。
自动化测试过程验证数据类型,数据长度,索引是否准确转换并加载到目标系统中。
数据质量测试可防止数据错误,错误数据或任何语法问题。
访问官方网站:Codoid’s ETL Testing
Data-Centric Testing
数据中心测试工具执行强大的数据验证,以避免数据转换期间的数据丢失或数据不一致等任何故障。 它比较系统之间的数据,并确保加载到目标系统的数据在数据量,数据类型,格式等方面与源系统完全匹配。
主要特点 :
- 构建数据中心测试以执行ETL测试和数据仓库测试。
- 以数据为中心的测试是最大和最经典的测试实践。
- 提供ETL测试,数据迁移和协调。
- 支持各种关系数据库,富文本等。
- 高效的数据验证,100%的数据覆盖率。
- 以数据为中心的测试还支持全面的报告。
- 数据验证的自动化过程会生成SQL查询,从而降低成本和工作量。
- 它提供了Oracle和SQL Server等异构数据库之间的比较,并确保两个系统中的数据格式正确。
访问官方网站:Data-Centric Testing
SSISTester
SSISTester是一个框架,有助于SSIS包的单元和集成测试。 它还有助于在测试驱动的环境中创建ETL过程,从而有助于识别开发过程中的错误。 在实现ETL过程时会创建许多包,这些包需要在单元测试期间进行测试。 集成测试也是“实时测试”。
主要特点 :
- 单元测试创建并验证测试,一旦执行完成,它就会执行清理工作。
- 集成测试验证在执行单元测试后所有包都符合以前哦爱u。
- 当用户在Visual Studio中创建测试时,将以简单的方式创建测试。
- 使用SSISTester可以实时测试测试。
- 用户友好的GUI监控测试执行。
- 测试结果以HTML格式导出。
- 它通过使用虚假的源和目标地址来删除外部依赖项。
- 对于测试的创建,它支持任何.NET语言。
访问官方网站: SSISTester
TestBench
TestBench是一个数据库管理和验证工具。 它是一个独特的解决方案,可解决与数据库相关的所有问题。 用户管理的数据回滚可提高测试效率和准确性。 它还有助于减少环境停机时间。 TestBench报告在测试环境中执行的所有插入,更新和删除的事务,并捕获事务之前和之后的数据状态。
主要特点 :
- 保持数据机密性以保护数据。
- 应用程序的恢复点。
- 改善了决策知识。
- 自定义数据集以提高测试效率。
- 有助于最大限度地测试覆盖率并有助于减少时间和金钱。
- 数据隐私规则可确保测试环境中的实时数据不可用。
- 将结果与各种数据库进行比较。 结果包括表格的差异和对表格的操作。
- TestBench分析表之间的关系并维护表之间的引用完整性。
访问官方网站: TestBench
GTL QAceGen
QAceGen专门用于生成复杂的测试数据,自动化ETL回归套件以及验证应用程序的业务逻辑。 QAceGen根据ETL规范中定义的业务规则生成测试数据。 它创建了包含数据生成和数据验证语句的每个场景。
访问官方网站: QAceGen
Zuzena自动化测试服务
Zuzena是一种为数据仓库测试而开发的自动化测试服务。 它用于执行大型项目,如数据仓库,商业智能,它管理数据并执行集成和回归测试套件。 它自动管理ETL执行和结果评估。 它具有广泛的指标,可监控QA目标和团队绩效。
访问官方网站:uzena Automated Testing
DbFit
DbFit是一个开源测试工具,在GPL许可下发布。 它为任何数据库代码编写单元和集成测试。 这些测试易于维护,可以直接从浏览器执行。 这些测试使用表编写,并使用命令行或Java IDE执行。 它支持主要数据库,如Oracle,MySQL,DB2,SQL Server,PostgreSQL等。
访问官方网站: DbFit
AnyDbTest
AnyDbTest是专为DBA或数据库开发人员设计的自动化单元测试工具。 AnyDbTest使用XML编写测试用例,并允许使用excel电子表格作为测试用例的来源。 支持标准断言,如SetEqual,StrictEqual,IsSupersetOf,RecordCountEqual,Overlaps等。它支持各种类型的数据库,如MySQL,Oracle,SQL Server等。测试可以包括多个数据库,即源数据库可以是Oracle服务器和目标需要加载数据的数据库可以是SQL Server。
访问官方网站: AnyDbTest
99 Percentage ETL Testing
99 Percentage ETL Testing'确保任何数据库系统的数据完整性和生产协调。 它维护ETL映射表并验证行和列的源和目标数据库映射。 它还维护源数据库和目标数据库的DB Schema。 它支持生产验证测试,数据完整性和数据转换测试。
访问官方网站: 99 Percentage ETL Testing
要点
- 应用合适的业务转型逻辑。
- 执行后端数据驱动的测试。
- 创建并执行绝对测试用例,测试计划和测试工具。
- 确保数据转换,可扩展性和性能的准确性。
- 确保E
- TL应用程序报告无效值。
- 应将单元测试创建为目标标准。
结论
ETL测试不仅是测试人员的职责,还涉及开发人员,业务分析师,数据库管理员(DBA)甚至用户。 ETL测试过程变得至关重要,因为它需要定期制定战略决策。
ETL测试被视为企业测试,因为它需要熟悉SDLC,SQL查询,ETL过程等。