本文概述
- ETL测试流程
- ETL测试的类型
- ETL测试中执行的任务
- ETL和数据库测试之间的区别
- ETL性能测试
- ETL测试中的数据准确性
- 数据转换中的ETL测试
- ETL测试用例
- ETL测试场景和测试案例
- ETL测试人员的责任
- ETL工具测试
- ETL测试的优势
- ETL测试的缺点
- ETL测试的未来范围
- 结论
ETL测试是为了确保转换后从源加载到目标的数据是准确的。它涉及在各个阶段对数据进行的验证, 这些数据在源和目标之间使用。
文章图片
ETL测试流程 与其他测试过程一样, ETL测试也经历了一些测试过程。
文章图片
ETL测试分五个阶段进行。
- ETL测试确定数据源和需求。
- 数据恢复
- 实现维度建模和业务逻辑。
- 建立并填充数据
- 建立报告
1.新的数据仓库测试:它是从核心构建和验证的。在此测试中, 输入来自客户的需求和不同的数据源。但是, 新数据仓库是在ETL工具的帮助下构建和验证的。
以下是不同小组所承担的责任:
- 业务分析师:业务分析师收集并记录需求。
- 基础设施人员:这些人员设置了测试环境。
- 质量检查测试人员:质量检查测试人员会制定测试计划和测试脚本, 然后执行这些测试计划和脚本。
- 开发人员:开发人员对每个模块执行单元测试。
- 数据库管理员:数据库管理员测试性能和压力。
- 用户:用户进行功能测试, 其中包括UAT(用户验收测试)。
3.从源到目标测试(验证):进行这种类型的测试是为了验证转换为预期数据值的数据值。
4.应用程序升级:这种类型的ETL测试是自动生成的, 从而节省了测试开发时间。这种测试检查从较旧应用程序中提取的数据是否与新应用程序中的数据完全相同。
5.元数据测试:元数据测试包括数据类型, 数据长度和检查索引/约束的度量。
6.数据准确性测试:进行此测试是为了确保按预期准确地加载和转换数据。
7.数据转换测试:在许多情况下都进行了数据转换测试。无法通过编写一个源SQL查询并将输出与目标进行比较来实现。每行都需要运行多个SQL查询以验证转换规则。
8.数据质量测试:数据质量测试包括语法和参考测试。为了避免在业务流程中由于日期或订单号引起的任何错误, 请确保数据质量。语法测试:它将根据无效字符, 字符模式, 不正确的大小写顺序等来报告脏数据。参考测试:将根据数据模型检查数据。
例如, 客户ID数据质量测试包括数字检查, 日期检查, 精度检查, 日期检查等。
9.增量ETL测试:进行此测试是为了在添加新数据时检查旧数据和新数据的数据完整性。增量测试验证即使在增量ETL过程中插入和更新数据之后, 系统也能正确处理。
10. GUI /导航测试:进行此测试是为了检查前端报告的导航或GUI方面。
11.迁移测试:在此测试中, 客户拥有一个现有的数据仓库, 而ETL正在执行这项工作。但是客户正在寻找提高效率的工具。它包括以下步骤:
- 设计和验证测试
- 设置测试环境
- 执行验证测试
- 报告错误
13.报告测试:数据仓库的最终结果, 报告测试。仓库应通过验证数据, 报告中的布局进行测试。报告是创建重要业务决策的重要资源。
ETL测试中执行的任务 ETL测试涉及的任务是:
- 了解数据, 用于报告
- 数据模型审查
- 源到目标的映射
- 检查源数据中的数据
- 包和模式的验证
- 在目标系统中, 应进行数据验证
- 验证聚合规则和数据转换计算
- 目标系统和数据源之间的数据比较
- 对于目标系统, 应检查质量和数据完整性。
- 数据性能测试。
ETL测试中执行的操作
ETL测试涉及以下操作:
- 验证从源到目标系统的数据移动。
- 源系统和目标系统中的数据计数验证。
- ETL测试根据要求和期望验证转换, 提取。
- ETL测试会验证表关系是否在转换过程中联接并且键是否是保留者。
数据库测试侧重于数据准确性, 数据正确性和有效值。
数据库测试执行以下操作:
- 数据库测试的重点是验证表中具有有效数据值的列。
- 为了验证是否保留了主键或外键, 使用了数据库测试。
- 数据库测试将验证列中是否缺少数据。在这里, 我们检查列中是否有应该为有效值的空值?
- 我们验证列中数据的准确性。
功能 | ETL测试 | 数据库测试 |
---|---|---|
首要目标 | 执行ETL测试以提取数据, 转换和加载BI报告。 | 执行数据库测试以验证和集成数据。 |
Business Need | ETL测试用于信息, 预测和分析报告。 | 此测试用于集成来自多个应用程序和服务器影响的数据。 |
Applicable System | ETL测试包含无法在业务流程环境中使用的历史数据。 | ETL测试包含发生业务流的交易系统。 |
Modeling | 使用多维方法。 | 使用ER方法。 |
数据库类型 | ETL测试应用于OLAP系统。 | OLTP系统中使用数据库测试。 |
数据类型 | ETL使用具有较少联接, 更多索引和聚合的非标准化数据。 | 数据库使用带有联接的规范化数据。 |
Common Tools | 使用QuerySurge, Informatica等工具。 | QTP, Selenium工具用于数据库测试。 |
如何执行ETL测试性能?
以下是测试ETL测试性能的以下步骤:
步骤1:找出在生产中转化的负载。
步骤2:将创建具有相同负载的新数据, 或将其从生产数据移动到本地服务器。
步骤3:现在, 我们将禁用ETL, 直到生成所需的代码为止。
步骤4:我们将从数据库表中计算所需的数据。
步骤5:我们将记下ETL的最后一次运行并启用ETL。它将获得足够的压力来转换已创建并运行的整个负载。
步骤6:ETL完成后, 我们将计算创建的数据。
应注意的基本性能:
- 找出转换负载所需的总时间
- 找出已改进或降低的性能。
- 我们将检查是否提取并转移了整个预期负荷。
以下是执行数据准确性所应遵循的步骤:
值比较:在值比较中, 我们将源系统和目标系统中的数据进行最小转换或不进行转换。通过使用各种ETL工具, 可以进行ETL测试。例如, Informatica中的源限定符转换。
表达式转换也可以在数据准确性测试中执行。可以在SQL语句中使用运算符集来检查源系统和目标系统中的数据准确性。
检查关键数据列:可以通过比较源系统和目标系统中的不同值来检查关键数据列。
SELECT cust_name, order_id, city, count(*)FROM customer GROUP BY cust_name, order_id, city;
数据转换中的ETL测试 执行数据转换非常复杂, 因为无法通过编写单个SQL查询并将输出与目标进行比较来实现数据转换。为了进行数据转换的ETL测试, 我们必须为每一行编写多个SQL查询以验证转换规则。
为了成功进行数据转换的ETL测试, 我们必须从源系统中选择足够的样本数据来应用转换规则。
执行ETL测试以进行数据转换的重要步骤包括:
步骤1.第一步是为输入数据和预期结果创建一个方案。现在, 我们将与商业客户一起验证ETL测试。 ETL测试是在设计过程中收集需求的最佳方法, 可以用作测试的一部分。
步骤2。第二步是根据场景创建测试数据。 ETL开发人员将自动使用场景电子表格填充数据集的整个过程, 以使情况发生变化, 从而具有多功能性和可移动性。
步骤3.利用数据分析, 结果将比较源数据和目标数据之间每个字段中值的范围和提交。
步骤4.我们将验证ETL生成字段的正确处理。例如, 代理键。
步骤5.我们将验证仓库中与数据模型或设计中指定的数据类型相同的数据类型。
步骤6.将在测试参照完整性的表之间创建数据方案。
步骤7, 我们将验证数据中的父子关系。
步骤8。最后, 我们将执行查找转换。查找查询应该是直接的, 不收集任何数据, 并且期望根据源表仅返回一个值。我们可以直接在源限定符中加入查找表。如果不是这种情况, 我们将编写一个查询, 该查询将查找表与源中的主表连接起来, 并将比较目标中相应列中的数据。
ETL测试用例 ETL测试的目的是确保业务转换后从源到目标的加载数据是准确的。
ETL测试适用于信息管理行业中的不同工具和数据库。
在ETL测试期间, ETL测试人员始终使用以下两个文档:
1. ETL映射表:ETL映射表包含源表和目标表的所有信息, 其中包括每一列及其在参考表中的查找。 ETL测试人员需要熟悉SQL查询, 因为ETL测试可能涉及编写具有多个联接的大型查询, 以在ETL的任何阶段验证数据。当我们编写查询以进行数据验证时, ETL映射表会提供重要的帮助。
2.源(目标)的数据库模式:应保持可访问性, 以验证映射表中的任何详细信息。
ETL测试场景和测试案例
ETL测试方案 | ETL测试用例 |
---|---|
映射文档验证 | 我们将验证映射文档是否提供了ETL信息。日志更改应保留在每个映射文档中。 |
Validation | 我们将使用相应的映射文档来验证目标表和源表的结构。源表和目标表的数据类型应该相同。源和目标的数据类型的长度应相同。我们将验证数据字段类型以及指定的格式。源数据类型的长度不应小于目标数据类型的长度。 |
约束验证 | 应该根据我们的期望为特定表定义约束。 |
数据一致性问题 | 通过语义定义, 文件或表中特定属性的数据类型和长度可能会有所不同。滥用完整性约束。 |
完整性问题 | 在这里, 我们必须确保将所有期望的数据都加载到目标表中。在这种情况下, 记录计数将在源和目标之间进行比较。我们将检查被拒绝的记录。数据不应在被截断的表的列中被截断。将检查边界值分析。我们将在仓库中加载的数据和源数据之间比较关键字段的唯一值。 |
正确性问题 | 此业务情景用于纠正拼写错误或记录不正确的数据。要更正数据, 该数据为null, 非唯一且超出范围。 |
Transformation | 此业务情景用于检查转换。 |
资料品质 | 此业务情景用于检查数字并进行验证。数据检查:此方案将遵循日期格式, 并且所有记录的格式都应相同。精度检查数据检查空检查 |
空验证 | 此方案将验证空值, 其中为特定列指定了“非空”值。 |
重复检查 | 在这种情况下, 我们将检查唯一键, 主键的验证, 并且根据具有任何重复行的业务需求, 任何其他列都应该是唯一的。我们将检查从多个列来源提取的任何列中是否存在重复值, 并将它们合并为一个列。根据客户的要求, 我们需要确保在仅具有目标的多个列的组合中不存在重复项。 |
日期验证 | 日期值正在使用开发中的许多区域来了解行创建日期。根据ETL开发角度确定现有记录。有时, 在日期值上会生成更新和插入。 |
数据清理 | 在装入暂存区之前, 应除去不必要的列。 |
文章图片
ETL错误的类型 | 描述 |
---|---|
用户界面错误 | 这些错误与应用程序的图形用户界面有关, 例如颜色, 字体样式, 导航, 拼写检查等。 |
输入输出错误 | 在这种类型的错误中, 应用程序开始使用无效值, 并且拒绝有效值。 |
边界值分析错误 | 这些错误检查最小值和最大值。 |
计算错误 | 计算错误会显示数学错误, 并且大多数情况下最终输出都是错误的。 |
负载条件错误 | 这些类型的错误不允许多个用户。它不允许用户接受数据。 |
种族条件错误 | 在这种错误中, 系统将无法正常运行。它开始崩溃或挂起。 |
等效类分区错误 | 这种类型的错误导致无效或无效的类型。 |
版本控制错误 | 这些类型的错误通常发生在回归测试中, 并且不提供任何有关版本的信息。 |
硬件错误 | 在这种类型的错误中, 设备将无法按预期响应应用程序。 |
帮助源错误 | 此错误将导致帮助文档中的错误。 |
ETL测试人员的职责是:
验证源系统中的表。它涉及以下类型的操作:
- 计数检查
- 数据类型检查
- 使记录与源数据一致
- 确保没有垃圾邮件数据被加载
- 删除重复数据
- 检查所有按键是否到位
在加载数据之前应用转换逻辑。它涉及以下操作:
- 在检查计数记录之前和之后应用转换逻辑。
- 验证从登台区域到中间表的数据流。
- 检查数据阈值验证;例如, 年龄值不得超过100。
- 检查代理键
数据从登台区域加载到目标系统。它涉及以下操作:
我们将检查事实表中是否加载了合计值和计算的度量。
- 在加载数据期间, 我们将基于目标表检查建模视图。
- 我们将检查CDC是否已应用于增量负载表。
- 检查数据维度表并查看表的历史记录。
- 根据预期结果检查基于加载的事实和维度表的BI报告。
- 测试ETL工具及其功能
- 测试ETL数据仓库系统
- 创建, 设计和执行测试用例和测试计划
- 测试平面文件数据传输
- ETL测试可以同时从任何数据源提取或接收数据。
- ETL可以将来自异构源的数据同时加载到单个广义(频繁)\不同目标中。
- ETL可以同时加载不同类型的目标。
- ETL能够从各种来源提取所需的业务数据, 并且可能需要将业务数据作为所需的格式加载到不同的目标中。
- ETL可以根据业务执行任何数据转换。
- ETL测试的主要缺点之一是我们必须是面向数据的开发人员或数据库分析人员才能使用它。
- 当我们需要快速响应时, 对于实时或按需访问而言, 它并不是理想的选择。
- ETL测试可能需要数月才能放在任何地方。
- 将数据保持在不断变化的需求中具有挑战性。
还要求ETL测试人员测试测试用例和工具。它涉及以下操作:
- 测试ETL工具及其功能
- 测试ETL数据仓库系统
- 创建, 设计和执行测试用例和测试计划
- 测试平面文件数据传输
结论 【ETL(提取,转换和加载)测试】ETL测试是一种业务测试, 其中涉及开发人员, 业务分析师, 最终用户和DBA。 ETL测试需要了解SDLC和ETL策略, 并且测试人员应该知道如何编写SQL查询。许多企业将ETL视为挑战, 但事实是它对企业有利。保护数据不丢失是必不可少的, 并且有必要更新数据以满足市场需求。