聊聊大数据测试那些事

2023-11-28 16:50
文章标签 聊聊 数据测试

本文主要是介绍聊聊大数据测试那些事,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

小伙伴们对传统测试已经非常熟悉了,从测试手段来区分:功能测试、性能测试、自动化测试、安全测试、接口测试就有多种。

那么大数据测试到底测啥以及如何测,非常遗憾的告诉伙伴们,目前业界没有通用的方法定义大数据测试,本篇借鉴传统测试的思想跟大伙一起探讨下大数据测试的范围。

目录如下

1、传统测试范围的定义

2、大数据的功能性与易用性

3、大数据的可靠性与效率

1 传统测试范畴的定义

ISO9126软件质量模型标准定义了软件评估的6大特性分别是:功能性、易用性、可靠性、效率性、可维护性、可移植性,也就意味着软件测试基本上围绕着这6个特性展开,详情见:

ISO9126软件质量模型的六大特性

2 大数据的功能性与易用性

我们借鉴ISO9126软件质量模型,看看大数据的功能性、易用性需考虑方面

2.1 功能性

说明:ISO9126 里面指满足需求文档和相关标准能力,分别从适合性、准确性、互操作性、保密安全性、功能的依从性去定义,好比测试一台手机:确保它功能完整(能打电话、发短信、运行app、拍照..),满足用户日常的需求,并且符合互操作性(确保打电话的时能运行手机上的app),发出去的短信传输过程是通过加密、安全的,并且该手机的功能在国际上具备一定的规范一致性

对比:这里我们将其进行迁移到数据测试上,例:公司通过爬虫获取到友商的一些数据,作为测试人员可以尝试考虑这些方面:

2.2 数据全面性

质疑下拿到的爬虫数据对应的友商是否全面,

  1. 除了友商A的数据应该获取,友商B、C、D的数据是否有考虑

  2. 每个友商选取的对标门店是否具有代表性,需考虑

通常在需求评审阶段提出

2.3 数据完整性

质疑拿到的数据是否完整,这里完整指:

  1. 数据确保指定时间范围内每天有数据,排除被风控了的情况

  2. 数据是否重复,例:同1条URL对应2条结果数据

  3. 数据预期与结果总条数一致

通常在etl测试阶段考虑

2.4 数据合理性

质疑拿到的数据是否符合数据库规定类型、以及是否出现出现异常值

  1. 字段类型check,如对重要字段类型check,例:int型下出现其他字符类型情况

  2. 字段异常值check,例:null、空、或者另外一些约定异常值

  3. 字段默认值一致性验证check,例: 从A表同步到B表后,某字段枚举值含义相同

etl测试阶段 或者 数据应用层测试考虑

2.5 数据准确性

质疑拿到数据的结果表与数据源头表是否一致,可能源表经过A -> B -> C处理后得到结果表,所以需要验证整个过程数据是否失真,确保数据的准确与一致

  1. 基于总数的验证,即 A -> B -> C后总数一致,可能到C后有聚合的数据,视情况而定,即在A时有10万条数据,到C阶段理论也有10万。

  2. 基于总数额的验证,即 A -> B -> C后总额一致,这里的总额可能是:金额、销量等。

etl测试阶段 或者 数据应用层测试考虑

2.6 安全性验证

对于某些敏感的数据往往需要考虑其安全性,可以是从获取数据的方式,也可以是数据本身安全性上。

  1. 账号的隔离,测评是否有必要采用账号隔离访问数据

  2. 基于对某些数据字段,测评是否有必要对某些字段进行加密考虑,例:身份证、家庭住址、金钱等方面的加密

需求评审阶段考虑

2.7 易用性验证

确保数据获取的过程顺畅,如果数据需要通过很多命令执行并且连接多个环境才能获取到,这样的数据易用性则不强,以及每个指定的一定能被人所理解。

  1. 数据获取的交互是否过于复杂

  2. 数据对应的指标能被人所理解,例:MAU-月活人数、DAU-日活人数

需求评审阶段 研发设计阶段考虑

3 大数据的可靠性与效率

同样的当处理大数据的平台出现不可预知的错误时,或者数据处理变慢时,我们得有一些处理方案让其能短时间内恢复,或者即便恢复不了也有一些应急的方案,让其不影响到整个链路的上下游,这里其实就是对处理大数据的平台可靠性与效率性的保证。

  1. 数据恢复性,当平台出现异常时,可以有一些重试机制进行重试,确保系统短时间内能恢复。

  2. 数据容错性,即便通过重试机制不能恢复时,需保证上游数据不能影响到下游的数据,可以有一些默认数据的预置,确保下游总能获取到数据。

  3. 时间与资源,当平台运算资源紧张任务繁重的时候,可能会出现长时间的等待,这时候除了需要跟研发一起优化SQL线程,还需要设计一些交互展示一些页面给用户,减少等待带来的用户体检差的问题

4 大数据的可维护性与可移植性

可维护性指:数据可用且及时被维护,可移植性指:无论数据的迁入与迁出都不会影响到数据的使用

  1. 维护库表之间关系,由于通常大数据随着时间的推移数据库表会越来越多,需要确保有地方能维护数据库表之间的关系。

  2. 维护单表字段含义,例:某天业务上新定义销售类型,那么需要在对应的表内注解出及时维护。

  3. 数据的迁入/迁出:确保数据迁入/迁出字段不丢失以及数据完整性(参考2.3 数据完整性)

--end--

扫描下方二维码

