ETL 测试
ETL(提取、转换和加载)测试
ETL 测试在数据移动到生产数据仓库系统之前完成。它也称为表平衡或产品对帐。 ETL 测试的范围和测试过程中遵循的步骤与数据库测试不同。
ETL 测试是为了确保转换后从源加载到目标的数据是准确的。它涉及各个阶段的数据验证,用于源和目标之间。
ETL 测试流程
与其他测试流程一样,ETL 测试也经过一些测试流程。
ETL 测试分五个阶段进行。
- ETL 测试确定数据源和要求。
- 数据恢复
- 实施维度建模和业务逻辑。
- 构建和填充数据
- 构建报告
ETL测试的类型
ETL测试的类型有:
1.新数据仓库测试: 它是从核心构建和验证的。在此测试中,输入来自客户的需求和不同的数据源。但是,新的数据仓库是在 ETL 工具的帮助下构建和验证的。
以下是不同组的职责:
- 业务分析师: 业务分析师收集并记录要求。
- 基础设施人员: 这些人员设置了测试环境。
- QA 测试人员: QA 测试人员制定测试计划和测试脚本,然后执行这些测试计划和脚本。
- 开发人员: 开发人员为每个模块执行单元测试。
- 数据库管理员: 数据库管理员测试性能和压力。
- 用户: 用户进行功能测试,其中包括 UAT(用户验收测试)。
2.生产验证测试: 此测试是在数据移至生产系统时对数据进行的。 Informatica 数据验证选项提供 ETL 测试和管理功能的自动化,以确保数据不会危及生产系统。
3.源到目标测试(验证): 这种类型的测试是为了验证转换为预期数据值的数据值。
4.应用升级: 这种类型的ETL测试是自动生成的,节省了测试开发时间。这种类型的测试检查从旧应用程序中提取的数据与新应用程序中的数据完全相同。
5.元数据测试: 元数据测试包括数据类型、数据长度、校验指标/约束的测量。
6.数据准确性测试: 进行此测试是为了确保数据按预期准确加载和转换。
7.数据转换测试: 在许多情况下进行数据转换测试。它无法通过编写一个源 SQL 查询并将输出与目标进行比较来实现。需要为每一行运行多个 SQL 查询来验证转换规则。
8.数据质量测试: 数据质量测试包括语法和参考测试。为避免在业务流程数据质量期间因日期或订单号而出现任何错误。 语法测试: 它会根据无效字符、字符模式、不正确的大写或小写顺序等报告脏数据。参考测试: 它会根据
例如,Customer ID数据质量检测包括数字校验、日期校验、精度校验、日期校验等
>9.增量 ETL 测试: 进行此测试是为了在添加新数据时检查旧数据和新数据的数据完整性。增量测试验证系统即使在增量 ETL 过程中插入和更新数据后也能正确处理。
10. GUI/导航测试: 此测试用于检查前端报告的导航或 GUI 方面。
11.迁移测试: 在此测试中,客户有一个现有的数据仓库,并且 ETL 正在执行这项工作。但客户正在寻找提高效率的工具。它包括以下步骤:
- 设计和验证测试
- 设置测试环境
- 执行验证测试
- 报告错误
12.变更请求: 在这种情况下,数据添加到现有数据仓库。可能会出现客户需要更改现有业务规则或集成新规则的情况。
13.报告测试: 数据仓库的最终结果,报告测试。报告应通过验证报告中的数据和布局进行测试。报告是制定重要业务决策的重要资源。
ETL 测试中执行的任务
ETL 测试中涉及的任务是:
- 了解数据,用于报告
- 数据模型审查
- 源到目标的映射
- 检查源数据中的数据
- 验证包和架构
- 在目标系统中,应进行数据验证
- 聚合规则验证和数据转换计算
- 目标系统与数据源的数据对比
- 对于目标系统,应检查质量和数据完整性。
- 数据性能测试。
ETL 和数据库测试的区别
ETL 和数据库测试涉及数据验证,但两者并不相同。 ETL 测试通常在数据仓库中的数据上执行,而数据库测试在事务系统上执行。数据从不同的应用程序进入事务数据库。
ETL 测试中执行的操作
ETL 测试涉及以下操作:
- 验证从源系统到目标系统的数据移动。
- 源系统和目标系统中的数据计数验证。
- ETL 测试根据要求和预期验证转换、提取。
- ETL 测试可验证表关系连接和键是否在转换过程中保留。
数据库测试中执行的操作
数据库测试侧重于数据的准确性、数据的正确性和有效值。
数据库测试执行以下操作:
- 数据库测试侧重于验证表中具有有效数据值的列。
- 为了验证是否维护了主键或外键,使用了数据库测试。
- 数据库测试验证列中是否缺少数据。在这里,我们检查列中是否有任何应具有有效值的空值?
- 我们验证列中数据的准确性。
例如,"月份数"列的值不应大于 12、
功能 | ETL 测试 | 数据库测试 |
主要目标 | 针对 BI 报告的数据提取、转换和加载执行 ETL 测试。 | 执行数据库测试以验证和集成数据。 |
业务需求 | 用于信息、预测和分析报告的 ETL 测试。 | 此测试用于集成来自多个应用程序和服务器影响的数据。 |
适用制度 | ETL 测试包含无法在业务流程环境中使用的历史数据。 | ETL 测试包含发生业务流的事务系统。 |
建模 | 采用多维方法。 | 使用ER方法。 |
数据库类型 | ETL 测试应用于 OLAP 系统。 | 数据库测试用于OLTP系统。 |
数据类型 | ETL 使用具有更少连接、更多索引和聚合的非规范化数据。 | 数据库使用带有连接的规范化数据。 |
常用工具 | 使用了QuerySurge、Informatica等工具。 | QTP、Selenium 工具用于数据库测试。 |
ETL 性能测试
ETL 性能测试用于确保ETL 系统是否可以处理多个用户和事务的预期负载。性能测试涉及 t 上的服务器端工作负载ETL系统。
如何进行ETL测试性能?
以下是测试ETL测试性能的步骤:
第 1 步: 找到在生产中转换的负载。
第 2 步: 将创建相同负载的新数据或将其从生产数据移至本地服务器。
第 3 步: 现在,我们将禁用 ETL,直到生成所需的代码。
第 4 步: 我们将从数据库表中计算所需的数据。
第 5 步: 我们将记下 ETL 的最后一次运行并启用ETL。它会得到足够的压力来转换创建并运行它的整个负载。
第 6 步: ETL 完成后,我们将统计创建的数据。
应注意的基本性能:
- 找出转换负载所需的总时间
- 找出改进或下降的性能。
- 我们将检查是否提取并转移了整个预期负载。
ETL 测试中的数据准确性
在ETL 测试中,我们专注于数据准确性,以确保数据是否按照我们的预期准确加载到目标系统。
以下是执行数据准确性应遵循的步骤:
值比较: 在值比较中,我们将源系统和目标系统中的数据进行最小转换或不进行转换。 ETL 测试可以通过使用各种 ETL 工具来实现。例如,Informatica 中的 Source Qualifier Transformation。
Expression Transformation 也可以在数据准确性测试中执行。 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 信息。日志更改应该在每个映射文档中维护。 |
验证 |
|
约束验证 | 应该按照我们的期望为特定表定义约束。 |
数据一致性问题 |
|
完整性问题 |
|
正确性问题 |
|
转型 |
|
数据质量 |
|
空验证 |
|
重复检查 |
|
日期验证 |
|
数据清洁 |
|
ETL 错误的类型 | 说明 |
用户界面错误 | 这些错误与应用程序的图形用户界面有关,例如颜色、字体样式、导航、拼写检查等。 |
输入输出错误 | 在这种类型的错误中,应用程序开始取无效值,有效值被拒绝。 |
边界值分析错误 | 这些错误检查最小值和最大值。 |
计算错误 | 计算错误显示数学错误,大多数时候最终输出是错误的。 |
加载条件错误 | 这些类型的错误不允许多个用户。它不允许用户接受的数据。 |
比赛条件错误 | 在此类错误中,系统将无法正常运行。它开始崩溃或挂起。 |
等价类分区错误 | 此类错误导致无效或无效类型。 |
版本控制错误 | 这些类型的错误通常发生在回归测试中,并且不会提供任何版本信息。 |
硬件错误 | 在这种类型的错误中,设备不会按预期响应应用程序。 |
帮助来源错误 | 这个bug会导致帮助文档中的错误。 |
ETL测试员职责
ETL测试员负责验证数据源,应用转换逻辑,加载目标表中的数据,提取数据。
ETL测试员的职责是:
验证源系统中的表。它涉及到以下几类操作:
- 计数检查
- 数据类型检查
- 将记录与源数据核对
- 确保没有加载垃圾邮件数据
- 删除重复数据
- 检查所有钥匙是否到位
应用转换逻辑
在加载数据之前应用转换逻辑。它涉及以下操作:
- 在检查计数记录之前和之后应用转换逻辑。
- 验证从暂存区到中间表的数据流。
- 检查数据阈值验证;例如,年龄值不应超过 100。
- 检查代理键
数据加载
数据从暂存区加载到目标系统。它涉及以下操作:
我们将检查是否在事实表中加载了聚合值和计算度量。
- 在加载数据期间,我们将根据目标表检查建模视图。
- 我们将检查 CDC 是否已应用于增量加载表。
- 检查数据维度表并查看该表的历史记录。
- 根据预期结果检查基于加载的事实和维度表的 BI 报告。
ETL 工具的测试
ETL 测试人员也需要测试测试用例和工具。它涉及以下操作:
- 测试 ETL 工具及其功能
- 测试 ETL 数据仓库系统
- 创建、设计和执行测试用例和测试计划
- 测试平面文件数据传输
ETL测试的优点
ETL测试的好处如下:
- ETL 测试可以同时从任何数据源提取或接收数据。
- ETL 可以将来自异构源的数据同时加载到单个广义(频繁)\不同的目标。
- ETL 可以同时加载不同类型的目标。
- ETL 能够从各种来源提取所需的业务数据,并且可以根据需要将业务数据以所需格式加载到不同的目标中。
- ETL 可以根据业务进行任何数据转换。
ETL测试的缺点
ETL测试的缺点如下:
- ETL 测试的主要缺点之一是我们必须是面向数据的开发人员或数据库分析师才能使用它。
- 当我们需要快速响应时,它不适合实时或按需访问。
- ETL 测试需要几个月的时间才能在任何地方进行。
- 在不断变化的需求中保持数据具有挑战性。
heading:
ETL 测试人员也需要测试测试用例和工具。它涉及以下操作:
- 测试 ETL 工具及其功能
- 测试 ETL 数据仓库系统
- 创建、设计和执行测试用例和测试计划
- 测试平面文件数据传输
ETL 测试的未来范围
ETL 测试的范围非常广阔。 Informatica PowerCenter、Oracle Data Integrator、Microsoft SQL 服务器集成服务、SAS、IBM 信息领域信息服务器等ETL工具都因其需求而在行业中有着巨大的需求。未来 ETL 测试的范围将会扩大。
结论
ETL 测试是一种业务测试,其中开发人员、业务分析师、最终用户、和 DBA 都参与其中。 ETL 测试需要SDLC 和ETL 策略 的知识,并且测试人员应该知道如何编写SQL 查询。许多企业认为 ETL 是一项挑战,但事实是它对企业有利。保护数据不丢失是必不可少的,并且需要更新数据以满足市场的要求。
下一章:ETL 工具
什么是 ETL 工具?提取、转换和加载可帮助组织使数据在不同的数据系统中可访问、有意义和可用。 ETL 工具是一种用于提取、转换和加载数据的软件。在当今数据驱动的世界中,无论大小如何,都会从各种组织、机器和小工具生 ...