大数据测试基本知识

news2024/11/26 0:28:32

常用大数据框架结构

1.大数据测试常用到的软件工具

工具推荐,对于测试数据构造工具有:Datafaker、DbSchema、Online test data generator等;ETL测试工具有:RightData、QuerySurge等;数据质量检查工具:great_expectations、mobyDQ、DataQuality、GriFFin、Qualitis等。

大数据生态圈

1.基于hadoop的大数据生态圈

2.基于大数据生态圈平台

3.基于大数据搜索引擎

如果需要实现大数据生态圈平台化,不用单独搭建每个服务,则采用

 • CDH5.4

     http://archive.cloudera.com/cdh5/

  •Cloudera Manager5.4.3:

     http://www.cloudera.com/downloads/manager/5-4-3.html

快速编写测试用例

1.对齐测试用例需求

用例文档使用者:测试人员
用例文档范围:覆盖产品所有需求
用例模板内容:编号、模块、子模块、测试功能点、预置条件、数据、步骤、预期结果、优先级、用例类型、关联需求、(编写人、更新时间、执行人、状态、执行时间、执行结果)
测试用例粒度:所有功能的正反用例
测试用例验收负责人:活久见(对齐目标)

快速了解产品

横向业务扩展

纵向架构分层

以某云的大数据云平台为例,大数据云平台的核心是集群。大数据云平台集群是由一个或多个虚拟机实例组成的Hadoop、Flink、ZooKeeper集群。以Hadoop为例,每个虚拟机实例上通常都运行了一些daemon进程(例如,NameNode、DataNode、ResouceManager和NodeManager),集群上还可安装各类大数据服务组件(例如:HBase、Hive、Presto、Spark等)。

大数据云平台的横向核心业务功能全景线路图(以Hadoop集群为例),其核心流程有:Hadoop集群创建->集群管理->大数据组件管理->虚拟主机管理-> ... ->Hadoop集群释放;功能全景如图1所示:

 

用例覆盖范围

1、 从产品业务功能全景出发,围绕PRD(Product Requirement Document)、结合纵向架构层次,用例无死角全面覆盖产品(论范围)。

(1)水平方向拓宽【宽度】,围绕它的产品的主生命周期由大模块至小模块、主功能至次要功能逐步扩展支叶,借用鱼骨图梳理或Xmind脑图来整理。先梳理内部,然后梳理外部对接的服务或产品场景(如:消息中心、费用中心、告警中心、文档中心、数据开发等等)。

2)横向扩展发散完成后,开始纵向挖掘【深度】,比如,大数据云平台核心架构分为四层,每一层都需要拆开了看:

  • 最顶层:UI层端对端用例走查(如前面所述),从顶层UI操作测试除了验UI结果、还要确保底层集群服务器上的实际结果与界面显示一致

  • 次顶层:第二层是门户后端Api,直接调用OpenApi的相关测试用例覆盖

  • 次底层:直接操作使用或强干预Hadoop集群服务组件、检验整个大数据云平台的质量;由于大数据平台上的服务组件非常多(有三十多),除了单个服务使用外,更要多个常用服务组件搭配组合验证。

  • 最底层:直接操作使用或强干预服务器层(增、删、停、重启、扩、缩、升、网络、磁盘、软件配置等),检验整个大数据云平台的质量

用例设计方法

从测试类型出发,有功能与非功能测试用例覆盖。本次不需要交付非功能用例,因此不展开;功能性用例设计方法:

  • 等价类划分法(正等价类、负等价类)

  • 边界值分析法(边界内、边界外)

  • 判定表分析法

  • 因果图

  • 错误推测法

    用例编写原则

  • 拆分原则: 全文制定统一的边界。比如:以模块为边界、当不同模块之间有关联互动时、预置条件作为分界线,预置条件里的内容放在上游模块验证。

  • 优先级原则: 【创建】【查看】【使用(启停等)】【修改】【删除】为序 【主场景】优先、【次要场景】其次 【正例】优先、【反例】其次

制定统一标准

以某云大数据云平台产品为例,很多需求功能统一要求,为此设计一套标准化用例:

比如: 创建新增的页面,表单输入项,需求约束统一要求(是否必填、长度限制、字符要求),设计一套标准化用例,供其他页面复用。

比如:每个模块的权限测试用例,设计统一标准用例;

