ETL测试简介

在将数据移动到生产数据仓库系统之前完成ETL测试。它也称为表平衡或产品协调。ETL测试与数据库测试的范围和测试期间遵循的步骤不同。ETL测试是为了确保转换后从源加载到目标的数据是准确的。它涉及在源和目的地之间使用的各个阶段的数据验证。

ETL测试简介

1. ETL测试的过程

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

ETL测试的过程

ETL测试分五个阶段进行,如下:

  • ETL测试可识别数据源和要求。
  • 数据恢复
  • 实现维度建模和业务逻辑。
  • 构建和填充数据
  • 构建报告

1. ETL测试的类型

ETL测试的类型是:

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

以下是不同用户群体的责任:

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

2. 生产验证测试:当数据移动到生产系统时,对数据进行此测试。Informatica数据验证选项提供ETL测试和管理功能的自动化,以确保数据不会危及生产系统。
3. 目标测试源(验证):完成此类测试以验证转换了预期数据值的数据值。
4. 应用程序升级:自动生成此类ETL测试,从而节省测试开发时间。此类测试检查从较旧的应用程序中提取的数据与新应用程序中的数据完全相同。
5. 元数据测试:元数据测试包括测量数据类型,数据长度和检查索引/约束。
6. 数据准确性测试:完成此测试是为了确保数据按预期准确加载和转换。
7. 数据转换测试:在许多情况下完成数据转换测试。通过编写一个源SQL查询并将输出与目标进行比较无法实现。需要为每一行运行多个SQL查询以验证转换规则。
8. 数据质量测试:数据质量测试包括语法和参考测试。为避免在业务流程期间由于日期或订单号而导致的任何错误,数据质量已完成。语法测试:它将根据无效字符,字符模式,不正确的大写或小写顺序等报告脏数据。参考测试:它将根据数据模型检查数据。例如,客户ID数据质量测试包括数字检查,日期检查,精确检查,日期检查等。

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

12. 更改请求:在这种情况下,数据已添加到现有数据仓库。可能存在客户需要更改当前业务规则的情况,或者他们可以集成新规则。
13. 报告测试:数据仓库的最终结果,报告测试。应通过验证报告中的数据和布局来测试。报告是创建重要业务决策的重要资源。

2. ETL测试执行的任务

ETL测试涉及的任务是:

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

3. ETL和数据库测试的区别

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

3.1. 在ETL测试中执行的操作

ETL测试涉及以下操作:

  • 验证从源到目标系统的数据移动。
  • 源系统和目标系统中的数据计数验证。
  • ETL测试根据要求和期望验证转换,提取。
  • ETL测试验证表关系是否在转换期间是否连接并且密钥是保留者。

在数据库测试中执行的操作

数据库测试侧重于数据准确性,数据的正确性和有效值。
数据库测试执行以下操作:

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

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

ETL和数据库测试的区别如下:

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

4. ETL性能测试

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

如何执行ETL测试性能?

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

第1步:找出生产中转化的负荷。
第2步:将创建相同负载的新数据或将其从生产数据移动到本地服务器。
第3步:禁用ETL,直到生成所需的代码。
第4步:从数据库表中计算所需的数据。
第5步:记下ETL的最后一次运行并启用ETL。它将获得足够的压力来转换已创建并运行它的整个负载。
第6步:完成ETL后,计算创建的数据。

应注意的基本表现:

  • 找出转换负载所需的总时间
  • 找出已改进或删除的性能。
  • 检查是否提取并转移了整个预期负载。

5. ETL测试的数据准确性

在ETL测试中,我们专注于数据准确性,以确保数据是否按照我们的预期准确加载到目标系统。
以下是执行数据准确性应遵循的步骤:

值比较:在值比较中,将源系统和目标系统中的数据与最小或无转换进行比较。可以使用各种ETL工具进行ETL测试。例如,Informatica中的源限定符转换。
表达式转换也可以在数据准确性测试中执行。可以在SQL语句中使用一组运算符来检查源和目标系统中的数据准确性。
检查关键数据列:可以通过比较源系统和目标系统中的不同值来检查关键数据列。

SELECT cust_name, order_id, city, count(*)  FROM customer GROUP BY cust_name, order_id, city;

6. 数据转换中的ETL测试

执行数据转换非常复杂,因为无法通过编写单个SQL查询并将输出与目标进行比较来实现。要对数据转换进行ETL测试,我们必须为每一行编写多个SQL查询以验证转换规则。

要为数据转换执行成功的ETL测试,需要从源系统中选择足够的样本数据以应用转换规则。

执行ETL测试以进行数据转换的重要步骤是:

