数据库测试与ETL测试
数据测试
考虑到数据库测试和ETL测试是相似和相同的,我们大多数人都很困惑。事实是它们相似但不相同。

数据库测试通常广泛用于业务流程,其中应用程序中存在多个数据流,从多个数据源到单个表。数据源可以是表,文件,应用程序或任何其他可以产生一些输出数据的东西。反过来,获得的输出数据仍然可以用作顺序业务流的输入。因此,当我们执行数据库测试时,必须捕获的最重要的事情是数据从源转换的方式以及它在目标位置的保存方式。
同步是一项主要任务,也是执行数据库测试时必须考虑的重要事项。由于应用程序在体系结构流中的定位,数据或数据库同步可能存在少量问题。因此,在执行测试时,必须注意这一点,因为这可以克服潜在的无效缺陷或错误。
示例1:
项目“A”具有集成的体系结构,其中特定应用程序利用来自其他几个异构数据源的数据。因此,必须与以下方面的验证一起完成这些数据与目标位置的完整性:
- 主要外键验证
- 列值完整性
- 任何列的空值
ETL测试

ETL测试是一种特殊类型的测试,客户希望将其用于预测和分析业务,主要用于报告。例如,如果客户需要根据他们购买的当天报告使用或购买产品的客户,则他们必须使用ETL报告。
在分析和报告后,这些数据是存储在数据仓库中的数据,在该数据仓库中必须移动旧的历史业务数据。
示例2:
我们将考虑通过购物市场进行零售客户业务的“A”组,其中客户可以购买他们日常生存所需的任何家庭用品。在这里,所有访问的客户都有一个独特的会员ID,每次他们从购物市场购买东西时,他们都可以获得积分。该组织提供的法规规定,所获得的积分每年都会到期。根据其使用情况,会员资格可以升级为更高级别的会员,也可以降级为较低级会员。经过5年的购物市场建立,管理层正在寻求扩大业务和收入。
因此需要商业报告。
数据库测试关注
1)目标表的验证,这些目标表是使用逻辑映射表和数据路由文档中描述的具有逻辑计算的列创建的。
2)可以在集成系统中的任何最终用户POS应用程序以及后端数据库上执行诸如插入,更新和删除客户数据之类的操作,以便在终端系统中反映相同的更改。
3)数据库测试必须确保没有被误解或甚至截断的客户数据。这可能会导致严重的问题,例如客户数据与忠诚度的错误映射

ETL测试关注
1)假设源中有100个客户,您将检查所有这些客户及其来自100行的数据是否已从源系统移动到目标。这称为数据完整性检查的验证。
2)检查客户数据是否已被正确操作并在100行中显示。这简称为数据准确性检查的验证。
3)针对在特定时期内获得超过x值的客户的报告。
ETL与DB测试的比较
|数据库测试 |ETL测试
:--:|:----:|:----:
主要目标 |数据集成 |BI报告
适用场所 |在业务流程发生的功能系统中 |业务流程环境外部。输入是历史业务数据
自动化工具 |Selenium等 |Informatica,QuerySurge,COGNOS等
业务影响 |严重影响。是业务流程的集成架构 |潜在影响,预测和分析
模型 |实体关系 |维度建模
系统 |在线事务处理 |在线分析处理
数据性质 | 规范化数据 |非规范化数据

关键的ETL需求
据我们了解,ETL需要预测,报告和分析业务,以便以更连续的方式捕获客户需求。这将使企业比过去有更高的要求。
以下是一些关键需求,如果没有这些需求,无法实现ETL测试:
- 数据和表格识别 - 这很重要,因为在预测和分析客户需求时,可能存在许多其他不相关和不必要的数据。因此,必须在启动ETL工作之前选择相关数据和表。
- 映射表 - 这是ETL工作时的关键需求之一。必须将源表从源映射到目标,并且此表中的任何问题或不正确的数据都可能影响整个ETL可交付项。
- 表设计和数据,列类型 - 在考虑将源表映射到目标表时,这是下一个主要步骤。列类型必须与两个位置的表匹配。
- 数据库访问 - 主要是访问ETL所在的数据库。对访问的任何限制都会产生同等的影响。
ETL报告和测试
ETL中的报告更为重要,因为它解释并指导客户需要的客户。通过这种方式,他们可以预测和分析确切的客户需求
示例3:
制造丝绸面料的公司想要分析其年销售额。在审查他们的年销售额时,他们发现在8月和9月期间,使用他们生成的报告导致销售额大幅下降。因此,他们决定推出促销活动,如交易所,折扣等,从而提高了销售额。
ETL测试中的基本问题
执行ETL测试时可能会出现许多问题,如下所示:
- 源表或视图的访问将无效。
- 源到下一层的列名和数据类型可能不匹配。
- 源表到目标表的许多记录可能不匹配。
- 还有更多......
ETL测试计划和执行时要记住的要点
ETL测试中最重要的事情是根据源DB中的提取标准加载数据。当此标准无效或过时时,表中将没有数据可以执行真正带来更多问题的ETL测试。
以下是ETL测试计划和执行时需要注意的几点:
- 从异构数据源中提取数据
- 集成环境中ETL过程处理有不同之处:DBMS、OS、硬件、通信协议
- 转换物理数据之前拥有逻辑数据映射表
- 解和检查数据源
- 全量和增量加载
- 审核列
- 事实和维度
参考资料
- python测试开发项目实战-目录
- python工具书籍下载-持续更新
- python 3.7极速入门教程 - 目录
- 讨论qq群630011153 144081101
- 原文地址
- 本文涉及的python测试开发库 谢谢点赞!
- 本文相关海量书籍下载
- https://www.softwaretestinghelp.com/data-migration-testing/
- https://www.softwaretestinghelp.com/etl-testing-vs-db-testing/
ETL工具及其重要用途
ETL工具基本上用于构建和转换转换逻辑,方法是将数据从源转换为应用转换逻辑的另一个。您还可以以独特的方式将源模式从源映射到目标,在将数据移动到目标之前转换和清理数据,以及以有效的方式在目标上加载。
这可以显着减少手动工作,因为可以完成用于几乎所有ETL验证和验证的映射。
- Informatica - PowerCente
有非常好的客户群,涵盖广泛的领域。该工具的主要组件是其用于客户端的工具以及存储库工具和服务器。 参考
更多ETL测试用例:
考虑到一些航空公司想要推出促销和优惠以策略性地吸引客户。首先,他们将尝试根据客户的规格了解需求和需求。为了实现这一点,他们将需要历史数据,优选前2年的数据。使用这些数据,他们将分析并准备一些有助于了解客户需求的报告。
报告可以是以下类型:
- 来自A区的客户在某些日期前往B区
- 具有特定年龄标准的客户前往XX市
- 其他
分析这些报告将有助于客户确定有利于客户的促销和优惠类型,同时可以使业务受益,从而实现双赢局面。这可以通过ETL测试和报告轻松实现。
与此同时,IT部门面临严重的数据库问题,已经注意到已经停止多项服务,反过来又有可能对业务造成影响。经过调查,发现一些无效数据已损坏了需要手动纠正的少数数据库。
在前一种情况下,需要ETL报告和测试。
而后一种情况是必须正确完成数据库测试以克服无效数据问题。
网友评论