比如:所有的OpenApi测试,都是针对返回码200、400、401、403、405、500的场景测试;

比如:大数据平台服务30多个,每个服务是不同的,但操作是类似:添加、启动、停止、修改配置、部署,为此设计统一标准用例 (此刻你是否有一种代码重构的既视感,定义一个标准的方法、供大家反复调用)。

前边提到过设计了多套统一标准用例,新的页面复用时,直接替换变量内容,生成当前用例。又或者需求变更的刚好是统一标准用例的内容,活用全文查找替换、一分钟搞定用例维护。

总之,必须要总结一套自己的方法来应对这么庞大的编写工作量,否则在短期的时间内无法完工。而高效编写用例的秒招,离不开可复用、找共性、提炼统一标准,借用一些手段或工具自动生成。

以某云大数据云平台产品为例,其中包含了10个以上的列表页面,对于每个列表都有分页组件、筛选、搜索、排序,这些公共组件的用例抽为【公共组件用例】,设计一套标准化用例,相关页面复用即可。

注意:统一标准用例中,可变的项用{ABC}来替换,比如:在集群查看列表中筛选集群状态时,把统一标准用例中的{ABC}替换成{集群状态}即可。

批量编写与自动生成

在用例编写过程中,发现很多情况除了{某名称或字段}不同,其它都是一样的,此时可以批量编写(如:借助Sublime或直接传变量用代码生成),这样也可以大大提高编写效率。

在编写OpenApi相关测试用例时,直接定义出一套OpenApi标准用例,以QA设计出的标准用例为模板,然后编写代码生成用例,通过读取OpenApi的Json文件,快速生成71个Api的测试用例,近1000条详细测试用例,高效。

活用全文替换

编写用例时,QA人员一定要用统一语言文字或格式,一来是给阅读的人方便、二来是方便查找替换,即通过全文查找替换能 快速维护用例。

有一次需求变更:由原来的一级菜单A001下二级菜单B002,变为了一级C001下D002;由于在整个产品的用例中,从一级菜单进入二级菜单,全部都使用:A001->B002这种格式,本次需求变更,直接全文查找替换一鍵完成。

提效手段

以上的测试实践活动,帮助团队把控质量,即"保质"。其实,测试增加,必然拉低整体速率。那么,如何使的团队不降质量标准的前提下,高效开发与测试?即"保质"的同时还要"保量"?

避免返工
前面介绍敏捷QA实践活动为得就是尽早参与、提前发现问题、预防缺陷,避免返工,从而达到高效开发。