第1步: 第一步是为输入数据和预期结果创建方案。现在我们将与业务客户验证ETL测试。ETL测试是在设计期间收集需求的最佳方法,可用作测试的一部分。
第2步:第二步是根据场景创建测试数据。ETL开发人员将使用场景电子表格自动化填充数据集的整个过程,以便在情况发生变化时提供多功能性和移动性。
第3步:利用数据分析,结果将比较源和目标数据之间每个字段中的值的范围和提交。
第4步:将验证ETL生成字段的准确处理。例如,代理键。
第5步:将验证仓库中与数据模型或设计中指定的数据类型相同的数据类型。
第6步:将在测试参照完整性的表之间创建数据的场景。
第7步:将验证数据中的父对子关系。
第8步:最后,我们将执行查找转换。查找查询应该是直接的,没有任何数据收集,并且预期根据源表只返回一个值。我们可以直接在源限定符中加入查找表。如果不是这种情况,我们将编写一个查询,它将查找表与源表中的主表连接,并将比较目标中相应列中的数据。

7. ETL测试用例

ETL测试的目的是确保业务转换后从源到目标的加载数据是准确的。
ETL测试适用于信息管理行业中的不同工具和数据库。
在ETL测试性能期间,ETL测试程序始终使用的两个文档是:

1. ETL映射表:ETL映射表包含源表和目标表的所有信息,包括每个列及其在引用表中的查找。ETL测试程序需要熟悉SQL查询,因为ETL测试可能涉及编写具有多个联接的大查询以在ETL的任何阶段验证数据。在编写数据验证查询时,ETL映射表提供了重要帮助。
2. 源(目标)的DB模式:应该可以访问它以验证映射表中的任何细节。

7.1. ETL测试场景和测试用例

ETL测试场景 测试用例
映射文档验证 将验证映射文档是否提供了ETL信息,日志更改应保留在每个映射文档中。
验证 1.将使用相应的映射文档验证目标和源表结构。2.源表和目标表的数据类型应该相同。3.源和目标的数据类型的长度应该相同。4.我们将验证数据字段类型和指定的格式。4.源数据类型的长度不应小于目标数据类型的长度。
约束验证 应根据用户的期望为特定表定义约束。
数据一致性问题 1.数据类型和特定属性的长度可以通过语义定义在文件或表中变化。2.完整性约束的滥用。
完整性问题 1.在这里,必须确保将所有预期的数据加载到目标表中。2.在源和目标之间比较记录计数。3.将检查被拒绝的记录。4.不应在截断表的列中截断数据。5.检查边界值分析。6.将比较仓库中加载的数据和源数据之间关键字段的唯一值。
正确性问题 1.此方案用于更正拼写错误或不准确记录的数据。2.要更正数据,则为null,非唯一且超出范围。
转型/转换 此方案用于检查转换。
数据质量 1.此方案用于检查数字并验证它。2.数据检查:此方案将遵循日期格式,并且对于所有记录应该相同。3.精确检查。4.数据检查。5. null检查
Null验证 此方案将验证null值,其中为特定列指定not null值。
重复检查 1.检查唯一键,主键和任何其他列的验证,根据具有任何重复行的业务需求,该列应该是唯一的。2.检查从多个列源中提取的任何列中是否存在任何重复值,并将它们组合成一列。3.根据客户端要求,需要确保在仅具有目标的多个列的组合中没有重复项。
日期验证 1.使用开发中的许多区域来了解行创建日期。2.根据ETL开发视角识别现有记录。3.有时在日期值上,会生成更新和插入。
数据清洁度 在加载到临时区域之前,应删除不必要的列。

7.2. ETL错误的类型

ETL错误的类型

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

8. ETL测试员的责任

ETL测试人员负责验证数据源,应用转换逻辑,并在目标表中加载数据,提取数据。

ETL测试人员的职责是:

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

    • 计数检查
    • 数据类型检查
    • 将记录与源数据协调
    • 确保未加载垃圾邮件数据
    • 删除重复数据
    • 检查所有密钥是否到位
  • 应用转换逻辑。在加载数据之前应用转换逻辑。它涉及以下操作:

    • 在检查计数记录之前和之后应用转换逻辑。
    • 验证从暂存区到中间表的数据流。
    • 检查数据阈值验证; 例如,年龄值不应超过100。
    • 检查代理键
  • 数据加载。数据从暂存区域加载到目标系统。它涉及以下操作:

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

9. ETL工具的测试

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

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

10. ETL测试的优点

ETL测试的好处/优点如下:

  • ETL测试可以同时从任何数据源提取或接收数据。
  • ETL可以同时将来自异构源的数据加载到单个通用(频繁)不同目标。
  • ETL可以同时加载不同类型的目标。
  • ETL能够从各种来源提取所需的业务数据,并且可能需要将业务数据作为所需格式加载到不同的目标中。
  • ETL可以根据业务执行任何数据转换。

11. ETL测试的缺点

ETL测试的缺点如下:

  • ETL测试的主要缺点之一是:必须是面向数据的开发人员或数据库分析师才能使用它。
  • 当需要快速响应时,它不适合实时或按需访问。
  • ETL测试需要几个月的时间才能放到任何地方。
  • 将数据保持在不断变化的要求中具有挑战性。

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

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

上一篇:ETL体系结构

下一篇:ETL测试工具

关注微信小程序
程序员编程王-随时随地学编程

扫描二维码
程序员编程王

扫一扫关注最新编程教程