【数据开发】BI数据报表之数据可测试性设计与分析

news2025/1/25 4:41:32

文章目录

      • 1、什么是BI&数据报表
      • 2、什么是可测试性
      • 3、数据测试与方法
        • 3.1 数据准确性与对比(重要)
        • 3.2 数据安全性

1、什么是BI&数据报表

数据报表是一种数据可视化工具

  • 用于将数据以图表、表格和其他可视化形式呈现出来,以便用户可以快速了解和理解数据。
  • 数据报表可以用于各种场景,例如业务分析、销售分析、市场分析、财务分析等。数据报表可以帮助用户更好地理解数据,发现数据中的趋势和模式,并做出更好的决策。

数据报表通常具有以下特点

  1. 数据可视化:数据报表将数据以图表、表格等可视化形式呈现,使用户可以更直观地了解数据。

  2. 数据交互性:数据报表通常具有交互性,用户可以通过交互式控件(如下拉菜单、滑块等)筛选和过滤数据。

  3. 实时更新:数据报表通常可以实时更新数据,使用户可以随时了解最新的数据情况。

  4. 自定义性:数据报表通常具有自定义性,用户可以根据自己的需求自定义报表的样式和格式。

  5. 多种输出格式:数据报表通常可以以多种格式输出,例如PDF、Excel、HTML等。

BI(商业智能)和数据报表
都是数据分析的工具,但它们有以下区别:

  1. 目的不同:BI旨在提供更深入和全面的数据分析,以支持更好的决策制定。数据报表则更侧重于呈现数据,以便用户可以快速了解和理解数据。

  2. 数据来源:BI可以从多个来源获取数据,包括数据库、数据仓库、云存储等。数据报表通常只从一个数据源获取数据。

  3. 数据分析功能:BI通常具有更强大的数据分析功能,例如数据挖掘、预测分析和机器学习。数据报表则通常只提供基本的数据分析功能,例如筛选、排序和聚合。

  4. 用户群体:BI通常面向高级用户,例如数据科学家、高级分析师和高级管理人员。数据报表则通常面向更广泛的用户,包括业务用户和中级管理人员。

  5. 数据可视化:BI通常提供更多的数据可视化选项,例如仪表板、图表和地图。数据报表则通常只提供基本的图表和表格。

总的来说,BI和数据报表都是有用的数据分析工具,但它们的应用场景和目的略有不同。

参考资料:1-BI与报表,2-TEG小马BI

2、什么是可测试性

什么是可测试性?

  • 可测试性是指软件系统或应用程序的设计和实现程度,使得测试人员能够有效地进行测试,以验证其功能、性能和可靠性等方面是否符合预期要求。
  • 通过提高软件系统的可测试性,可以提高测试的效率和质量,减少测试成本和时间,提高软件系统的稳定性和可靠性。
  • 目标:摆脱小作坊的模式,采用系统化的软件工程方法进行管理。
    在这里插入图片描述在这里插入图片描述

可测试性包括以下几个方面:

  1. 可观察性:软件系统的内部状态和行为可以被测试人员观察和监测。

  2. 可控性:测试人员能够对软件系统的行为进行控制和调整,以便进行测试。

  3. 可重现性:测试人员能够重复执行相同的测试用例,并获得相同的测试结果。

  4. 可自动化性:测试人员能够使用自动化测试工具来执行测试,并获得高效的测试结果。

数据可测试性

  • 是指在软件测试中,数据是否易于获取、准确、可重复使用和可维护。数据可测试性是软件测试的一个重要方面,因为测试人员需要大量的测试数据来验证软件系统的正确性和稳定性。
  • 通过提高数据的可测试性,可以提高测试的效率和质量,减少测试成本和时间,提高软件系统的稳定性和可靠性。测试人员可以使用测试数据生成工具、测试数据管理工具和自动化测试工具等来提高数据的可测试性。
  1. 数据的可用性:测试人员需要能够访问和获取测试数据,包括输入数据和输出数据。

  2. 数据的准确性:测试数据必须准确反映实际情况,以保证测试的有效性。

  3. 数据的可重复性:测试数据必须能够重复使用,以便测试人员能够多次执行相同的测试用例。

  4. 数据的可维护性:测试数据必须易于维护和更新,以便测试人员能够及时更新测试数据。

参考资料:1

3、数据测试与方法