工具代替人工(即自动化代替手动)
在项目中,开发人员的数据建模处理、指标开发、指标管理应用发布、标签API发布、数据监控,这些功能都是研发同学提炼工具,由工具自动生成代码,完成开发。大大节约了项目时间,提高了开发速度。
特别提一下EXCEL自动化测试工具(详细参见廖光明的博客文章《数据集成测试支持工具》数据集成测试支持工具 - 知乎),可以用一页EXCEL即可完成所有的数据测试用例的构造。大家都知道数据项目构建数据集是一个费时费力的活儿。有了这个EXCEL编写测试数据的工具,团队的UT大大节约了时间。

    • 提高复用、减少重复
      项目开发过程中,相同的代码逻辑抽取公共片断或者合理分层(输出中间表),这样避免相同的业务逻辑开发重复和重复测试。比如:同类指标的维度计算都是相同的,抽取了公共的维度代码片断,针对公共代码片断进行了测试验证,即使之后业务有变动,修改一处代码即可。

    • 精准抽样
      构建测试数据时,精准抽样测试。一条测试数据精准覆盖一个逻辑,避免重复用例的构造。在Review UT时,经常发现有重复场景,会提醒大家及时删除重复用例。多余的用例没有价值反而还会造成干扰至少随时用例的增多,运行速度也会影响。

    • 数据报告
      通过data filling生成数据报告,大多数据探索Checklist的结果通过数据报告即可拿到,减少人工探索的成本。

    • ETL测试

      ETL测试通过有以下几种测试类型:
      1.表数据量对比测试
      通过对比处理前后的数据量变化,验证ETL开发过程中是否有代码错误导致数据丢失,这种直接对比量表数据量的比较适用数据仓库底层仅做数据过滤和数据转化时,不太适合聚合过程的测试。
      2.统计值总量对比测试
      这种测试方法适用于对部分表进行聚合统计前后做数据无损验证。举个例子,挖掘同学在挖掘购物偏好时一般会向ETL同学提交需求,要求把源数据零散的查看和购买等行为聚合统计为某类目在一天内的访问、购买次数,这种情况由于聚合过程存在,源表和结果表数据量必然不同,此时可通过统计源表的数量总量对比结果表SUM(行为次数)的方式来确保聚合过程中是否有数据量损失。
      部分聚合统计过程可能缺失存在正常的损失数据,这种情况下也需要对比源表和结果表数据,分析这种损失是否合理。
      3.数据清洗测试
      这种情况首先需要分析出那些数据是异常数据,举一些例子:ip、imei、邮箱、mac地址等这些信息本身是有规则的,可以考虑使用对应的正则来判断是否存在符合相应规范,不符合的数据视为异常数据清洗掉,又如部分数据中存在明显的乱码等数也是属于异常数据,测试过程可通过统计源表符合规则的数据总量和结果表的数据量对比,判断数据异常数据是否过滤正常
      4.数据转化测试
      由于各业务的数据源对于各种字段的格式并不统一,所以数仓在ETL开发过程中会对字段的格式做统一处理。例如时间字段,有些业务使用时间戳,有些业务使用日期时间格式,这些数据数仓会按照数仓定义的规范做相关数据转化,测试过程可通过极值、平均值且对比源表数据的方式验证转化是否正确。
      5.枚举字段验证(例如:年龄、性别、学历、职业)等:
      枚举字段主要验证两方面:通过group by 找出全部枚举值,判断枚举分布是否符合常识(如大姨妈类软件男女比为8比2,通过认为违背常识)、是否存在异常枚举(异常枚举需过滤);验证ETL开发过程是否将各业务各自定义枚举值是否映射为数仓标准的枚举值,如将某业务性别的中的0,1,2分别映射为F,M,null
      6.敏感字段加密验证
      验证敏感信息是否有做加密操作,加密后的数据是否可正常解密等
      7.数字字段的极值验证
      验证部分数值字段最大最小平均值等,是否符合常识,比如商品收藏数为负数,通常这种数据需过滤
      8.抽样测试验证
      9.字段逻辑验证
      通过字段本身一些互斥属性也可以发现部分数据源异常或者ETL开发过程中导致的异常,举例如下:
      枚举类型的字段查看枚举分布:
      性别分布:查看性别分布,根据产品用户人员的特点分析性别是否合理
      地域分布:查看网民的省份分布,省份分布可以参考网上的中国网民省份排名
      活跃小时段:一般来说大部分产品凌晨用户不太活跃,活跃时间也有规律,要结合具体产品(如办公产品应该是上班时间活跃,休闲产品午休时间可能更活跃)
      年龄分布:90年后的用户应该是个峰值
      学历比例:结合社会情况看
      操作系统:安卓 ios pc结合实际产品应该有合理的比例
      字段本身的逻辑性:
      购物订单本身不应该同一时间出现多次
      统计数:通过查看数量判断正常否,比如一天购物次数如果超过100,是不是需要查下是不是正常
      新闻类目、音乐歌手和语种、考拉类目和品牌被用户触发的总次数排行,可以结合实际情况看看是否合理
      手机设备、汽车、美妆、家电的品牌和型号可以看被触达的排行,结合实际情况分析是否合理
      有多个设备(或车)的id占总id数的比例(理论上有但是不应该太高)
      字段之间的逻辑关系:
      ip和城市对应关系
      订单的商品单价和订单总价的计算关系
      七天活跃城市和30天活跃城市相等的数量占总用户数的比例,一般来说这种比例应该很高,只有少数出差的人才会是不同的
      设备型号和设备品牌的对应关系抽查
      车型号和车品牌的对应关系抽查
      字段之间的互斥关系:
      地域与时间互斥:如同一个时间在不同城市
      职业和年龄互斥:比如学生一般小于25
      年龄和是否有小孩:18岁一下一般不会有小孩儿

      三.数据监控

      测试上线完成后,集群会对相关任务进行日常调度刷数据,由于网络、传输等各个环节都可能出问题从而导致数据跑不出来,所以已上线的表需要通过监控的方式来保证后续的数据正常。
      数据监控可以考虑通过使用hive提供的原生接口,开发一些内部的工具进行相关监控。

    • 【知识】ETL大数据集成工具Sqoop、dataX、Kettle、Canal、StreamSets大比拼 - 简书

    • 大数据性能测试工具-YCSB · TesterHome

    • 大屏驾驶舱

    • (4)数据同步之道(Sqoop、dataX、Kettle、Canal、StreamSets)
      https://www.modb.pro/db/86290

      (1)数据抽取工具比对:Kettle、Datax、Sqoop、StreamSets
      https://blog.csdn.net/xiaozm1223/article/details/89670460

      (2)ETL学习总结(2)——ETL数据集成工具之kettle、sqoop、datax、streamSets 比较
      https://zhanghaiyang.blog.csdn.net/article/details/104446610

      (3)数据集成工具Kettle、Sqoop、DataX的比较
      https://www.cnblogs.com/bayu/articles/13335917.html

      (5)Datax与Sqoop的对比
      https://blog.csdn.net/lzhcoder/article/details/107902791

      (6)Datax和Kettle的对比
      https://blog.csdn.net/lzhcoder/article/details/120830522

      (7)超详细的Canal入门,看这篇就够了!
      https://blog.csdn.net/yehongzhi1994/article/details/107880162

      让人眼前一亮的数据分析的报告,竟可自动生成啊_报告自动生成_Python数据挖掘的博客-CSDN博客

    • GitHub: https://github.com/pandas-profiling/pandas-profiling

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

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

