ELT 测试教程

2025年3月17日 | 阅读 14 分钟
ELT Testing Tutorial

ELT 测试教程提供了 ELT 测试的基础和高级概念。我们的 ELT 测试教程专为初学者和专业人士设计。

ETL 工具从所有不同的数据源提取数据,转换数据(在应用连接字段、计算、删除不正确的数据字段等之后),然后将其加载到数据仓库中。

进行 ETL 测试是为了确保数据在业务转换后从源准确加载到目的地。它还涉及验证源和目的地之间使用的各个阶段的数据

ELT Testing Tutorial

ETL(提取、转换和加载)测试

ETL 测试在数据移动到生产数据仓库系统之前进行。它也被称为表平衡或产品协调。ETL 测试在范围和测试过程中遵循的步骤方面与数据库测试不同。

ETL 测试旨在确保数据在转换后从源准确加载到目的地。它涉及验证源和目的地之间使用的各个阶段的数据。

ETL Testing Introduction

ETL 测试流程

与其他测试流程一样,ETL 测试也经历一些测试流程。

ETL Testing Introduction

ETL 测试分五个阶段执行。

  1. ETL 测试识别数据源和需求。
  2. 信息检索
  3. 实施维度建模和业务逻辑。
  4. 构建和填充数据
  5. 构建报告

ETL 测试的类型

ETL 测试的类型有

1. 新数据仓库测试:它从核心构建和验证。在此测试中,输入取自客户需求和不同的数据源。然而,新数据仓库是在 ETL 工具的帮助下构建和验证的。

以下是不同小组扮演的职责

  • 业务分析师:业务分析师收集并记录需求。
  • 基础设施人员:这些人员设置测试环境。
  • QA 测试人员:QA 测试人员开发测试计划和测试脚本,然后执行这些测试计划和脚本。
  • 开发人员:开发人员对每个模块执行单元测试。
  • 数据库管理员:数据库管理员测试性能和压力。
  • 用户:用户进行功能测试,其中包括 UAT(用户验收测试)。

2. 生产验证测试:当数据移动到生产系统时,对此数据进行此测试。Informatica 数据验证选项提供了 ETL 测试的自动化和管理功能,以确保数据不会损害生产系统。

3. 源到目标测试(验证):此类型的测试用于验证数据值是否转换为预期的数据值。

4. 应用程序升级:这种类型的 ETL 测试是自动生成的,这节省了测试开发时间。这种类型的测试检查从旧应用程序中提取的数据是否与新应用程序中的数据完全相同。

5. 元数据测试:元数据测试包括数据类型的测量、数据长度以及检查索引/约束。

6. 数据准确性测试:此测试旨在确保数据准确加载并按预期转换。

7. 数据转换测试:数据转换测试在许多情况下进行。它不能通过编写一个源 SQL 查询并将其输出与目标进行比较来实现。需要为每行运行多个 SQL 查询以验证转换规则。

8. 数据质量测试:数据质量测试包括语法和引用测试。为了避免因业务流程中的日期或订单号而导致的任何错误,进行数据质量测试。语法测试:它将根据无效字符、字符模式、不正确的字母大小写顺序等报告脏数据。引用测试:它将根据数据模型检查数据。

例如,客户 ID 数据质量测试包括数字检查、日期检查、精度检查、日期检查等。

9. 增量 ETL 测试:此测试用于在新数据添加时检查旧数据和新数据的数据完整性。增量测试验证即使在增量 ETL 过程中插入和更新数据后,系统也能正确处理。

10. GUI/导航测试:此测试用于检查前端报告的导航或 GUI 方面。

11. 迁移测试:在此测试中,客户拥有现有数据仓库,并且 ETL 正在执行工作。但客户正在寻找提高效率的工具。它包括以下步骤

  • 设计和验证测试
  • 设置测试环境
  • 执行验证测试
  • 报告错误

12. 变更请求:在这种情况下,数据被添加到现有数据仓库中。可能会出现客户需要更改现有业务规则或他们可以集成新规则的情况。

13. 报告测试:数据仓库的最终结果,**报告测试**。报告应通过验证报告中的数据和布局进行测试。报告是制定重要业务决策的重要资源。

ETL 测试中执行的任务

ETL 测试中涉及的任务有

  • 理解用于报告的数据
  • 数据模型审查
  • 源到目标的映射
  • 检查源数据中的数据
  • 包和架构的验证
  • 在目标系统中,应进行数据验证
  • 聚合规则和数据转换计算的验证
  • 目标系统与数据源之间的数据比较
  • 对于目标系统,应检查质量和数据完整性。
  • 数据性能测试。

ETL 和数据库测试之间的区别