常见的数据测试方法:

  1. 数据验证:数据验证是确保数据符合预期标准的过程。它可以通过数据类型、格式、范围、精度、完整性、唯一性等方面进行验证。

  2. 数据比较:数据比较是将两个或多个数据源进行比较,以确保它们之间的一致性和准确性。比较可以通过手动或自动化的方式进行。

  3. 数据抽样:数据抽样是从大型数据集中随机选择一小部分数据进行测试的过程。这可以帮助测试人员快速评估数据的质量,并确定需要进行更深入测试的区域。

  4. 数据完整性测试:数据完整性测试是确保数据集中的所有必需字段都已填写的过程。这可以通过手动或自动化的方式进行。

  5. 数据可靠性测试:数据可靠性测试是确保数据集中的数据在不同的条件下都能够正确地工作的过程。这可以通过模拟不同的情况进行测试。

  6. 数据性能测试:数据性能测试是评估数据处理速度和响应时间的过程。这可以通过模拟大量数据和用户进行测试。

  7. 数据安全性测试:数据安全性测试是确保数据在传输、存储和处理过程中受到保护的过程。这可以通过模拟不同的攻击方式进行测试。

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-有赞数据风控测试团队

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1383548.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

mysql-实战案例 (超详细版)

&#x1f389;欢迎您来到我的MySQL基础复习专栏 ☆* o(≧▽≦)o *☆哈喽~我是小小恶斯法克&#x1f379; ✨博客主页&#xff1a;小小恶斯法克的博客 &#x1f388;该系列文章专栏&#xff1a;重拾MySQL &#x1f379;文章作者技术和水平很有限&#xff0c;如果文中出现错误&am…

【DC系列教程2--Timing and Area Constrains】

DC系列教程2--Timing and Area Constrains Lab Flow:依赖输入Design SpecificationLab Demo Goal: determin the unit of time in the target library; //设置时间精度Create a Design Compiler timing and area constrains file based on a provided schematic and specifacat…

Airflow大揭秘:如何让大数据任务调度变得简单高效?

介绍&#xff1a;Airflow是一个开源的、用于创建、调度和监控数据管道的工作流平台。这个平台使用Python编写&#xff0c;并通过有向无环图&#xff08;Directed Acyclic Graph, DAG&#xff09;来管理任务流程&#xff0c;使得用户不需要知道业务数据的具体内容&#xff0c;只…

AI副业拆解:随心所欲地替换任何内容

在瞬息万变的世界里&#xff0c;保持“物体ID”的核心特质&#xff0c;同时创造无限可能的新内容&#xff0c;这是一场市场需求与技术挑战的双重交响。此刻&#xff0c;为您揭开一款颠覆性创新产品——ReplaceAnything框架。 直击痛点&#xff0c;破茧成蝶&#xff0c;Replace…

RV1126边缘计算AI盒子,支持4-6路1080p视频,2T 算力

1 产品概述 信迈推出基于瑞芯微Rockchip RV1126架构的AI边缘计算主板&#xff0c;RV1126芯片是四核ARM Cortex-A7,1.5GHz&#xff0c; RSIC-V 200MHz CPU &#xff0c;NPU2.0Tops。AI边缘计算主板外围接口丰富&#xff0c;拥有超强扩展性&#xff0c;可广泛应用在智慧安防、工…

Brc20钱包横评推荐:谁更适合玩铭文?

加密货币的世界越来越热闹&#xff0c;新的创意层出不穷&#xff01;最近&#xff0c;BRC-20 通证标准成了这个圈子的新宠儿&#xff0c;这是在比特币网络上诞生的一种超酷的新型可替代通证。和以太坊的 ERC-20 通证一样牛&#xff0c;但 BRC-20 通证是 Ordinals 协议的杰作&am…

洛谷 P1439 【模板】最长公共子序列【线性dp+dp模型转换】

原题链接&#xff1a;https://www.luogu.com.cn/problem/P1439 题目描述 给出 1,2,…,n 的两个排列 P1​ 和 P2​ &#xff0c;求它们的最长公共子序列。 输入格式 第一行是一个数 n。 接下来两行&#xff0c;每行为 n 个数&#xff0c;为自然数 1,2,…,n 的一个排列。 输…

Deepin使用记录-deepin安装docker

引用 本来想在deepin中直接安装mysql的开发环境的&#xff0c;但想到还是安装docker&#xff0c;然后在docker下安装比较方便&#xff0c;所以就有了本篇文章&#xff0c;先在deepin下安装docker。 经过本次安装&#xff0c;发现在deepin下安装docker是非常的简单&#xff0c…

自动执行 Active Directory 清理

Active Directory &#xff08;AD&#xff09; 可帮助 IT 管理员分层存储组织的资源&#xff0c;包括用户、组以及计算机和打印机等设备&#xff0c;这有助于管理员集中创建基于帐户和组的规则&#xff0c;并通过创建不合规的自动日志来强制执行和确保合规性。 不时清理AD是保…

