当前位置:文档之家› BI项目测试方法

BI项目测试方法

赛意信息科技有限公司
BI测试范围
可以用如下几个测试用例来验证上图中数据仓库的数据传输后的数据准确性: Select count(1) from 数据源 inner join 关联表 on数据源 .A =关联表.A Inner join 目的
表 on关联表.A1 =目的表A1 And 数据源.B=目的表.B And 数据源.C =目的表 .C Where 数据源.Value1 <>目的表.Value1 Select count(1) from 数据源 inner join 关联表 on数据源 .A =关联表.A Inner join 目的 表 on关联表.A1 =目的表A1 And 数据源.B=目的表.B And 数据源.C =目的表 .C Where 数据源. Value2 <>目的表.Value2 Select count(1) from 数据源 inner join 关联表 on数据源 .A =关联表.A Inner join 目的 表 on关联表.A1 =目的表A1 And 数据源.B=目的表.B And 数据源.C =目的表 .C Where 数据源.Value3 <>目的表.Value3 Select count(1) from 数据源 inner join 关联表 on数据源 .A =关联表.A Inner join 目的 表 on关联表.A1 =目的表A1 And 数据源.B=目的表.BAnd 数据源.C =目的表 .C Where 数据源.Value4 <>目的表.Value4 或者可以用一个SQL语句实现如上所有的功能: Select count(1) from 数据源 inner join 关联表 on数据源 .A =关联表.A Inner join 目的 表 on关联表.A1 =目的表A1 And 数据源.B=目的表.B And 数据源.C =目的表 .C Where 数据源.Value1 <>目的表.Value1 Or 数据源.Value2 <>目的表.Value2 Or 数据源.Value3 <>目的表.Value3 Or 数据源.Value4 <>目的表.Value4 对于精度误差问题,可以用“ ABS(数据源.Value -目的表.Value) <0.001” (注:假设0.001 是允许误差)来代替“数据源.Value <>目的表.Value” 如果以上测试用例返回不等于0的值,则说明数据传输和转换失败或错误。
使BO在企业报表领域的功能加强 使Hyperion 的BI工具更多的覆盖在业务部门
Actuate收购Nimble Technologies Nimble Technologies是一家资料整合公司
Ascential收购Mercator
两家公司都属于交易处理软件开发领域的厂商
2004年 Cognos收购Frango IBM收购SRD
赛意信息科技有限公司
主流BI厂商及产品 国际BI厂商
国内BI厂商
赛意信息科技有限公司
日期
主流BI厂商及产品
事件
备注
Cognos公司并购软件公司Adaytum Adaytum是一家商业软件的开发厂商
Business Objects公司(简称BO)收购 Crystal Decisions
2003年 Hyperion(海博龙)收购Brio
关系测试 数据仓库中各种表之间存在这一种关系。这种关系即是人们早 已熟知的“参照完整性”。“参照完整性”测试是数据仓库测 试的一个重要模块。“参照完整性”也称为“引用完整性”( 在本文中统一称为参照完整性),参照完整性指添加,修改或 删除记录时,表间的关联性不可破坏。在SQL Server中,参照 完整性基于主键与外键或唯一键(Unique)与外键的关系。参 照完整性确保在各个关联的表中的值是一致的【1】。 对于 数据仓库,存在着事实表(Fact Table)和维度表( Dimension Table),如果删除维度表中的某条记录,那么对 应的事实表也必须删除相关记录, 如果事实表插入新的记录, 那么维度表也必须插入相关的记录。
2、测试表是否完整正确:
赛意信息科技有限公司
BI测试范围
2、测试表是否完整正确: 表的完整性测试主要是指表的结构必须和ER 图相一致,在
这个测试部分必须测试 以下几个部分: 首先,需要验 证目的表的字段是否和ER图相同,目的表不能增加也不 能丢失任何 字段; 其次,需要对每一个字段的数据类 型进行验证,如INT不能是BIGINT类型,或者 CHAR不 能是VARCHAR类型;再次,对每一个数据类型的长度 进行验证,数据类型 长度太长会降低系统的性能,而数 据类型太短则会影响数据的精度。最后,必须对每一个 字段的约束进行验证,如该字段是否允许为空,是否是 能自增 长等。 在SQL2000系统中,可以使用“SP_HELP 表名”得到测试 表的结构信息。
赛意信息科技有限公司
BI测试范围
如下图所示,有一个事实表和五个维度表(维度 表A,维度表B,维度表C,维度表D,维度表E) ,这六个表通过主外键关系相关联。事实表和维 度表A通过A_ID建立参照完整性的关系;同样, 事实表和维度表B通过B_ID建立参照完整性的关系 ;事实表和维度表C通过C_ID建立参照完整性的关 系;事实表和维度表D通过D_ID建立参照完整性 的关系;事实表和维度表E通过E_ID建立参照完整 性的关系。因此,作为测试人员必须至少写5个测 试用例来测试这个参照完整性。
按照需求说明书验证该维度是否是3个级别,在验证每个级 别是否和需求一致。
赛意信息科技有限公司
BI测试范围 ❖ 数据仓库测试(以HOLAP数据仓库测试为例)
▪ 前台立方体的测试
• 维度测试
1、维度结构测试
赛意信息科技有限公司
BI测试范围
以地理维度为例子,见图2.1,该维度有3个级别,分别是 Big Area Name,Region Name和 Country Medium Name。因此,对结构的测试分为2个 小部分:
Select count (1) from 事实表 nolock where D_ID not in (select A_ID from 维度表 D nolock)
Select count (1) from 事实表 nolock where E_ID not in (select A_ID from 维度表E nolock)
• 结构测试(分为3部分)
1、测试表是否存在:使用测试用 例(Test Case)如下 SQL所示: » 如果运行结果返回0,则说明目的表不存在与当 前后 台数据库中,如果返回值为1,则表明目的表存在于 当前后台数据库中。 Select Count(1) from dbo.sysobjects where id = o bject_id(N’表名 ’ ) and objectproperty(id, N’IsuserTable’) =1
如果以上5个测试用例返回不等于0的值,则说明不满足参考完 整性,前端立方体(Cube)必定会刷新失败。
赛意信息科技有限公司
BI测试范围
数据测试
数据仓库的核心是大量的数据,数据在进入数据仓库之前必 须对数据进行预处理,包括抽取,转换和加载(ETL)。 测试人员必须测试这些数据是否准确,精度是否丢失,是 否符合需求说明。如下图中一个简单的数据转换和传输例 子,数据源的数据必须经过稍微的变换后加载到目的表中 。数据源的字段A和关联表关联后得到字段A1加载到目的 表中,其他数据源字段B,C ,D和Value1,Value2, Value3直接加载到目的表的B,C ,D和Value1,Value2 ,Value3。
微软收购ProClarity
使微软进入商业智能市场
赛意信息科技有限公司
国际厂商 国内厂商
主流BI厂商及产品
厂商 IBM Oracle Microsoft Informatica Teradata Sybase SAP
SAS 用友 金碟 润乾 明基逐鹿 东南融通
产品及简介 DB2以及Cognos、SPSS、DataStage,覆盖BI全部领域 BIEE、Hyperion,覆盖BI全部领域,数据挖掘领域有待加强 SQLServer,覆盖BI全部领域,适合中小型企业,性价比高 Informatica,主要是数据集成领域 Teradata,主要是数据仓库领域 SybaseIQ,主要是数据仓库领域 BusinessObjects、CrystalReports主要是报表领域和数据集成 领域 SAS,数据挖掘领域领先 BQ,主要是OLAP和报表领域,及数据集成领域行业解决方案 QlikView(QV),OEM瑞典厂商QlikTech 润乾报表,主要是OLAP和报表领域 Analyzer,SQL Server数据库的前端展现产品 BI.OFFICE主要是OLAP和报表领域
赛意信息科技有限公司
BI测试范围
3、测试表的主外键是否正确: 众所周知,表的主键是定义了表的记录完整性,而外键则表明了参照完整
性,因而 表的主外键在表中是非常重要的,所以必须单独从其它测试 部分分离出来,作为一 个独立的测试模块进行验证。 同样,在SQL2000系统中,可以使用“SP_HELP 表名”得到测试表的主键 和外键的 信息。
2005年 IBM收购Ascential Software公司 Business Objects收购SRC软件公司
填补了Cognos在财务合并方面的空白 完善了IBM的BI中间件产品 加强IBM的信息整合、组织及管理的能力
使BO进入预算领域
2006年 Business Objects 公司收购 Firstlogic 使BO可提供完整的EIM解决方案
Select count (1) from 事实表 nolock where B_ID not in (select B_ID from 维度表B nolock)
相关主题