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

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

学习响应式编程中遇到的奇奇怪怪的问题

spring项目无法启动 Description: Web application could not be started as there was no org.springframework.boot.web.reactive.server.ReactiveWebServerFactory bean defined in the context. Action: Check your application’s dependencies for a supported react…

Linux的网络文件共享服务之FTP服务

一.存储类型 1.1 存储类型分为三种 直连式存储&#xff1a;Direct-Attached Storage&#xff0c;简称DAS 存储区域网络&#xff1a;Storage Area Network&#xff0c;简称SAN&#xff08;可以使用空间&#xff0c;管理也是你来管理&#xff09; 网络附加存储&#xff1a;Net…

【Python_PySide6学习笔记(三十一)】基于PySide6实现自定义串口设备连接界面类:可实现串口连接断开、定时发送等功能

基于PySide6实现自定义串口设备连接界面类:可实现串口连接关闭、定时发送等功能 基于PySide6实现自定义串口设备连接界面类:可实现串口连接关闭、定时发送等功能前言一、界面布局二、串口相关功能实现三、完整代码四、调用方法五、实现效果基于PySide6实现自定义串口设备连接…

十、Three场景实现多个物体的合并

Three场景实现多个物体的合并 目的 产品需求是让物体的光柱墙包含一个多边形的区域,二而我的多边形只能使用原型,方向,多边形。那么再研究的时候就需要将这些多边形合并成为一个形状,那么就行实现了。 原先的图形 如上图,是两个mesh组成的。首先寻找mesh合并的方法。 第…

算法练习-长度最小的子数组(思路+流程图+代码)

难度参考 难度&#xff1a;简单 分类&#xff1a;数组 难度与分类由我所参与的培训课程提供&#xff0c;但需要注意的是&#xff0c;难度与分类仅供参考。以下内容均为个人笔记&#xff0c;旨在督促自己认真学习。 题目 给定一个含有个正整数的数组和一个正整数s&#xff0c;找…

redisson的延时队列机制简述

概述 业务中经常会遇到一些延迟执行的需求&#xff1b;通常想到的都是rabbitmq或者rocketmq的延迟消息&#xff1b; 但是系统中不一定集成了mq&#xff0c;但为了控制分布式下的并发&#xff0c;一般redis都是有集成的&#xff1b; redis的key过期监听那个时间不准确&#xff…

在 wsl-ubuntu 里通过 docker 启动 gpu-jupyter

在 wsl-ubuntu 里通过 docker 启动 gpu-jupyter 0. 背景1. 安装 docker-ce2. 安装 NVIDIA Container Toolkit3. 使用 nvidia-ctk 命令配置容器运行4. 通过 docker 运行 nvidia-smi5. 运行 gpu-jupyter6. 访问 gpu-jupyter7. 测试 gpu-jupyter 是否可以访问 cuda 0. 背景 今天突…

Mysql详细安装步骤

Linux 安装 MySQL【超详细版】 ​编辑 我叫BuGu    2023-05-11 16:48:10 发布 一、安装 MySQL 的准备工作 1. 查看系统版本 cat /etc/redhat-release2. 查看系统是否已经安装过 MySQL 查看是否安装了 MySQL rpm -qa | grep mysql查看是否有安装 mariadb,该软件与 MySQ…

qt学习:进度条,水平滑动条,垂直滑动条+rgb调试实战

目录 水平滑动条&#xff0c;垂直滑动条 常用信号 进度条 常用信号 修改进度条 例子 rgb调色 配置ui界面 编写3个进度条的事件函数 添加链表容器和按钮索引 在.h里的类定义 初始化链表容器和按钮索引 编写添加颜色的按钮点击事件函数 效果 水平滑动条&#xff0c…

ChatGPT正确打开方式与GPT-4.5的key最新获取方式

前言 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家&#xff1a;https://www.captainbed.cn/z ChatGPT体验地址 文章目录 前言4.5key价格泄漏ChatGPT4.0使用地址ChatGPT正确打开方式最新功能语音助手存档…

【REMB 】翻译:草案remb-03

REMB REMB消息 以及 绝对时间戳选项 在带宽估计中的使用 :an absolute-value timestamp option for use in bandwidth estimatoin. 接收方带宽估计的RTCP消息 REMB 这位大神翻译的更好。 RTCP message for Receiver Estimated Maximum Bitrate draft-alvestrand-rmcat-remb-03…

.NetCore Flurl.Http 4.0.0 以上管理客户端

参考原文地址&#xff1a;Managing Clients - Flurl 管理客户端 Flurl.Http 构建在堆栈之上System.Net.Http。如果您熟悉HttpClient&#xff0c;那么您可能听说过这个建议&#xff1a;不要为每个请求创建一个新客户端&#xff1b;重复使用它们&#xff0c;否则将面临后…