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

文章目录

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

BRC20通证的深度科普:它的潜力与如何导入到bitget

​BRC-20通证是什么&#xff1f; BRC-20通证&#xff1a;比特币上的“变形金刚”&#xff1f;&#xff01;不依赖智能合约&#xff0c;它们就像拥有超能力的外星人&#xff0c;直接在比特币的最小单位——聪上刻写JSON代码。哈哈&#xff0c;这比把房子建在乐高积木上还要刺激…

【信息论安全】:信源编码定理

一. 介绍 在点对点的通信中&#xff0c;信源编码定理&#xff08;source coding theorem&#xff09;满足可达性和可逆性。当信道是无噪声时&#xff0c;那么YX&#xff0c;这时就不需要信道编码。但是&#xff0c;信源编码依旧是有效的&#xff0c;可以提高数据传输效率&…

Java中的方法介绍

一、引入方法 /* 以下程序不使用方法&#xff0c;分析程序存在哪些缺点&#xff1f; *以下的代码都是完成两个int类型数据的和&#xff0c;相同的代码写了三遍&#xff08;只不过每一次参与求和的数据不同&#xff09; 代码没有得到重复使用。 *应该在java语言当中有这样的一种…

【Docker】镜像的构建与上传下载阿里云

&#x1f389;&#x1f389;欢迎来到我的CSDN主页&#xff01;&#x1f389;&#x1f389; &#x1f3c5;我是Java方文山&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; &#x1f31f;推荐给大家我的专栏《Docker实战》。&#x1f3af;&#x1f3af; &…

SpringBoot视图渲染技术:整合Freemarker,常见指令和数据类型

目录 1.Freemarker 1.1.什么是Freemarker 1.2.Freemarker模板组成部分 1.3.优点 2.SpringBoot整合Freemarker 2.1.配置 2.2.数据类型 2.2.1.字符串 2.2.2.数值 2.2.3.布尔值 2.2.4.日期 2.3.常见指令 2.3.1.处理不存在的值 2.3.2.assign 2.3.3.if/elseif/else …

MongoDB - 库、集合、文档(操作 + 演示 + 注意事项)

目录 一、MongoDB 1.1、简介 a&#xff09;MongoDB 是什么&#xff1f;为什么要使用 MongoDB&#xff1f; b&#xff09;应用场景 c&#xff09;MongoDB 这么强大&#xff0c;是不是可以直接代替 MySQL &#xff1f; d&#xff09;MongoDB 中的一些概念 e&#xff09;Do…

FGSM方法生成交通信号牌的对抗图像样本

背景&#xff1a; 生成对抗样本&#xff0c;即扰动图像&#xff0c;让原本是“停车”的信号牌识别为“禁止驶入” 实验准备 模型&#xff1a;找一个训练好的&#xff0c;识别交通信号牌的CNN模型&#xff0c;灰度图像 模型地址&#xff1a;GitHub - Daulettulegenov/TSR_CNN:…

基于elementUI的el-table组件实现按住某一行数据上下滑动选中/选择或取消选中/选择鼠标经过的行

实现代码 <template><div :class"$options.name"><el-tablestyle"user-select: none"ref"table":data"tableData":row-class-name"row_class_name"mousedown.native"mousedownTable"row-click&q…

Elasticsearch 索引文档时create、index、update的区别【学习记录】

本文基于elasticsearch7.3.0版本。 一、思维导图 elasticsearch中create、index、update都可以实现插入功能&#xff0c;但是实现原理并不相同。 二、验证index和create 由上面思维导图可以清晰的看出create、index的大致区别&#xff0c;下面我们来验证下思维导图中的场景&…

树莓派ubuntu22桌面配置(一)

烧录系统至树莓派 下载系统&#xff1a;https://ubuntu.com/download/raspberry-pi 选择合适的版本下载 镜像安装器安装&#xff1a;终端输入&#xff1a; sudo snap install rpi-imager 打开镜像安装器&#xff0c;按照需求选择树莓派版本与要写入的系统还有安装的u盘 方案…

YOLOv5源码中的参数超详细解析(7)— yolo.py

前言:Hello大家好,我是小哥谈。YOLOv5是一种先进的目标检测算法,它可以实现快速和准确的目标检测。yolo.py是YOLOv5项目中的一个Python文件,用于实现目标检测算法。该文件包含了YOLOv5模型的定义、训练和推理过程。本节课就结合源码对yolo.py文件进行逐行解析~!🌈 前期…

【Vue3】2-12 : 【案例】搜索关键词加筛选条件的综合

本书目录&#xff1a;点击进入 一、【案例】搜索关键词加筛选条件的综合 1.1、逻辑 1.2、效果 1.3、json数据 - 02-data.json 1.4、代码 一、【案例】搜索关键词加筛选条件的综合 1.1、逻辑 计算属性 - 绑定list&#xff0c;并过滤 input 双向绑定 - 当input改变时&…

带你拿捏SpringBoot自动装配的核心技术?模块装配(@EnableXXX注解+@Import)+ 条件装配(@ConditionalXXX)

文章目录 Profile激活指定配置文件主配置文件中指定激活的profile命令行激活设置虚拟机参数激活 profile控制不到的地方 Spring原生的条件装配注解ConditionalConditional接口讲解案例讲解 Spring Boot封装的条件装配注解ConditionalXXX自己实现ConditionalOnBeanSpringBoot 源…

NLP论文阅读记录 - WOS | 2022 使用语言特征空间的抽象文本摘要的神经注意模型

文章目录 前言0、论文摘要一、Introduction1.1目标问题1.2相关的尝试1.3本文贡献 二.相关工作三.本文方法3.1 总结为两阶段学习3.1.1 基础系统 3.2 重构文本摘要 四 实验效果4.1数据集4.2 对比模型4.3实施细节4.4评估指标4.5 实验结果4.6 细粒度分析 五 总结思考 前言 Neural A…

熊猫电竞赏金电竞系统源码 APP+H5双端 附搭建教程 支持运营级搭建

简介: 熊猫电竞赏金电竞系统源码 APP+H5双端 附搭建教程 支持运营级搭建 可搭建!运营级!首次公开! 赏金赛源码,用户通过平台打比赛,赢了获得奖金奖励, 金币赛、赏金赛、vip赛等种赛事 可开王者荣耀、和平精英比赛 支持1v1、单排、双排组、战队排等多种比赛模式 …

【Kafka-3.x-教程】-【六】Kafka 外部系统集成 【Flume、Flink、SpringBoot、Spark】

【Kafka-3.x-教程】专栏&#xff1a; 【Kafka-3.x-教程】-【一】Kafka 概述、Kafka 快速入门 【Kafka-3.x-教程】-【二】Kafka-生产者-Producer 【Kafka-3.x-教程】-【三】Kafka-Broker、Kafka-Kraft 【Kafka-3.x-教程】-【四】Kafka-消费者-Consumer 【Kafka-3.x-教程】-【五…

坚持刷题|翻转二叉树

坚持刷题&#xff0c;老年痴呆追不上我&#xff0c;今天先刷个简单的&#xff1a;翻转二叉树 题目 226.翻转二叉树 考察点 翻转二叉树又称为镜像二叉树&#xff0c;使用Java实现翻转二叉树通常是为了考察对二叉树的基本操作和递归的理解能力 递归的理解&#xff1a; 能够理解…

TongLINKQ(1):TongLINKQ概述

1 TongLINKQ简介 TongLinkQ 是面向分布式应用的消息中间件产品&#xff0c;主要功能是在应用程序之间进行实时、高效和可靠的传递消息&#xff0c;使得消息在不同的网络协议、不同的计算机系统和不同的应用软件之间进行网络传输。 TongLinkQ 应用程序可灵活地运行在多平台的多…

Vulnhub靶机:driftingblues 2

一、介绍 运行环境&#xff1a;Virtualbox 攻击机&#xff1a;kali&#xff08;10.0.2.15&#xff09; 靶机&#xff1a;driftingblues2&#xff08;10.0.2.18&#xff09; 目标&#xff1a;获取靶机root权限和flag 靶机下载地址&#xff1a;https://www.vulnhub.com/entr…