相关文章

SpringBoot医药管理系统设计+第三稿+文档

博主介绍:✌在职Java研发工程师、专注于程序设计、源码分享、技术交流、专注于Java技术领域和毕业设计✌ 项目名称 SpringBoot医药管理系统设计第三稿文档 视频演示 SpringBoot医药管理系统设计第三稿中期检查表ppt外文文献翻译文献综述开题任务书查重报告安装视频讲…

【计算机网络】第五章数据链路层-电子科技大学2023期末考试

第五章 数据链路层 学习目的 目的1:理解链路层服务的主要功能 差错检查、纠错 共享广播信道:多点接入问题(multiple access) 链路层寻址(link layer addressing) 局域网技术:Ethernet, VLANs 目的2:链路层技术的实现 点到点…

【Java入门】-- Java基础详解之【程序控制结构】

目录 1.程序流程控制介绍 2.顺序控制 3.分支控制if-else 4.嵌套分支 5.switch分支语句 6.for循环控制(重点) 7.while循环控制 8.do...while循环控制 9.多重循环控制(重难点!) 10.跳转控制语句break 11.跳转…

计算机课程个性化内容推荐系统的设计与实现+文档等

博主介绍:✌在职Java研发工程师、专注于程序设计、源码分享、技术交流、专注于Java技术领域和毕业设计✌ 项目名称 计算机课程个性化内容推荐系统的设计与实现文档等 视频演示 计算机课程个性化内容推荐系统的设计与实现 系统介绍 计算机课程个性化内容推荐系统的设…

Car Guide

文章目录 科目一第一章 机动车驾驶证申领和使用规定第一节 驾驶证的许可?种类和有效期第二节 驾驶证的申领第三节 驾驶证的使用第四节 驾驶考试第五节 违法记分制度 第二章 交通信号第一节 交通信号灯第二节 交通标志第三节 交通标线第四节 交警手势 第三章 道路交通…

Ansible之playbooks剧本

目录 一、playbooks1、playbooks简述2、playbooks剧本格式3、playbooks组成部分4、playbooks启动 二、playbook编写 apache 的yum安装部署剧本三、playbook编写 nginx 的yum安装并且能修改其监听端口的剧本四、 playbook的定义、引用变量1、基础变量的定义与引用2、引用fact信息…

Stable Diffusion webui 基础参数学习

哈喽,各位小伙伴们大家好,最近一直再研究人工智能类的生产力,不得不说随着时代科技的进步让人工智能也得到了突破性的发展。而小编前段时间玩画画也是玩的不可自拔,你能想想得到,一个完全不会画画的有一天也能创作出绘…

【计算机网络】第一章概论-电子科技大学2023期末考试

相关术语 URI:Uniform Resource Identifier 统一资源标识符,指的是一个资源 URL:Uniform Resource Location 统一资源定位符,URI的子集,用地址定为的方式指定一个资源 URN:Uniform Resource Name 统一资…

MySQL事务相关笔记

