大数据测试实践(一)--BI报表测试
作者:互联网
在大数据时代,数据成为驱动业务决策的重要指标。企业通过数据采集、加载转换、数据建模和数据可视化等方式,实现海量、多维的数据分析和预测,从而驱动业务决策和产品向智能化发展。
在本章中,我们将以大数据在商业智能、数据挖掘和数据分析化中的典型应用为例,讲解如何使用大数据测试方法进行测试实践。本章介绍的3个典型应用分别是BI报表、风控模型和用户行为分析平台。
BI报表测试
一、BI工具简介
BI(Business Intelligence,商业智能)是一套完整的解决方案,其可以有效地集成企业现有的数据,快速且准确地提供报表,为企业决策提供依据。实现BI方案的工具统称为B工具。B|报表是BI工具的基本实体。BI报表只是BI的一部分,BI应用的结果通常会通过日报表形式呈现,以便用户能够通过下钻、对比和关联分析等功能实现对数据自由且灵活地进行对比查看。
在BI工具出现前,我们通常使用以Excel为代表的编辑类软件绘制报表。虽然使用这类软件能够制作复杂的报表,但在报表绘制前,我们需要提前准备好数据,且无法实现数据动态加载,制作的报表是静态的、固化的。对于数据T+1周期更新,报表需要同步更新的需求,Excel更是无法满足。另外,当数据达到十万条、百万条,甚至上千万条时,Excel 就会变得卡顿。
在Excel之后,相继出现了多种报表系统,如FineReport、CrystalReport等。这些报表系统一般是先将数据套用到提前固化好的模板,再通过前端进行展示。虽然它们实现了固定报表的自动化更新,如日报、周报和月报这样的重复性报表,但在数据展示灵活性、深层下钻分析和实时数据展示方面却无法得到保证和支持。
BI工具的出现弥补了以Excel为代表的编辑类软件和报表系统的不足。BI工具支持多种数据源连接,数据动态和实时加载更新,以及多维分析和下钻分析等功能。这里,我们将以Excel为代表的编辑类软件和报表系统归为普通报表工具。普通报表工具和BI工具的对比如表6-1所示。
目前,业界BI工具有很多,各产品侧重点不同。下面重点介绍5款主流的开源和商业BI目前,
1)Redash:一款开源BI工具。它侧重于提供基于Web的数据库查询和数据可视化功能,简单实用。Redash支持超过35种数据源,包括常用的主流数据库,以及Impala、Presto、Elasticsearch、Google Spreadsheet和Google Analytics等。Hive、
2)Superset:一款由Airbnb数据团队开源的轻量级BI产品。Superset支持约27种数据源,包括常用的主流数据库,以及 Elasticsearch、Redshift、Dril、Hive、Impala和ould等。Superset 提供了Dashboard 和多维分析两类功能,提供了直接使用SQL查询生时国表的方式(SQL Lab)来强化临时分析。Superset的可视化效果非常出色,支持几十种冒形展示。此外,它还支持通过开发插件对接任意可视化库,如HighCharts、ECharts、AntV和D3等。综合来看,Superset 非常值得一用。
3)Tableau:一款国际知名的Bl商业软件。Tableau被称为人人可用的数据可视化分析工具,简单易用,学习门槛较低。它的操作以拖拽式为主,用户可通过单击或拖动感兴趣的维度和度量值来实现Tableau的可视化效果。Tableau可以连接几乎所有常用数据源,优点众多,缺点是价格昂贵且对于超千万条数据的分析的硬件要求高。
4)FineB1:帆软推出的一款商业自助BI工具。它支持亿级数据的秒级呈现,FineDirect(直连数据引擎)与Finelndex(多维数据库引擎)双模式搭配,可灵活应对企业大数据量处理需求。在精准的数据权限管控下,它支持数据分析结果安全分享和分享数据实时更新。FineBl的文档资源比较充足,用户可从其官网下载或观看视频进行学习。
5)WonderBl:它是一款国内知名的商业BI工具,也是面向业务人员的自助式数据分析平台。它提供了数据导入、数据预处理、自动建模和数据可视化分析于一体的解决方案。它支持灵活的自由式布局、组件化的统计图、丰富的数据统计函数、灵活的筛选功能和智能的图表联动,用户只需要通过简单的拖拽,就可以快速制作一张敏捷看板。此外,它还支持百亿数据秒级响应的敏捷分析、灵活的数据预处理、智能化建模和智能图表推荐等功能。
基于对当前业内BI工具使用情况的分析,我们发现Tableau的使用比较广泛,且其功能具有代表性,因此,本节的BI报表测试案例中将使用Tableau。
6.1.2 Tableau简介
下面对Tableau的产品和使用流程进行介绍。
1.Tableau产品家族
1)Tableau Desktop:它分为个人版和专业版。个人版可以免费试用,但不能连接到
布瓜:
116
第6章 大数据测试实践
Tableau Server。企业正式使用的是专业版,专业版可以连接到Tableau Server。
2)Tableau Server:用于发布和管理 Tableau Desktop 制作的仪表板(Tableau Server是基于浏览器的,它没有客户端。通常,我们会使用Tableau洲Deskop作图表,然后发布到Tableau Server,以供相关人员查看。
可能需要对源数据进3)Tableau Prep:数据源的预处理工具。在连接分析数据之前,行预处理,包括异常值清洗、源数据合并等。在使用该工具时,可以通过可视化的方式重者“脏”数据,并快速完成清洗操作。
可以理解为4)Tableau Online:Tableau Online与Tableau Server功能基本一致,基于Tableau Server的托管版本。
发布到Tableau5)Tableau Public:适合所有想在Web上讲述交付故事的用户。Public上的数据是公开的,任何人都可以对数据进行筛选、查看。
6)Tableau Reader:用于浏览Tableau的可视化结果。对于在Tableau Deskton中制作的仪表板(工作表),除通过浏览器访问 Tableau Server 查看以外,还可以使用Tableau Reader 进行浏览、过滤、查询和筛选。如果用户没有足够的预算购买 TableauServer,那么可以下载并使用 Tableau Reader。
2.Tableau的使用流程
Tableau的使用流程主要分为5个步骤,如图6-1所示。
连接数据源
数据源预处理
创建工作表
创建仪表板
创建故事
图6-1 Tableau的使用流程
下面以某网店的销售数据为例对Tableau的使用流程进行详细介绍。
步骤1:连接数据源。Tableau Desktop支持连接的数据源丰富。数据源连接页面如图6-2所示。
连接
SAP Sybase ASE
Actian Matrix
Firebird 3
MemSQL
搜索数据
Google Ads
Microsoft Analysis Services
SAP Sybase IQ
Actian Vector
Tableau Server
Alibaba AnalyticDB for MysQL
Google Analytics
Microsoft PowerPivot
ServiceNow ITSM
Alibaba Data Lake Analytics
Google BigQuery
Microsoft SQL Server
SharePoint 列表
到文件
Alibaba MaxCompute
Google Cloud SQL
MonetDB
Snowflake
Microsoft Excel
Amazon Athena
Google Drive
MongoDB BI连接器
Spark SQL
文本文件
适用于MySQL的 Amazon Aurora
Google 表格
MySQL
Splunk
JSON 文件
Amazan EMR Hadoop Hive
Hortonworks Hadoop Hive
OData
Teradata
Microsoft Access
Amazon Redshift
IBM Biglnsights
One Drive
Teradata OLAP Cornector
PDF文件
Anaplan
IBM DB2
Orade
TIBCO 数据可视化
空间文件
Oracle Eloqua
Vertica
Apache Drill
IBM PDA (Netezza)
统计文件
Impala
Oracle Essbase
Web 数据连接器
Aster Database
更多...
Pivotal Greenplum Database
Azure Synapse Analytics
Intuit QuickBooks Online
Kognitio
PostgreSQL
其他数据库(JDBO)
Box
到服务器
其他数据库(ODBC)
Cloudera Hadoop
Kyvos
Presto
Web 数据连接器
Progress OpenEdge
Databricks
Linkedin Sales Navigator
其他数据厍(JDBC)
Qubole Presto
Denodo
MapR Hadoop Hive
其他数据厍(ODBC)
Salesforce
Dropbox
MariaDB
MySQL
Esri ArcGIS Server
Marketo
SAP HANA
Exasol
MarkLogic
SAP NetWeaver Business Warehouse
图6-2 Tableau支持连接的数据源
本案例选择 Microsoft Excel,上传使用的数据文件。在选择数据源后,可以通过点击数
布瓜:
6.1 BI报表测试
117
据来查看数据情况。
步骤2:数据源预处理。该步骤主要包括元数据信息变更、字段操作、数据提取、数据合并和数据连接等,如图6-3所示。
网店销售数据(某网店销售数据)
도물
可以进行数据提取和能选
InB
M
可以对字段进行计算和拆分等
F 1
血示型名
产票名称
可以对数据集进行合并
215-2070702
Z
销算于程
3
2
江周
41 Z12221
2.3
B
ZTV7
25
753
5分
电交质分-
24
S
営量3多字助)
0021170
155.23
23
证码
739
22 201175
15
5
四
100.131-2111223
Cagn
2
读■
色汉
14
10083242011/112
46
宁
Mng
1.001m
32
nhmn DVDR
图6-3 数据源预处理
·元数据信息变更。在连接数据源后,Tableau会获取数据源的元数据详细信息,如表的字段名称和字段类型等,如图6-3所示。用户可对元数据进行修改,如重命名字段、隐藏字段和给字段起别名等。Tableau会将该数据源中的每个字段分配为维度或度量,具体情况视字段的数据类型而定。用户也可以变更维度字段为度量,变更度量字段为维度。
字段操作。可以对字段进行排序、拆分,也可以通过组合两个字段来创建一个字段。
数据提取。可以对数据源进行数据提取来创建数据子集,这有助于通过应用过滤器来提高性能。
数据合并。通过新建并集可以实现数据合并。并集是指将一个表中的几行数据附加到另一个表来合并两个或更多表的一种方法。在理想情况下,合并的两个或多个表必须具有相同的字段数,并且这些字段必须具有匹配的名称和数据类型。
数据连接。基于表间的相关列可以将两个或多个表进行连接。Tableau的数据连接类型有4种,如表6-2所示。
表6-2 Tableau的数据连接类型
连接类型
结果
图例
内部连接
返回两表的公共数据
内部
返回左侧表中的所有值和右侧表中的对应匹配项。当左侧表中的值在
左侧连接
右侧表中没有对应匹配项时,返回NULL值
左侧
右侧连接
返回右侧表中的所有值和左侧表中的对应匹配项。当右侧表中的值在
左侧表中没有对应匹配项时,返回NULL值
右侧
完全外部连接
返回两个表中的所有值。当任一表中的值在另一个表中没有匹配项时,
返回NULL值
完全外部
布瓜:
118
第6章 大数据测试实践
表6-2对应的Tableau 操作图如图6-4所示。
θ·Sample-Superstore
日
85
OD
1 CA 2015-152156
2029/11/2
2029/11/11
Secand Css
图6-4 Tableau数据连接操作
在实际操作时,可根据源数据情况考虑是否进行数据源预处理操作。本案例比较简单,不进行数据源预处理,连接数据源后直接进行下一步操作-创建工作表。
步骤3:创建工作表。Tableau 使用的是工作簿和工作表文件结构,这与MicrosoftExcel类似。工作簿包含工作表,后者可以是工作表、仪表板或故事。单击Tableau主界面左下角工作簿底部的新建工作表图标按钮,可以创建工作表。一个工作表包含单个视图及其侧栏中的功能区、卡和图例,以及“数据”和“分析”窗格。新建工作表,将“产品类别”拖拽到列,将“利润”拖拽到行,可以看到度量字段“利润”自动聚合成各个产品类别的利润总和,如图6-5所示。
文件( 数层(2)
工作表(M)
仪表板(B)
투(D
分析(A)
地格(M)
设置格式()
口(N)帮助(上)
←→0
标准
1
명1
曰
数据
分析
圆列
产品类别
6.网店销露数目(某网店的细
三行
总和(利润)
维度
MP
产品名称
工作表1
视图
产品子类别
产品类别
产品类别
区域
标记
900K
Ata
Ax发货城市
自动
发货日期
::
800K
口
0
快通公司
A目的城市
颜色
大小
口
A目的城市(拼育)
700K
ae
A目的省份
工具提示
佳词辑
A目的省份(拼音)
日
签收日期
600K
日 订单日期
顾客姓名
N
500K
利润
A度量名称
400K
度量
# 产品单价
#利润
300K
#快递单号
# 订单单号
#订单数量
200K
#
订单题
# 运输成本
100K
# 记录数
度量值
OK
工作表
办公用品 家居产品 数码电子
5数据源
工作表1 工作表2
图6-5 创建工作表
由图6-5可以看出,Tableau 将所有字段分为维度和度量。维度包含定量值(如名称日期和地理数据等),用户可以使用维度进行分类、分段,以及揭示数据中的详细信息。维度
布瓜:
6.1 BI报表测试
119
影响视图中的详细级别。度量包含可以测量的数字定量值。度量可以聚合。在将度量拖拽到视图中时,默认情况下,Tableau 会向该度量应用一个聚合。
可以对工作表的机图过一步处理,以使离例更商观,如图66所示。我们的类别”拖拽到可以看到3种类别的产品由原来统一的蓝色分别变成了蓝色、橙色和红色。我们将“产品类别”拖拽到“标签”上,可以看到3个柱上增加了产品类别提示文字。我们将“利润”“大小”上,可以看到柱的粗细发生了变化,总和(利润)越大,桂越粗。
页面
面列
产品类别
三行
总和(利润)
工作表1
产品类别
标记
900K
数码电子
国自动
①
6
:
颜色
大小
8DOK
口
a
详级信息
工具指示
700K
产品类别
总和(利润)
600K
产品类别
日
办公用品
500K
400K
300K
200K
家居产品
100K
OK
办公用品 家居产品 数码电子
图6-6 视图增强
步骤4:创建仪表板。单击图6-5所示界面左下角的新建仪表板图标按钮可以创建仪表板。一个仪表板是多个工作表中的视图的集合。“仪表板”和“布局”窗格可在Tableau主界面的侧栏中找到。如图6-7所示,我们创建了仪表板1,并将工作表1和工作表2拖拽到了仪表板1中。
文件田
每助(H)
联认值
工作表1
工作表2
仪表板
0009
设备预览
5,778
电话
产品类别
5,607
大小
数码电子
5500
5,447
900K
5,320
台式机凯览器(1000x800)
5,142
5.213
5.080
5.16
5000
4,805
D.工作表1
750
工作表
B00K
4500
4,394
4000
4,121
061
145
工作表2
700K
将工作表1和工作表2拖拽到仪表板1中
3,906
600K
3,726
对象
3500
3,600
3.A15
水平
办公用品
吕面
3000
口白
500K
名
A 文本
下型
☑
出扩层
2500
顺
400K
开籍
浮动
2000
1500
显示仪表板标题
B00K
0数抵原
工業工
田仪表板1
图6-7创建仪表板
订单数量
336
布瓜:
120
第6章 大数据测试实践
步骤5:创建故事。单击左下角的新建故事图标按钮可以创建故事。故事包含一系列共同“布局”窗格可在Tableau主界面的侧栏中找作用以传达信息的工作表或仪表板。“故事”和到。如图6-8所示,我们创建了故事1,并将工作表1、工作表2和仪表板1拖拽到了故。由此可以看出,仪表板是对工作表的汇总,而故事是对仪表板和工作表的汇总。
数事
仪表板1
故事1
工作惠2
新建效票点
工作高1
复別
产品类别
办公用品
工作表1
数码电子
家居产品
产品类型
工作表2
数码电子
114,491
900K
600,000
400,000
800,000
908,299
8008
700K
A
拖助以原加文本
600K
☑显示标量
办公用品
大小
X005
利润
故事(1016x964)
田
工作表1 工作表2
田仪表板1
数票1
인
图6-8 创建故事
上述是Tableau 使用流程的详细步骤,所有操作均在Tableau Desktop 上演示,感兴趣的读者可下载、安装并试用Tableau Desktop个人版。在了解了Tableau的产品和使用流程后,下面将详细讲解如何对Tableau绘制的报表(故事、仪表板和工作表的统称)进行测试。
6.1.3 BI报表测试实践
BI报表测试是指对BI工具制作的报表进行测试,以确保BI报表的准确性,提高业务决策的可靠性。一般情况下,BI报表制作逻辑相对简单,且很多企业没有建立报表测试方法,仅参考历史数据和经验进行简单的检查,并没有经过完整的测试。这将给报表带来较大的质量风险,无法保证报表的格式和数据是否准确,尤其对于复杂报表和实时报表,就更难保证了。本节将以Tableau报表为例,讲解如何开展BI报表测试。
由图6-9可知,Bl数据管道可分为两个不同阶段(阶段1和阶段2),BI报表是Bl数据管道的最终输出结果。数据管道的复杂度在一定程度上影响BI报表的质量。对于BI报表测试,我们通常需要关注从数据源到最终BI报表阶段(即阶段2)数据流转的正确性。当BI报表工具接入的数据源来自数据仓库或数据集市时,我们还需要关注数据源前置ETL 阶段(即阶段1)的数据处理的正确性。如果无法保证数据源的数据符合预期,那么基于数据源制作的BI报表大概率会出现错误。
阶段1:源数据到数据仓库或数据集市的ETL阶段。
·源数据。阶段1中的源数据可能来自不同的源和应用程序,如日志文件、业务数据和第三方数据等。若输入数据的方式或系统处理出现问题,那么源数据中的数据可能会存在问题。例如,业务代码对某字段填充错误(默认值为0但填充为1),这种错误
布瓜:
6.1 BI报表测试
121
数据将传输到B1报表。由于BI报表制作人员对源数据没有控制权且无法全面了解所有字段口径,因此此类数据问题很难被发现。因此,从源头上保证阶段1中的数据的正确性至关重要。
阶段1
数据源
阶段2
BI报表
源数据
数据仓库
ETL
数据集市
数据库
BI工具
Excel文件
Tableau
Redash
Superset
其他数据存储
图6-9 BI数据管道
·ETL。ETL处理过程涉及较多业务规则转换,如聚合、汇总、派生、重复数据删除、重组和集成等。这些转换容易出现逻辑错误、函数使用错误、计算错误和计算精度丢失等问题。例如,用户缴费状态预期转换:“正常缴纳”状态转换为1,“补缴”状态转换为2,“断缴”状态转换为3。然而,在进行SQL处理时,可能将“正常缴纳”状态转换为3,“断缴”状态转换为1,后续使用时仍按照1作为“正常缴纳”、3作为“断缴”进行处理,这会导致缴费状态统计错误。由此可以看出,需要通过全面的ETL测试来避免此类问题。
阶段2:数据源到BI报表阶段。在该阶段,我们应重点关注数据层、工作表和仪表板的测试。
数据层。数据层(也称为元数据层)提供了易于用户使用和访问的高级对象,其主要由维度、度量、查找、计算指标、连接和层次结构等组成。这些对象派生自数据库,是一种软数据转换。在制作报表时,若使用这些对象,可能会发生错误,因此,需要对数据层进行测试。
工作表。工作表由图表、过滤器组成。这两项中的任何一项都可能由于不符合技术规范或操作错误而出现问题,因此,需要对工作表进行严格测试。
仪表板。仪表板是多个可视化数据工作表的组合。Tableau的故事与仪表板功能类似,不再单独说明。在大多数情况下,仪表板是企业使用的最终报表,因此对其进行测试也非常重要。
阶段1的ETL测试实践,见6.2节。阶段2的BI报表测试主要包括对数据层、工作表和仪表板的测试,如图6-10所示。下文将分别阐述数据层测试、工作表测试和仪表板测试的方法与实践,并给出自动化测试示例。
1.数据层测试
几乎所有的BI工具都为用户提供了数据层。数据层的作用是提高数据访问的易用性,该层通过提供对象和类来隐藏数据库物理结构的复杂性。这些对象和类将数据库中的源数据结构映射为分析人员使用的业务术语,帮助分析人员进行数据查询分析,使得用户不必担心数据库中的基础数据结构发生改变。
布瓜:
122
第6章 大数据测试实践
BI报表测试方法
验证方法同工作表测试
仪表板测试
数据有效性和数据易用性验证
计算逻辑验证
抽样统计法
更新验证
及时性验证
工作表测试
直观观察法
安全测试
UI验证
对照法
交互验证
性能测试
明确报表开发人员对数据层的操作
针对操作进行数据处理逻辑验证
数据层测试
图6-10 BI报表测试方法
举例说明,如图6-11所示,在数据源连接后,用户可以单击“订单数量”字段来创建计算字段,新增计算字段的计算公式为“[订单额][订单数量]”,得到新字段“单笔订单金额”。该字段是虚拟字段,由此可以看出,数据层提供了计算字段,并在数据库上层创建了虚拟层。
#
#
#
#
-
#
#
Abo
网店销售数据
网店销售数据
计算
网店销售数据
网店销售数据
网店销售数据
网
订单额
订单数量
单笔订单金额
产品单价
运输成本
利润
产
三
261.54
6
43.59
38.94
35.000
-213.25
办
6.93
2
3.47
2.08
2.560
-4.64
办
家
x
单笔订单金额
家
[订单额]/[订单数量】
0
汉
计算有效。
应用
确定
图6-11 创建计算字段
数据层的处理是为BI报表绘制做准备的,数据处理得越到位,BI报表绘制就越轻松。数据层测试的关键是清楚报表开发人员在数据层进行了哪些数据处理操作,然后针对处理前后的数据,验证数据处理逻辑的正确性。下面通过两个示例来讲解如何对数据层进行测试。
示例1:对于图6-11中新增的“单笔订单金额”计算字段,在测试时,我们需要关注该字段的计算公式是否正确、计算后字段类型是否正确。Tableau默认会给新增字段分配一个字段类型,但该类型可能与实际需求类型不一致,因此,我们需要再次检查确认。例如,示例
算法式
统计式
罗列式
自动化测试
布瓜:
6.1 BI报表测试
123
单笔订单金额
*
中的订单额存在小数且计算公式为除法,因此,在默认情况下,“单笔订单金额”应为数字(小数)类型,如图6-12所示。若需求类型与该字段类型一致,则符合预期。反之,则字段类型可能存在问题。
备
能限号인
订单额
订单数量
二
21,366.51
3
日期礼时间
89,061.05
13
日期
33,367.85
碍ば外
9
3,672.89
1
地理角色
13,070.20
3,267.55
示例2:上述示例中的源数据来自Excel文件,而实际业务场景的源数据大多来自常用的主流数据库,以及大数据相关的Impala、Hive和Presto等。此时,派数据不再是一个文件,而是数据库表或开发人员编写的自定义SQL,如图6-13所示。针对开发人员编写的自定义SQL,在测试时,我们需要检查SQL逻辑是否正确、“脏”数据是否过滤和数据计算精度是否正确等。
图6-12 单笔订单金额默认类型
应商方网结销食数
Merpnall tace
书名限公额
10.12.20.40
-1 mnd barrow_statas0
输入自定义SQL,通过SQL过滤、计算,得到预期数据
bock Jlist
pai tusk
dnp_nde_col mapping
排序字级
数据源顺序
dap_ude expre%
udp
Abc
mesageD
?定文5Q
服定义 BQL面
留室文5OL
单击后立即更新,可获取SQL执行后的数据
wbook Fiat
description
slchLscore
机器学习期式人门与实强 业界一本AI記備
stodent
新自定文 SQL
单击新自定义SQL
電記
图6-13 自定义SQL
2.工作表测试
工作表的测试点如下。
(1)计算逻辑验证
在验证报表计算逻辑之前,我们需要了解报表的制作方式,通常分为3类。
订单月份 退货订单数量
1)罗列式。罗列式报表是非常简单的报表,它只是将源数据根据规则进行罗列,不涉及任何计算。如图6-14所示,源数据中只有“订单月份”和“退货订单数量”两列,且“订单月份”列值唯一。我们将“订单月份”拖拽到“行”,将“退货订单数量”拖拽到标记的“文本”,即可得到每月的退货订单数。视图中工作表1的数据与源数据完全一致,没有进行任何计算,如图6-15所示。
2020-01
24
2020-02
2
2020-03
10
2020-04
12
2020-05
3
2020-06
5
2020-07
6
2020-08
5
2
2020-09
2020-10
15
罗列式报表的测试重点是检查罗列项是否与需求一致(不缺项、不多项),罗列项的顺序是否正确,以及是否可通过罗列方式正确获得预期数据。如图6-15所示,源数据的两列都进行了展示,第一列是“订单月份”,第二列是“退货订单数量”,而且报表的数据与源数据完全一致,符合预期。
2020-11
18
2020-12
20
2021-01
13
2)统计式。统计式报表指统计值是由单个源数据经过简单的加减乘除、求和(对一列数据的累加)、求平均值等计算方法得到的报
图6-14 Excel文件源数据
布瓜:
124
第6章 大数据测试实践
表。如图6-16所示,报表中统计了每个产品子类别的利润总和、订单额总和与运输成本
总和(运输成本)
图6-16 统计式报表
如果统计式报表的源数据是文件,则可以使用抽查验证方法。例如,对某一个产品子类别的利润进行求和计算,将求和值与其对应的报表数值对比,若相等,则证明报表结果正确。在测试时,我们还应考虑数据的多样性和偶然性问题,如子类别“Appliances”的利润验证-致,但“Paper”的订单额验证不一致。出现这种问题的原因可能是,“Appliances”的利润在错误的计算情况下,也得到了与预期一致的值。因此,在测试时,我们需要进行多种情况组合抽样验证。例如,可以抽样验证办公用品“Appliances”的利润、家居产品“Tables”的订单额和数码电子产品“Office manchines”的运输成本。
如果源数据来自数据库,则可使用SQL查询验证。验证时的伪SQL代码如下。
SELECT 产品类别,产品子类别,SUM(利润),SUM(订单额),SUM(运输成本)FROM 订单表 GROUP BY 产品类别,产品子类别 ORDER BY 产品类别,产品子类别;
2我们可以通过对比软件验证SQL 查询结果数据是否与报表数据一致。如果数据一致,表明报表数据正确。相关测试流程如图6-17所示。
布瓜:
6.1 BI报表测试
图6-17 基于SQL查询验证的测试流程
3)算法式。算法式报表指统计值是由一个或多个源数据,根据一定的公式计算汇总得到的报表。此类报表涉及多数据源、多表和多业务流程,是报表测试的难点。在测试时,我们需要重点关注数据来源、业务含义和计算逻辑等,可采用抽样统计法、直观观察法和对照法。下文以单数据源为例进行讲解,多数据源的测试方法类似,不再举例说明。
抽样统计法介绍如下。
由图6-18可以看出,报表中绘制了3条折线,由上至下分别是每个发货月份的订单额走势图(命名为折线1)、环比图(命名为折线2)和同比图(命名为折线3)。
面
发货日期月
表
%
18.7%
20.1%
-19.9%
18.2%
28.1%
冀合(ZNSUM新线量D)-LOOKUPL-
同比图:与上一年的同月份相比的增幅情况
41】
五]
34.0%
[27
32]
H
72
1257
☑
6]
3
[20]
图6-18 算法式报表
布瓜:
126
第6章 大数据测试实践
文件(F)
数量(D)
工作表(W)
仪表板(B)
故事(T)
分析(A)
地票(M)
→
日
新建工作表(N)
Ctrl+M
数据
导出(E)
而丽
复割(C)
昊海宝商家网
清(L)
10版经
检索
操作(D-
Ctrl+Shift+A
交叉数到Eceg
工具提示(O)
Abe
产品名称
显示标量(T)
A产品子类别
显示说明(A)
Abe
显示摘要(S)
超默唱!
风■
对于折线1的测试,其实并不难,我们可采用Tableau自带的功能,将可视化折线数据导出为Excel文件。如图6-19所示,在Tableau的菜单栏中,依次选择“工作表”→“导出”→“交叉表到Excel”。导出后,通过对比源数据与Excel 文件数据即可验证折线数据的正确性。
Abe
显示卡(W)
Ab 发货城市
显示视图工具EM
日
发货日期
显示维序控件(R)
快递
快递公司
描述工作表(E)-
Ctrl+E
复制为交叉表(T)
值D)-LOA
品目的省份,目
自动更新(A)
目的省份
运行更新(P)
口
图6-19导出交叉表到Excel
对于折线2和折线3的验证,虽然步骤略微复杂,但是,由于每个月份的报表数据计算方法相同,因此我们抽查验证折线2和折线3的点即可。这里将2009年1月的订单额表示为即P年份月份,基于折线1的值,验901,证折线2和折线3的首尾点。
1330-2043x%=-35.8%
2009年2月的环比增长率:
-376-26206x100%347%
2012年12月的环比增长率:
P=35-920453x100%-35.7%
2010年1月的同比增长率:
P-Ri=3575-28x10%%
2012年12月的同比增长率:
上述手动计算结果与折线2和折线3上的值一致,符合预期。除通过手动计算验证以外,还可以通过折线上的数据分布情况进行验证。由于折线1是2009年1月~2012年12月的统计数据,折线2是滞后一个月的统计数据,因此,环比数据范围一定是2009年2月~2012年12月。同理,因为折线3是滞后一年的统计数据,所以折线3的数据范围-定是2010年1月~2012年12月。
验证指标时,我们应重点关注派生指标的计算,如总计、同比和环比等。对于“不可汇总求和”指标,不能直接进行汇总。例如,在对“当月库存”指标进行计算时,不可直接累加每周的库存并作为“当月库存”值。对于多类型或复杂的源数据,我们需要充分理解报表字段与源数据的关系。
直观观察法介绍如下。
由图6-18可以看出,折线1中2009年2月的订单额比2009年1月的订单额减少了将近一半,由此可知,计算得到的2009年2月的环比增长率必然是负数且接近-50%。
对照法介绍如下。
对照法验证相同数据在不同报表中等效维度是否一致。如图6-20所示,左侧表的利润对应产品子类别,右侧表的利润额对应产品类别。因此,右侧表的产品类别利润额应等于左表的产品子类别利润额的总和。
(2)数据有效性和数据易用性验证
1)数据有效性。由于源数据会受到数据的采集、转换和处理等因素影响,因此可能存在异常数据,这将导致报表出现无效的统计结果。
出版
布瓜:
6.1BI报表测试
127
월율
单行
林社
工作表1
发用日期
工作表2
产品予类期
民码
证机码
品备质车
产品密码
运验税车
대율인
办金额品
Ampircs
Bincert and Binder zesras
100233
721,754
票证号
306,455 10044456
6.755
1748.022
26,574
Enmnpes
9203
171275
1.608
114.491
SI6961D
54.851
13.753
■藏
447,681
R
数码电子
5,926.940
30.0033
N2
E8O8
Paper
Peis Art Sepplies
8.D61
165,454
2.567
14.908
71147
668
2
10,068 1.097.300
9.953
对照
↓
5.450
790,253
9.001
146,338 1,796.163
16.172
204,009 696,863
2988
-100.005 1885.732
20.815
数同电子
Computer Peripheratt
793.090
417
全国
Copiers and Fax
176.189 1151890
2.496
Office manchines
318,648 2,011.156
7,337
Teleghones ang Commuicon
318.002 1870.804
4.893
图6-20 对照法
2)数据易用性。数据易用性是指报表数据能否被用户直观理解。例如数据精度统一,避免出现不易理解、不易处理的数据(如12.12345678912345);时间格式统一;数据换算单位准确;数值单位统一;四舍五入的保留位统一等。
(3)UI验证和交互验证
1)UI验证:主要是指对界面功能、交互设计的验证。根据需求文档和样式表,验证报表页面布局样式、表格格式、字体格式、颜色搭配、报表标题和文案等。
2)交互验证:主要包括对翻页、过滤器、提示、参数、上钻/下钻、多表联动、排序和导出等功能的验证。参数验证是指对于具有参数的报告,创建包含合理数量的多个参数测试。过滤器验证是指通过筛选指定不同条件过滤得到预期结果。多表联动验证主要是验证不同视图间是否能正确切换且依赖关系正确。
(4)更新验证
在源数据出现更新后,验证报表数据是否更新正确。
(5)及时性验证
这主要是指针对实时报表生成的及时性验证,验证在及时性方面是否满足业务需求。
(6)安全测试
检查报表系统的用户权限、数据安全设置等是否合理。
(7)性能测试
这主要是针对数据响应时间、报表生成耗时等性能指标进行测试,验证是否符合预期。
3.仪表板测试
本质上,仪表板是多个工作表的集合,并提供了汇总报表的概览视图。工作表的测试方法可直接应用于仪表板的测试,此处不再赘述。
4.自动化测试
报表的数据量大,单纯依靠手动测试显然不现实且容易出错。在企业中,手动测试的数据量可能只占全部数据量的1%,手动测试的覆盖率很低。因此,我们需要依靠自动化工具来解决这一问题。关于报表的自动化测试,主要是指通过自动化工具对报表数据和预期数据进行一致性对比。业内主流的报表自动化测试工具有QuerySurge、ETL Validator和iCEDQ等。
我们以QuerySurge为例,简单介绍一下如何实施报表的自动化测试。在QuerySurge中,新建QueryPair。QueryPair的配置如图6-21所示。
布瓜:
128
第6章 大数据测试实践
Setp Wirad
Query Surge
2,
Quen-Da
Camecton 1sieaSere
AS Integex) AS TenrOfDate,
:00/
图6-21 QueryPair的配置
其中,Source连接的是源数据,Target连接的是Tableau Server的报表数据。通过封装,QuerySurge使得用户可以通过SQL形式获取 Tableau Server的数据。在配置完成后,单击“运行”图标按钮运行该QueryPair。运行后的测试报告如图6-22所示。
Negative Inflation Rate
Source
Failures
Source Query
Target Query
Export Al
Date Faiure
Non-matching Row|Show Header Liet
YEAROFDATE
AVGVALUE
VearO1Date
AvgVate
1938
-0.020833333
5
1938
0.087479065
图6-22 QuerySurge测试报告
通过查看上述测试报告,我们可以发现Source和Target中不一致的数据,即预期测试结果与报表中不一致的数据。关于该工具的更多讲解,见8.3.1节。
6.2 数据挖掘产品测试
6.2.1 数据挖掘的定义和流程
数据挖掘(Data Mining)是指从大量数据中挖掘隐含的、先前未知的且具有潜在价值的信息的过程。数据挖掘是一种商业信息处理技术,其主要特点是对数据库中的大量业务数据进行抽取、转换、分析和模型化处理,并从中提取辅助商业决策的关键信息。典型的数据挖掘流程如图6-23所示。
定义目标
样本抽取
数据预处理
特征工程
建模训练
模型评估
图6-23 数据挖掘流程
(1)定义目标
在进行数据挖掘前,首先要明确挖掘目标,熟悉数据挖掘的业务背景,并对挖掘目标有清
标签:数据测试,报表,--,数据源,Tableau,BI,测试,数据 来源: https://www.cnblogs.com/kiko-sunrise/p/16560908.html