ETL 测试/数据仓库测试-----技巧,技术,过程和挑战
上一篇 / 下一篇 2012-10-10 13:15:19 / 个人分类:杂谈
今天让我在休息之余给我的测试朋友介绍一个在我的测试沙龙上的需要和提升技能之一,例如ETL测试(Extract,Transform,and Load,中文名称为数据提取、转换和加载),这篇文章告诉你ETL 测试以及我们如果进行ETL测试过程的一个完整测试思想。
L1B2~ Yq-Qm#{0为什么企业需要数据仓库?51Testing软件测试网x;FP|0X8v(\.I
IT企业的实践希望在技术转型上创建一个新的台阶。他们不断尝试着让他们的产品伴随着互操作性数据而更加易于操作。据了解,数据已经成为企业最重要的一 部分,可能包括每天的数据或者历史数据。数据是任何报告的中坚力量,而这些报告是一个企业作为管理决策的至关重要的基准。51Testing软件测试网3}-aag/GTW
大多数公司下一步希望通过他们的数据仓库来储存和监控实时数据和历史数据。而构建一个有效的数据仓库并不是意见容易的事情。许多企业的不同部门运行分布式技术的不同程序上。为了使来自不同部门的不同数据源之间的一个完美的结合ETL工具被部署。ETL工具将工作作 为一个集成,从不同的数据源抽取数据,基于业务转换规则转换成最优形式,并且加载它到被称之为数据仓库的内聚性DB 中精心策划,明确界定和有效的测试范围,保证项目的顺利转换到生产中。确保数据仓库的真实性和健壮性,一旦ETL过程被独立的专家小组通过验证和确认,一 个企业将获得真正的市场前景
+l#G!f,k$h}ND0ETL测试或者数据仓库测试被划分为四个不同的过程,这与所用到的技术或者ETL工具无关。
f \AF-z0● 新数据仓库测试 - 新数据仓库通过爬取来构建和确认。数据输入来自于顾客需求和不同的数据源和新的数据仓库在ETL工具的帮助下进行构建和验证。51Testing软件测试网w/q:w^b*u]MF
● 迁移测试 - 这种类型的项目客户将有一个现有的数据仓库和ETL执行的工作,但他们想寻找新的工具包以提高工作效率。51Testing软件测试网$}v g4] _i$]6}
● 变更请求 - 这种类型的项目新数据从不同来源增加到现有数据仓库。此外,可能存在一种情况:客户的需要改变它们现有的业务规则,或者可能整合新的规则。51Testing软件测试网 x/M| De.xZ I'c
● 测试报告 - 测试报告是数据仓库的执行结果和数据仓库构建的初始目的。报告必须经过测试验证,数据也将被报告和计算。51Testing软件测试网 j4ME7|-FT3} _J'O
ETL测试技术:51Testing软件测试网:L0xn\9Ng#PZ(J
1)根据不同的业务需求和规则验证数据是否被正确地转化。51Testing软件测试网q8egR DB
2)确保所有预期的数据加载到数据仓库中没有任何数据丢失和截断。
xL ]L3h Ub03)确保ETL应用程序适当的拒绝,替换为默认值,并报告无效数据。
'E#g'h2R)Fw.pqNG04)确保数据在规定和预计的时间框架内被加载到数据仓库中,以确认改进的性能和可扩展性。51Testing软件测试网 kyN2H_'l? lThz'v
除了这4个主要的ETL测试方法外其他测试方法,如集成测试和用户验收测试也应该被实施来确保测试的稳定性和可靠性。
s `m*R%~&Z6l4m&b:]051Testing软件测试网)H3ya] Y1atETL测试过程:
9DF,y7B6\M0T \@lR%qG0 在独立验证与确认下,与任何其他测试一样,ETL也经历同样的阶段。51Testing软件测试网.Hm*`iyK1u
mB;o[.I,rI/r0 ● 业务和需求分析51Testing软件测试网+{[ J3LLS"b
51Testing软件测试网nL$efIZW@● 验证
,q ~8czlB051Testing软件测试网%e:fM:C k |c● 测试评估
%p'_ j"F4Mh#K)q(`D051Testing软件测试网 nIolyN NtPy● 从测试评估和业务需求的基础上进行测试计划制定51Testing软件测试网o0Eeg1q5}%S*?^p
j9d.{`W0 ● 从所有可用的输入条件来设计测试用例和测试场景51Testing软件测试网3E]$QD+ax.O'b
51Testing软件测试网-A*hB&a Ai-hXS● 一旦所有的测试案例已经准备和评审,测试团队执行预检查和准备测试数据进行测试51Testing软件测试网];c.Me Ma*B
51Testing软件测试网 RC`:L^ ]e$}U● 执行所有用例直到满足退出标准51Testing软件测试网6Db%O&[.q+]y Y pV
51Testing软件测试网{v2\a4p${^5v1\● 书写总结报告和测试过程结束。
&@(sH { U^9R0Hf9c:w6Zh0 数据库测试与数据仓库测试的不同:51Testing软件测试网 b}!lo:rlr(t
51Testing软件测试网vmsFWgp3V● 数据库的测试和数据仓库是相似的这是一个普遍的误区,而事实是它们有截然不同的测试方向51Testing软件测试网VX_V%w'IhD S
|Yk1Q?-Ds1n:j0 ● 数据库测试使用规模较小的数据通常是OLTP(联机事务处理)的数据库类型,而数据仓库测试是大容量的数据,涉及的是OLAP(联机分析处理)数据库。51Testing软件测试网STLLM a^9z O
51Testing软件测试网}"B'Juu.y G● 数据库测试通常是从统一数据源中持续注入,而数据仓库测试的数据来自不同类型的数据源且数据是不连续和无序的。
[6U@)[/B^9J/Z(|06VZS;f(c+{7p#F/hv0 ● 我们在进行数据库测试时一般只执行CRUD(Create, read, update and delete),而在数据仓库的测试时我们只读(select)操作。
.[#Y9EY0PM051Testing软件测试网2t%V#y8_1b● 标准化的数据库被用于DB测试中,而历史DB则被使用在数据仓库测试中。
*Plx.M1D0@8N%~+d8nMi1X0 许多普遍验证对进行任何形式的数据仓库测试都将要实施。
:BL} ? R v051Testing软件测试网7a;nTjgK下面列表中的对象被视为在ETL测试的必要验证点:51Testing软件测试网$CJr/N:lx!J5B
51Testing软件测试网9x{Y&?^xo*yu- 验证数据从源到目的地的转换是否如预期般运作51Testing软件测试网^#pf\ M0E'oLE
51Testing软件测试网 d/a!lr P'C- 验证预期数据被添加到目标系统
mDRdQ1hwG0&h0V9N!re051Testing软件测试网(uz[5eVZ I
- 确认所有的数据库字段,字段数据加载没有任何截断51Testing软件测试网j:x{?v)BT]
3W}!S M.g&c0 - 验证记录计数匹配的数据校验51Testing软件测试网HlQ4O2X;Q
51Testing软件测试网sW%y*?q3T- 验证被拒绝的数据的错误日志都有详细记录