ETL测试
今天让我在休息之余给我的测试朋友介绍一个在我的测试沙龙上的需要和提升技能之一,例如ETL测试(Extract,Transform,and Load,中文名称为数据提取、转换和加载),这篇文章告诉你ETL 测试以及我们如果进行ETL测试过程的一个完整测试思想。
为什么企业需要数据仓库?
IT企业的实践希望在技术转型上创建一个新的台阶。他们不断尝试着让他们的产品伴随着互操作性数据而更加易于操作。据了解,数据已经成为企业最重要的一 部分,可能包括每天的数据或者历史数据。数据是任何报告的中坚力量,而这些报告是一个企业作为管理决策的至关重要的基准。
大多数公司下一步希望通过他们的数据仓库来储存和监控实时数据和历史数据。而构建一个有效的数据仓库并不是意见容易的事情。许多企业的不同部门运行分布式技术的不同程序上。为了使来自不同部门的不同数据源之间的一个完美的结合ETL工具被部署。ETL工具将工作作 为一个集成,从不同的数据源抽取数据,基于业务转换规则转换成最优形式,并且加载它到被称之为数据仓库的内聚性DB 中精心策划,明确界定和有效的测试范围,保证项目的顺利转换到生产中。确保数据仓库的真实性和健壮性,一旦ETL过程被独立的专家小组通过验证和确认,一 个企业将获得真正的市场前景
ETL测试或者数据仓库测试被划分为四个不同的过程,这与所用到的技术或者ETL工具无关。
● 新数据仓库测试 - 新数据仓库通过爬取来构建和确认。数据输入来自于顾客需求和不同的数据源和新的数据仓库在ETL工具的帮助下进行构建和验证。
● 迁移测试 - 这种类型的项目客户将有一个现有的数据仓库和ETL执行的工作,但他们想寻找新的工具包以提高工作效率。
● 变更请求 - 这种类型的项目新数据从不同来源增加到现有数据仓库。此外,可能存在一种情况:客户的需要改变它们现有的业务规则,或者可能整合新的规则。
● 测试报告 - 测试报告是数据仓库的执行结果和数据仓库构建的初始目的。报告必须经过测试验证,数据也将被报告和计算。
ETL测试技术:
1)根据不同的业务需求和规则验证数据是否被正确地转化。
2)确保所有预期的数据加载到数据仓库中没有任何数据丢失和截断。
3)确保ETL应用程序适当的拒绝,替换为默认值,并报告无效数据。
4)确保数据在规定和预计的时间框架内被加载到数据仓库中,以确认改进的性能和可扩展性。
除了这4个主要的ETL测试方法外其他测试方法,如集成测试和用户验收测试也应该被实施来确保测试的稳定性和可靠性。
ETL测试过程:
在独立验证与确认下,与任何其他测试一样,ETL也经历同样的阶段。
● 业务和需求分析
● 验证
● 测试评估
● 从测试评估和业务需求的基础上进行测试计划制定
● 从所有可用的输入条件来设计测试用例和测试场景
● 一旦所有的测试案例已经准备和评审,测试团队执行预检查和准备测试数据进行测试
● 执行所有用例直到满足退出标准
● 书写总结报告和测试过程结束。
数据库测试与数据仓库测试的不同:
● 数据库的测试和数据仓库是相似的这是一个普遍的误区,而事实是它们有截然不同的测试方向
● 数据库测试使用规模较小的数据通常是OLTP(联机事务处理)的数据库类型,而数据仓库测试是大容量的数据,涉及的是OLAP(联机分析处理)数据库。
● 数据库测试通常是从统一数据源中持续注入,而数据仓库测试的数据来自不同类型的数据源且数据是不连续和无序的。
● 我们在进行数据库测试时一般只执行CRUD(Create, read, update and delete),而在数据仓库的测试时我们只读(select)操作。
● 标准化的数据库被用于DB测试中,而历史DB则被使用在数据仓库测试中。
许多普遍验证对进行任何形式的数据仓库测试都将要实施。
下面列表中的对象被视为在ETL测试的必要验证点:
- 验证数据从源到目的地的转换是否如预期般运作
- 验证预期数据被添加到目标系统
- 确认所有的数据库字段,字段数据加载没有任何截断
- 验证记录计数匹配的数据校验
- 验证被拒绝的数据的错误日志都有详细记录
- 验证NULL值字段
- 验证重复数据未加载
- 验证数据的完整性
ETL测试的挑战:
ETL测试不同于传统的测试,在执行数据仓库测试时我们面临着许多挑战。一下我列出来一些我经历的项目中的ETL测试的挑战:
- 不兼容性和重复数据。
- 在ETL过程中的数据丢失。
- 不可用包容性的试验床。
- 测试人员自己没有权限去执行ETL工作
- 数据的数量和复杂性是非常巨大的。
- 业务流程和程序的故障。
- 获取和构建测试数据的困难。
- 缺少业务流程的信息。
数据作为企业的关键业务决策起着重要作用。ETL测试在确认业务数据提取,一致性,可靠性中是发挥着重要的作用,同时,它在使我们产品数据丢失减小至最小。希望这些技巧能够帮助你的企业ETL过程的确认,以及数据仓库建立发挥一个重要的作用。
原文出处:http://www.softwaretestinghelp.com/etl-testing-data-warehouse-testing
还有一篇为:http://www.51testing.com/html/47/n-3722547.html
ETL测试的更多相关文章
- ETL测试教程
在我们了解ETL测试之前,先了解有关商业智能和数据仓库的重要性. 让我们开始吧 - 什么是BI? 商业智能是收集原始数据或业务数据并将其转化为有用和更有意义的信息的过程. 原始数据是一个组织每日事务的 ...
- [大数据测试]ETL测试或数据仓库测试入门
转载自: http://blog.csdn.net/zhusongziye/article/details/78633934 概述 在我们学习ETL测试之前,先了解下business intellig ...
- ETL测试基本知识
转载自: https://www.cnblogs.com/clarke157/p/6383024.html 一.ETL测试的重要性: ETL(Extract-Transform-Load的缩写,即数据 ...
- 大数据测试之ETL测试工具和面试常见的问题及答案
转载自: http://www.51testing.com/html/87/n-3722487.html 概述 商业信息和数据对于任何一个企业而言都是至关重要的.现在很多公司都投入了大量的人力.资金和 ...
- ETL测试小结
一.ETL测试的重要性: ETL(Extract-Transform-Load的缩写,即数据抽取.转换.装载的过程)作为BI/DW(Business Intelligence)的核心和灵魂,能够按照统 ...
- ETL测试场景和测试用例设计
前段时间做了些数据测试相关的工作,找了些相关方面的资料,也跟一些一线厂的同学聊了下数据测试方面的东西,然后在团队内部形成了一个初级的数据测试的规范流程以及测试需要进行的场景设计和测试用例设计的方案. ...
- ETL测试或数据仓库测试入门
概述 在我们学习ETL测试之前,先了解下business intelligence(即BI)和数据仓库. 什么是BI? BI(Business Intelligence)即商务智能,它是一套完整的解决 ...
- [原创] 浅谈ETL系统架构如何测试?
[原创] 浅谈ETL系统架构如何测试? 来新公司已入职3个月时间,由于公司所处于互联网基金行业,基金天然固有特点,基金业务复杂,基金数据信息众多,基金经理众多等,所以大家可想一下,基民要想赚钱真不容易 ...
- ETL的测试
二.ETL测试过程: 在独立验证与确认下,与任何其他测试一样,ETL也经历同样的阶段. 1)业务和需求分析并验证. 2)测试方案编写 3)从所有可用的输入条件来设计测试用例和测试场景进行测试 4)执行 ...
随机推荐
- 初期测评 E 迷障
https://vjudge.net/contest/240302#problem/E 通过悬崖的yifenfei,又面临着幽谷的考验—— 幽谷周围瘴气弥漫,静的可怕,隐约可见地上堆满了骷髅.由于此处 ...
- vue 笔记1
created 钩子可以用来在一个实例被创建之后执行代码: new Vue({ data: { a: 1 }, created: function () { // `this` 指向 vm 实例 co ...
- 相见恨晚的 scala - 01 [ 基础 ]
简洁到不行,多一个分号都是不应该. 学习笔记: centOS 下安装 scala 和安装 jdk 一毛一样 . 1 . 不同于 Java 的变量声明 :( 但是和 js 很像 ) /** * Crea ...
- Java并发知识点总结
前言:Java语言一个重要的特点就是内置了对并发的支持,让Java大受企业和程序员的欢迎.同时,如果想要提升自己的技术,Java并发知识必不可少,这里简单整理了一些相关内容,希望可以起到抛砖引玉的作用 ...
- 用java和junit编写app自动化测试用例
package myTest; import static org.junit.Assert.*; import io.appium.java_client.android.AndroidDriver ...
- 02.基于IDEA+Spring+Maven搭建测试项目--详细过程
一.背景介绍 1.1公司相关技术 Git:是一款免费的开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目,方便多人集成开发 Maven:是基于项目对象模型(POM),可以通过一小段描述信息 ...
- hihocoder1711 评论框排版[并查集+set]
#include <cstdio> #include <iostream> #include <set> using namespace std; ; struct ...
- 初探Java 9 的的模块化
Java 9中最重要的功能,毫无疑问就是模块化(Module),它将自己长期依赖JRE的结构,转变成以Module为基础的组件,当然这在使用Java 9 开发也和以前有着很大的不同. Java8或更加 ...
- Subsets II - LeetCode
目录 题目链接 注意点 解法 小结 题目链接 Subsets II - LeetCode 注意点 有重复的数字 数组可能是无序的,要先排序 解法 解法一:递归,只需要在Subsets中递归写法的基础上 ...
- 【ARC069F】Flags
Description 数轴上有 \(n\)个旗子,第\(i\)个可以插在坐标\(x_i\)或者\(y_i\). 请最大化两两旗子之间的最小距离. \(2 \le n \le 10^4\),\ ...