ETL 和数据库测试都涉及数据验证,但两者并不相同。ETL 测试通常对数据仓库中的数据执行,而数据库测试对事务系统执行。数据从不同的应用程序进入事务数据库。

ETL 测试中执行的操作

ETL 测试涉及以下操作

  • 验证数据从源系统到目标系统的移动。
  • 源系统和目标系统中的数据计数验证。
  • ETL 测试根据需求和预期验证转换、提取。
  • ETL 测试验证在转换过程中是否保留了表关系连接和键。

数据库测试中执行的操作

数据库测试侧重于数据准确性、数据正确性和有效值。

数据库测试执行以下操作

  • 数据库测试侧重于验证表中列是否具有有效数据值。
  • 为了验证是否维护了主键或外键,使用数据库测试。
  • 数据库测试验证列中是否缺少数据。在这里,我们检查在应该有有效值的列中是否存在任何空值?
  • 我们验证列中数据的准确性。

例如,月份列的值不应大于 12。

函数ETL 测试数据库测试
主要目标ETL 测试用于 BI 报告的数据提取、转换和加载。数据库测试用于验证和集成数据。
业务需求ETL 测试用于信息、预测和分析报告。此测试用于集成来自多个应用程序的数据和服务器影响。
适用系统ETL 测试包含无法在业务流程环境中使用历史数据。ETL 测试包含业务流程发生的事务系统。
建模使用多维方法。使用 ER 方法。
数据库类型ETL 测试应用于 OLAP 系统。数据库测试用于 OLTP 系统。
数据类型ETL 使用去规范化数据,连接更少,索引和聚合更多。数据库使用带有连接的规范化数据。
常用工具使用 QuerySurge、Informatica 等工具。QTP、Selenium 工具用于数据库测试。

ETL 性能测试

ETL 性能测试用于确保 ETL 系统可以处理多个用户和事务的预期负载。性能测试涉及 ETL 系统上的服务器端工作负载。

如何执行 ETL 测试性能?

以下是测试 ETL 测试性能的步骤

步骤 1:找出在生产中转换的负载。

步骤 2:创建相同负载的新数据或将数据从生产数据移动到本地服务器。

步骤 3:现在,我们将禁用 ETL,直到生成所需的代码。

步骤 4:我们将从数据库表中计数所需的数据。

步骤 5:我们将记下 ETL 的最后一次运行,并启用 ETL。它将获得足够的压力来转换已创建的整个负载并运行它。

步骤 6:ETL 完成后,我们将计数创建的数据。

应注意的重要性能

  • 找出转换负载所花费的总时间
  • 找出性能是否有所提高或下降。
  • 我们将检查是否提取和传输了整个预期负载。

ETL 测试中的数据准确性

在 ETL 测试中,我们关注数据准确性,以确保数据按照我们的预期准确加载到目标系统。

以下是执行数据准确性的步骤

值比较:在值比较中,我们比较源和目标系统中的数据,其中转换最小或没有转换。ETL 测试可以通过使用各种 ETL 工具实现。例如,Informatica 中的 Source Qualifier Transformation。

表达式转换也可以在数据准确性测试中执行。可以在 SQL 语句中使用一组运算符来检查源和目标系统中的数据准确性。

检查关键数据列:可以通过比较源和目标系统中的不同值来检查关键数据列。

数据转换中的 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. 源(目标)的 DB 架构:应保持可访问性,以验证映射表中的任何详细信息。

ETL 测试场景和测试用例

ETL 测试场景ETL 测试用例
映射文档验证我们将验证映射文档是否提供了 ETL 信息。每个映射文档中都应维护日志更改。
验证
  • 我们将验证目标表和源表结构与相应的映射文档。
  • 源表和目标表的数据类型应相同。
  • 源和目标数据类型的长度应相同。
  • 我们将验证指定的数据字段类型和格式。
  • 源数据类型的长度不应小于目标数据类型的长度。
约束验证应根据我们的预期为特定表定义约束。
数据一致性问题
  • 特定属性的数据类型和长度可能因语义定义而在文件或表中有所不同。
  • 滥用完整性约束。
完整性问题
  • 在这里,我们必须确保所有预期数据都已加载到目标表中。
  • 在此场景中,将比较源和目标之间的记录计数。
  • 我们将检查被拒绝的记录。
  • 数据不应在截断表的列中被截断。
  • 将检查边界值分析。
  • 我们将比较数据仓库中加载的数据与源数据之间关键字段的唯一值。
正确性问题
  • 此场景用于纠正拼写错误或记录不准确的数据。
  • 纠正为空、非唯一和超出范围的数据。
转换
  • 此场景用于检查转换。
数据质量
  • 此场景用于检查并验证数字。
  • 数据检查:此场景将遵循日期格式,并且所有记录都应相同。
  • 精度检查
  • 数据检查
  • 空值检查