添加好友,备注【交流群

拉你到学习路线和资源丰富的交流群

这篇关于聊聊大数据测试那些事的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/429991

相关文章

聊聊说话的习惯

1 在日常生活中,每个人都有固定的说话习惯。心理学研究表明,通过一个人的说话习惯,也可以分析出他的性格特点。对于每一个人来讲,说话习惯已经融为他们生活中的一部分。在社交活动中,一些不良的说话习惯很可能会给他们带来麻烦。因此,了解说话习惯对心理活动的影响是十分有必要的。 2 具有顺畅的说话习惯的人,大多思路清晰、语速适中、用词准确并且声声人耳,是典型的顺畅型说话方式这种类型的人要么不说话,要么

聊聊分布式,再讨论分布式解决方案

前言 最近很久没有写博客了,一方面是因为公司事情最近比较忙,另外一方面是因为在进行 CAP 的下一阶段的开发工作,不过目前已经告一段落了。 接下来还是开始我们今天的话题,说说分布式事务,或者说是我眼中的分布式事务,因为每个人可能对其的理解都不一样。 分布式事务是企业集成中的一个技术难点,也是每一个分布式系统架构中都会涉及到的一个东西,特别是在微服务架构中,几乎可以说是无法避免,本文就分布式事

聊聊资源调度

资源调度 般分为两个阶段: 是实现物理资源的虚拟化(即资源的抽象)于当前机器的性能越来越好,硬件配置越来越高,直接用物理机跑业务比较浪费,所以将物理机分割成更小单位的虚拟机,这样可以显著提升机器的利用效率,在公司内部一般采用容器技术来隔离资源 是将资源虚拟化后进 步在时间和空间上实现更细粒度的编排 ,优化资源的使用。 1 .一些数据 如果公司的几万台机器都是物理机,那么资源的使用率稍低: CP

聊聊Spark中的宽依赖和窄依赖

开门见山,本文就针对一个点,谈谈Spark中的宽依赖和窄依赖,这是Spark计算引擎划分Stage的根源所在,遇到宽依赖,则划分为多个stage,针对每个Stage,提交一个TaskSet: 上图:一张网上的图: 基于此图,分析下这里为什么前面的流程都是窄依赖,而后面的却是宽依赖: 我们仔细看看,map和filter算子中,对于父RDD来说,一个分区内的数据,有且仅有一个子RDD的分区来

聊聊灰度发布

有没有在北京面试java的小伙伴,每家公司面试问的问题都不一样,昨天面试官问到了灰度发布,一脸懵,好像在哪儿听说过,毕竟我都没发布过,之前都是项目组长在干这些事儿,所以聊聊,了解一下 什么是灰度发布 全量发布:把旧服务kill掉,把新服务启动,这个过程就可以理解为全量发布 回滚周期长 如果我们更新完应用之后,我们做线上回归测试的时候发现有BUG,这个时候就要做回滚,过程就是把新服

聊聊随机测试和猴子测试

目录 随机测试的特点 1.不可预测性 2.缺乏针对性 3.自动化 4.资源密集型 猴子测试 随机测试 (Random Testing) 猴子测试 (Monkey Testing) 特点: 区别 1.控制程度 2.目标差异 3.实现方式 在我们测试的过程中,通常会使用到随机测试和猴子测试,其中随机测试侧重于人工测试,猴子测试侧重于借助工具执行命令进行测试。 随机测试

【聊聊经济社会】论阶级跨越

为什么要在市场中寻求自由,在市场中寻求洒脱,原因不胜其数,其中便有一条,现实生活中多是xx,可能社会属性本身就具备党同伐异,像是一股意志,平庸一切不平庸,中和一切特立独行,最终以达到一种变态的稳定. 消其意志,断其未来,耗其钱财 ,而我称之为阶级壁垒 阶级之所以难以跨越,主要也在于这三点 一:没有这样的志向,像那种羡慕有钱,或者羡慕有权,权当做梦。这样的志向,正常人只停留于羡慕的层次,而一旦受到丁

聊聊PC端页面适配

聊聊PC端页面适配  目也pc端有适配的需求:目前我们pc项目的设计稿尺寸是宽度1920,高度最小是1080。 适配目标: 1.在不同分辨率的电脑上,网页可以正常显示 2.放大或者缩小屏幕,网页可以正常显示 对于宽度的适配   对于宽度适配: 首先设置html,body{width:100%;overflow-x:hidden;} 然后我们可以把页面分解为背景层(

来聊聊我用go手写redis这件事

写在文章开头 网上有看过一些实现redis的项目,要么完全脱离go语言的理念,要么又完全去迎合c的实现理念,也不是说这些项目写的不好,只能说不符合笔者所认为的那种"平衡",于是整理了一段时间的设计稿,自己尝试着用go语言写了一版"有redis味道"的mini-redis。 截至目前,笔者已经完成了redis服务端和客户端交互的基本通信架构和实现基调,如下所示,可以看到笔者已经实现了ping

供应链劫持?聊聊什么是RepoJacking

介绍        近几个月来,对开源存储库的主要威胁就包括存储仓库劫持,通常称为RepoJacking。RepoJacking 是指恶意攻击者通过一定手段接管托管存储库的所有权或维护者的账户。通过获取对账户的访问权限,攻击者可以将恶意代码注入到使用对应仓库作为依赖项的项目中。 RepoJacking 如何攻击?        存储库攻击,也称为供应链攻击,通常利用 GitH