ruoyi后台管理系统部署-3-安装redis

centos7安装redis 1. yum 安装 查看是否安装了redis yum installed list | grep redis ps -ef | grep redis安装epel 仓库&#xff08;仓库是软件包下载的&#xff0c;类似maven&#xff0c;nuget&#xff09; yum install epel-release搜索 redis 包 yum search redis安装…

YOLOv8 Ultralytics:使用Ultralytics框架进行SAM图像分割

YOLOv8 Ultralytics&#xff1a;使用Ultralytics框架进行SAM图像分割 前言相关介绍前提条件实验环境安装环境项目地址LinuxWindows 使用Ultralytics框架进行SAM图像分割参考文献 前言 由于本人水平有限&#xff0c;难免出现错漏&#xff0c;敬请批评改正。更多精彩内容&#xf…

第 3 章 稀疏数组和队列

文章目录 3.1 稀疏 sparsearray 数组3.1.1 先看一个实际的需求3.1.2 基本介绍3.1.3 应用实例3.1.4 课后练习 3.2 队列3.2.1 队列的一个使用场景3.2.2 队列介绍3.2.3 数组模拟队列思路3.2.4 数组模拟环形队列 3.1 稀疏 sparsearray 数组 3.1.1 先看一个实际的需求  编写的五…

【EI会议征稿通知】第三届机器视觉、自动识别与检测国际学术会议(MVAID 2024)

第三届机器视觉、自动识别与检测国际学术会议(MVAID 2024) 2024 3rd International Conference on Machine Vision, Automatic Identification and Detection 第三届机器视觉、自动识别与检测国际学术会议(MVAID 2024)定于2024年4月26至28日在中国昆明隆重举行。MVAID 2024将…

关于git与git-lfs对文件压缩存储方面的研究

先说结论&#xff0c;git使用了Delta增量压缩算法&#xff0c;git-lfs实测没有进行任何压缩&#xff0c;这个结论让我很震惊。 测试过程如下&#xff1a; 测试git仓库自身的压缩 准备一个包含许多杂项文件的文件夹&#xff0c;大概几百M&#xff0c;要保证有一个txt文本文件…

openssl3.2 - 官方demo学习 - server-arg.c

文章目录 openssl3.2 - 官方demo学习 - server-arg.c概述笔记备注END openssl3.2 - 官方demo学习 - server-arg.c 概述 TLS服务器, 等客户端来连接; 如果客户端断开了, 通过释放bio来释放客户端socket, 然后继续通过bio读来aceept. 笔记 对于开源工程, 不可能有作者那么熟悉…

Kali Linux的下载安装以及基础配置

文章目录 前言一、Kali是什么&#xff1f;二、Kali的安装与下载Kali的下载Kali的安装 Kali的基本配置更新Kali源自定义Kali 前言 渗透测试&#xff08;Penetration Testing&#xff09;&#xff0c;简称为渗透测试或漏洞评估&#xff0c;是一种安全评估的方法&#xff0c;旨在…

MySQL单表的查询练习

作业要求&#xff1a; 作业实现&#xff1a; 首先&#xff0c;创建worker表并插入相关数据 CREATE TABLE worker (部门号 int(11) NOT NULL,职工号 int(11) NOT NULL,工作时间 date NOT NULL,工资 float(8,2) NOT NULL,政治面貌 varchar(10) NOT NULL DEFAULT 群众,姓名 varc…

js中关于字符串的创建和判断类型

文章目录 创建方法判断类型的技巧区分1、typeof2、instanceof 共点1、Object.prototype.toString.call2、库函数 参考链接&#xff1a;JS字符串的创建和常用方法 如何判断JS中一个变量是 string 类型 创建方法 字符串有着两种的创建方法&#xff0c;一个是使用构造函数&#x…

菜狗速递 快人一步

菜狗速递物流管理系统是一款针对网点管理人员开发的系统。 网点管理人员可以在该系统上进行员工信息的录入以及职能分配&#xff0c; 并能对客户的包裹进行一系列的处理&#xff0c;帮助客户查询订单信息&#xff0c;处理问题包裹等。 技术栈 基础框架&#xff1a;SpringBo…

springCloud使用apache的http类和RestTemplate以及Eureka

使用apache的&#xff1a; package com.csgholding.pvgpsp.eqp.util;import com.esotericsoftware.minlog.Log; import org.apache.commons.collections4.MapUtils; import org.apache.http.HttpEntity; import org.apache.http.client.config.RequestConfig; import org.apac…