空值验证
  • 此场景将验证空值,其中为特定列指定了“非空”值。
重复检查
  • 在此场景中,我们将检查唯一键、主键和任何其他列的验证,这些列根据业务要求应是唯一的,且不包含任何重复行。
  • 我们将检查从多个列源提取并合并到一个列中的任何列中是否存在重复值。
  • 根据客户要求,我们需要确保在仅与目标组合的多个列中没有重复项。
日期验证
  • 日期值在开发中用于许多领域,以了解行创建日期。
  • 根据 ETL 开发视角识别现有记录。
  • 有时,更新和插入是根据日期值生成的。
数据清理
  • 在加载到暂存区之前应删除不必要的列。

ETL 错误类型


ETL Testing Introduction
ETL 错误类型描述
用户界面错误这些错误与应用程序的图形用户界面相关,例如颜色、字体样式、导航、拼写检查等。
输入-输出错误在此类型的错误中,应用程序开始接受无效值,并拒绝有效值。
边界值分析错误这些错误检查最小值和最大值。
计算错误计算错误显示数学错误,并且大多数情况下最终输出是错误的。
加载条件错误这些类型的错误不允许多个用户。它不允许用户接受的数据。
竞争条件错误在这种错误中,系统将无法正常运行。它开始崩溃或挂起。
等价类划分错误此类错误导致无效或无效类型。
版本控制错误这些类型的错误通常发生在回归测试中,并且不提供任何版本信息。
硬件错误在此类型的错误中,设备将不会像预期那样响应应用程序。
帮助源错误此错误将导致帮助文档中的错误。

ETL 测试人员的职责

ETL 测试人员负责验证数据源、应用转换逻辑以及将数据加载到目标表、提取数据。

ETL 测试人员的职责是

验证源系统中的表。它涉及以下类型的操作

  • 计数检查
  • 数据类型检查
  • 与源数据协调记录
  • 确保没有加载垃圾数据
  • 删除重复数据
  • 检查所有键是否到位

应用转换逻辑

在加载数据之前应用转换逻辑。它涉及以下操作

  • 在检查计数记录之前和之后应用转换逻辑。
  • 验证数据从暂存区到中间表的流动。
  • 检查数据阈值验证;例如,年龄值不应超过 100。
  • 检查代理键

数据加载

数据从暂存区加载到目标系统。它涉及以下操作

我们将检查是否将聚合值和计算度量加载到事实表中。

  • 在加载数据期间,我们将检查基于目标表的建模视图。
  • 我们将检查是否已将 CDC 应用于增量加载表。
  • 检查数据维度表并审查表的历史记录。
  • 根据预期结果检查基于已加载事实表和维度表的 BI 报告。

ETL 工具测试

ETL 测试人员还需要测试测试用例和工具。它涉及以下操作

  • 测试 ETL 工具及其功能
  • 测试 ETL 数据仓库系统
  • 创建、设计和执行测试用例和测试计划
  • 测试平面文件数据传输

ETL 测试的优点

ETL 测试的优点如下

  1. ETL 测试可以同时从任何数据源提取或接收数据。
  2. ETL 可以同时将数据从异构源加载到单个通用(频繁)/不同目标。
  3. ETL 能够同时加载不同类型的目标。
  4. ETL 能够从各种源提取所需的业务数据,并能够将业务数据加载到不同的目标,以所需的格式。
  5. ETL 可以根据业务执行任何数据转换。

ETL 测试的缺点

ETL 测试的缺点如下

  1. ETL 测试的主要缺点之一是我们必须是数据导向的开发人员或数据库分析师才能使用它。
  2. 当我们需要快速响应时,它不适用于实时或按需访问。
  3. ETL 测试需要数月才能在任何地方实施。
  4. 在不断变化的需求中保持数据具有挑战性。

标题

ETL 测试人员需要测试测试用例和工具。它涉及以下操作

  • 测试 ETL 工具及其功能
  • 测试 ETL 数据仓库系统
  • 创建、设计和执行测试用例和测试计划
  • 测试平面文件数据传输

ETL 测试的未来前景

ETL 测试的前景非常光明。像 Informatica PowerCenter、Oracle Data Integrator、Microsoft SQL server integrated service、SAS、IBM infosphere information server 等 ETL 工具在行业中需求旺盛。ETL 测试的范围未来将会增加。

结论

ETL 测试是一种业务测试,其中涉及开发人员、业务分析师、最终用户和 DBA。ETL 测试需要 SDLCETL 策略 的知识,并且测试人员应该知道如何编写 SQL 查询。许多企业将 ETL 视为一项挑战,但事实是它对业务非常有益。保护数据免受丢失至关重要,并且必须更新数据以满足市场需求。

下一个主题ETL 架构