文章目录
- 1、什么是BI&数据报表
- 2、什么是可测试性
- 3、数据测试与方法
- 3.1 数据准确性与对比(重要)
- 3.2 数据安全性
1、什么是BI&数据报表
数据报表是一种数据可视化工具
- 用于将数据以图表、表格和其他可视化形式呈现出来,以便用户可以快速了解和理解数据。
- 数据报表可以用于各种场景,例如业务分析、销售分析、市场分析、财务分析等。数据报表可以帮助用户更好地理解数据,发现数据中的趋势和模式,并做出更好的决策。
数据报表通常具有以下特点:
-
数据可视化:数据报表将数据以图表、表格等可视化形式呈现,使用户可以更直观地了解数据。
-
数据交互性:数据报表通常具有交互性,用户可以通过交互式控件(如下拉菜单、滑块等)筛选和过滤数据。
-
实时更新:数据报表通常可以实时更新数据,使用户可以随时了解最新的数据情况。
-
自定义性:数据报表通常具有自定义性,用户可以根据自己的需求自定义报表的样式和格式。
-
多种输出格式:数据报表通常可以以多种格式输出,例如PDF、Excel、HTML等。
BI(商业智能)和数据报表
都是数据分析的工具,但它们有以下区别:
-
目的不同:BI旨在提供更深入和全面的数据分析,以支持更好的决策制定。数据报表则更侧重于呈现数据,以便用户可以快速了解和理解数据。
-
数据来源:BI可以从多个来源获取数据,包括数据库、数据仓库、云存储等。数据报表通常只从一个数据源获取数据。
-
数据分析功能:BI通常具有更强大的数据分析功能,例如数据挖掘、预测分析和机器学习。数据报表则通常只提供基本的数据分析功能,例如筛选、排序和聚合。
-
用户群体:BI通常面向高级用户,例如数据科学家、高级分析师和高级管理人员。数据报表则通常面向更广泛的用户,包括业务用户和中级管理人员。
-
数据可视化:BI通常提供更多的数据可视化选项,例如仪表板、图表和地图。数据报表则通常只提供基本的图表和表格。
总的来说,BI和数据报表都是有用的数据分析工具,但它们的应用场景和目的略有不同。
参考资料:1-BI与报表,2-TEG小马BI
2、什么是可测试性
什么是可测试性?
- 可测试性是指软件系统或应用程序的设计和实现程度,使得测试人员能够有效地进行测试,以验证其功能、性能和可靠性等方面是否符合预期要求。
- 通过提高软件系统的可测试性,可以提高测试的效率和质量,减少测试成本和时间,提高软件系统的稳定性和可靠性。
- 目标:摆脱小作坊的模式,采用系统化的软件工程方法进行管理。
可测试性包括以下几个方面:
-
可观察性:软件系统的内部状态和行为可以被测试人员观察和监测。
-
可控性:测试人员能够对软件系统的行为进行控制和调整,以便进行测试。
-
可重现性:测试人员能够重复执行相同的测试用例,并获得相同的测试结果。
-
可自动化性:测试人员能够使用自动化测试工具来执行测试,并获得高效的测试结果。
数据可测试性
- 是指在软件测试中,数据是否易于获取、准确、可重复使用和可维护。数据可测试性是软件测试的一个重要方面,因为测试人员需要大量的测试数据来验证软件系统的正确性和稳定性。
- 通过提高数据的可测试性,可以提高测试的效率和质量,减少测试成本和时间,提高软件系统的稳定性和可靠性。测试人员可以使用测试数据生成工具、测试数据管理工具和自动化测试工具等来提高数据的可测试性。
-
数据的可用性:测试人员需要能够访问和获取测试数据,包括输入数据和输出数据。
-
数据的准确性:测试数据必须准确反映实际情况,以保证测试的有效性。
-
数据的可重复性:测试数据必须能够重复使用,以便测试人员能够多次执行相同的测试用例。
-
数据的可维护性:测试数据必须易于维护和更新,以便测试人员能够及时更新测试数据。
参考资料:1
3、数据测试与方法
常见的数据测试方法:
-
数据验证:数据验证是确保数据符合预期标准的过程。它可以通过数据类型、格式、范围、精度、完整性、唯一性等方面进行验证。
-
数据比较:数据比较是将两个或多个数据源进行比较,以确保它们之间的一致性和准确性。比较可以通过手动或自动化的方式进行。
-
数据抽样:数据抽样是从大型数据集中随机选择一小部分数据进行测试的过程。这可以帮助测试人员快速评估数据的质量,并确定需要进行更深入测试的区域。
-
数据完整性测试:数据完整性测试是确保数据集中的所有必需字段都已填写的过程。这可以通过手动或自动化的方式进行。
-
数据可靠性测试:数据可靠性测试是确保数据集中的数据在不同的条件下都能够正确地工作的过程。这可以通过模拟不同的情况进行测试。
-
数据性能测试:数据性能测试是评估数据处理速度和响应时间的过程。这可以通过模拟大量数据和用户进行测试。
-
数据安全性测试:数据安全性测试是确保数据在传输、存储和处理过程中受到保护的过程。这可以通过模拟不同的攻击方式进行测试。
3.1 数据准确性与对比(重要)
1、自身检查
- 数据自身检查,是指在不和其他数据比较的前提下,用自身数据来检查准确的情况,属于最基本的一种检查。
- 常见的自身检查包括:检查数值类指标大于0、比值类指标介于0-1范围。这类基础规则,同数据完整性,也可以结合“数据形态工具”辅助测试
- 举个例子,比如针对订单表,支付金额必然是大于等于0,不会出现负数的情况,编写sql:select count(pay_price) from dw.dws_xx_order where par = 20211025 and pay_price<0, 若结果为0,说明支付金额都是大于0,满足预期;否则若count结果大于0,说明数据存在问题
2、横向数据对比
- 表内横向对比:
可以理解为同一张表内,业务上相关联的两个或多个字段,他们存在一定的逻辑性关系,那么就可以用来做数据对比
比如针对订单表,根据实际业务分析易得:针对任何一家店铺的任意一款商品,都满足订单数 >=下单人数。 - 表间横向对比:
可以理解为两张表或多张表之间,其中具有业务关联或者业务含义一致的字段,可以用来做数据对比。
针对hive里的支付表A和支付表B,里面都有支付金额字段,那么同样维度下的 表A.支付金额 = 表B.支付金额 - 多套存储之间对比:
多套数据源,数据计算方式之间的对比(对账系统)
OLAP与OLTP进行数据对比。
比如数据报表中心针对支付表,应用层存储分别用到了mysql和kylin,用作主备切换,那么相同维度下的kylin-表A.支付金额 = mysql-表B.支付金额
3、纵向数据对比
- 纵向对比就是上下游的数据比较,目的是确保重要字段在上下游的加工过程中没有出现问题
- 比如数仓dw层存在订单的明细表,数据产品dm层存在订单数的聚合表,那么二者在相同维度下的数据统计结果,应该保持一致
4、code review
- 首先,在进行code review之前的需求评审阶段,我们先要明确数据统计的详细口径是什么。
- code review的一些常见关注点
1)关联关系 & 过滤条件:
关联表使用 outer join 还是 join,要看数据是否需要做过滤,关联关系 on 字句中,左右值类型是否一致。
关联关系如果是1:1,那么两张表的关联键是否唯一。如果不唯一,那么关联会产生笛卡尔导致数据膨胀
2)指标的统计口径处理:是否可累加,sum和count(distinct )
3)insert插入数据:是否支持重跑。等价于看插入时是否有overwrite关键字,如果没有该关键字,重跑数据(多次执行该工作流)时不会覆盖脏数据,而是增量往表插入数据,进而可能会导致最终数据统计翻倍。
3.2 数据安全性
数据安全策略:
- 遇到有主备切换策略时,测试过程中注意数据正常双写,且通过配置,取数时能在主备数据源之间切换
- 关注数据查询的权限管控,重点测试横向越权、纵向越权的场景
- 访问控制:访问控制是对数据访问进行限制,以确保只有授权的用户才能访问数据。访问控制可以采用身份验证、授权、审计等方式进行。
- 数据备份和恢复:数据备份和恢复是为了防止数据丢失或损坏而采取的措施。备份可以采用本地备份和云备份等方式进行。
- 数据脱敏:数据脱敏是将敏感数据转换为不敏感的数据,以保护数据的机密性。脱敏可以采用替换、屏蔽、加密等方式进行。
- 安全审计:安全审计是对数据访问和操作进行跟踪和记录,以便于追踪和分析数据安全事件。审计可以采用日志记录、监控、报告等方式进行。
参考资料:1-有赞数据风控测试团队