杂项 InnoDB最大特点:支持事务和行锁; MyISAM不支持事务 介绍 一个事务是由一条或者多条对数据库操作的SQL语句所组成的一个不可分割的单元,只有当事务中的所有操作都正常执行完了,整个事务才会被提交给数据库。事务有如下特性…

【使用指导】wifi蓝牙二合一模块LCS2028与服务器的数据收发功能测试指导

在物联网智能家居、智能照明、智能楼宇、智慧工厂、智能制造等领域的数据透传、智能控制应用中,支持UART串口通信的低功耗WiFi蓝牙二合一模块应用极为广泛。模块性能测试环节中会测试模块与服务器的数据收发功能,确保功能性能够满足项目应用需求。本篇就…

深入理解 SpringBoot 日志框架:从入门到高级应用——(四)Logback 输出日志到 QQ邮箱

文章目录 获取 QQ 邮箱授权码添加依赖编写 SMTPAppender运行结果 要将 Logback 输出日志到 QQ 邮箱,需要执行以下步骤: 在 QQ 邮箱中获取授权码。在你的 SpringBoot 项目中添加 Logback 依赖和 SMTP 协议实现库,例如 Email 依赖。在 Logback…

NOTA-Me-Tetrazine,NOTA-甲基四嗪,大环化合物具有良好的配位和鳌合能力

文章关键词:甲基四嗪修饰大环配体,双功能螯合剂,大环化合物 ●中文名:NOTA-甲基四嗪 ●英文名:NOTA-Me-Tetrazine ●外观以及性质: 西安凯新生物科技有限公司供应的​NOTA-Me-Tetrazine中四嗪修饰大环配体&…

LaTeX插入参考文献

接着上一篇,用EndNote组织参考文献,然后再导入到LeTex中感觉不太好用,然后就学习了一下BibTeX来管理参考文献,发现还可以,这里记录一下,方便以后查阅。 LaTeX插入参考文献 thebibliographyBibTeX参考资料 t…

总结901

目标规划: 月目标:6月(线性代数强化9讲,考研核心词过三遍) 周目标:线性代数强化5讲,英语背3篇文章并回诵,检测 每日规划 今日已做 1.回环复习之前背过的文章。 2.背单词&#xf…

想了解3,4,6-Tri-O-acetyl-D-galactal,4098-06-0,D-三乙酰半乳糖烯?点击这里查看详细信息!

文章关键词:糖化学试剂,三乙酰半乳糖烯 3,4,6-Tri-O-acetyl-D-galactal |3,4,6-O-三乙酰基-D-半乳糖烯,D-三乙酰半乳糖烯|CAS:4098-06-0 | 纯度:95%一、结构式: 二、试剂参数信息: CAS&#x…

Redis从入门到精通进阶篇之持久化RDB和AOF机制详解

文章目录 RDB持久化AOF持久化RDB与AOF的混合持久化 Redis 6的持久化机制主要有两种:RDB(Redis DataBase)和AOF(Append Only File)。本文将详细介绍这两种持久化方式的工作原理和配置要点。 RDB持久化 RDB持久化是将当…

中国电子学会2023年05月份青少年软件编程Scratch图形化等级考试试卷一级真题(含答案)

2023年5月 Scratch一级真题 题数:37 分数:100 测试时长:60min 一、单选题(共25题,共50分) 1. 看图找规律,请问下图红框中是?(D)(2分) A. B. C. …

C++线程库(1)

C线程库(1) 线程进程基础概念多线程线程调用函数的底层值作为参数引用作为参数右值引用作为参数 join和destach区别joinable函数 jthread(C20)同步异步(简述)互斥(简述)阻塞非阻塞递…

SpringAOP+自定义注解简单使用

一、SpringAOP简述 SpringAOP可以帮助我们在不修改源代码的前提下实现功能增强,其底层实现原理基于Java动态代理或者CGLIB。 之前我们使用 execution表达式指定被AOP增强的方法:(execution关键字用于描述哪些方法需要切面逻辑) 但是这样使用非常不灵活&a…

网络层:路由选择协议

1.网络层:路由选择协议 笔记来源: 湖科大教书匠:路由选择协议概述 湖科大教书匠:路由信息协议RIP的基本工作原理 湖科大教书匠:开放最短路径优先OSPF的基本工作原理 湖科大教书匠:边界网关协议&#xff08…