什么是大数据测试?

大数据测试,通常是对采用大数据技术的系统或应用的测试。它可以分成两个维度,一个是数据的测试,另一个是大数据系统或应用产品的测试
数据的测试主要关注数据的完整性、准确性、一致性等,是大数据测试中非常重要的一环。若数据测试不够严格,则后续所有的数据应用都可能出现偏差甚至错误,所以做好数据测试很关键
大数据系统一般指使用 Hadoop 生态系统组件搭建的或自主研发的大数据系统。自主研发的大数据系统主要包括数据存储、计算、分析等应用。大数据应用产品比较丰富,典型的有 BI 报表、数据挖掘产品、数据分析平台等

大数据测试与传统数据测试的区别

大数据测试与传统数据测试在数据量级、数据结构、验证工作及环境要求等多方面存在差异

特性 大数据测试 传统数据测试
数据量级 需要处理的数据量级比较大 涉及的数据量一般
数据结构 处理的数据包括结构化、非结构化、半结构化数据 以结构化数据为主
验证工作 验证环节多,数据量大,较复杂 抽取数据来验证,相对简单
环境要求 依赖 HDFS、YARN、Zookeeper 等集群环境 依赖传统数据库
测试工具 依赖 Hadoop 生态系统组件及 ETL 测试工具 依赖传统数据库及部分测试工具

大数据测试流程

大数据测试流程与传统测试流程相似,主要分为以下几个步骤:

  1. 分析业务需求
  2. 制定测试计划
  3. 设计测试用例
  4. 准备测试数据
  5. 大数据测试执行
  6. 生成测试报告并做结果分析
  7. 测试完成

在大数据测试中,我们需要以流程规范为依托,以方法策略为指引,对各个环节做好质量把控,提前发现问题,保证项目的正常交付及应用

大数据测试类型及方法

大数据测试类型及方法虽广泛,主要关注的还是以下几个方面:

数据质量测试

  • 完整性:数据信息是否存在缺失的情况。
  • 一致性:数据是否遵循了统一的规范,数据之间的逻辑关系是否正确和完整。
  • 准确性:数据记录的信息是否存在异常或错误。
  • 唯一性:数据是唯一不重复的。
  • 及时性:数据从产生到可以查看的时间间隔,也称数据的延时时长。
  • 合法性:数据的格式、类型、值域和业务规则是否符合用户的定义

    功能测试

  • 数据处理逻辑检查:异常值、脏数据、特殊数据

  • 主键结构是否合理、去重规则是否合理、输入输出是否正确
  • 数据存储检查:表类型选择、是否压缩
  • SQL 文件测试:开发规范、SQL 语法
  • Shell 脚本测试:输入输出文件路径、输出日志、参数配置是否合理
  • 调度任务测试:任务是否支持重跑、任务依赖关系

    性能测试

  • 基准测试:对大数据系统基础能力的测试

  • 稳定性测试:对系统长期稳定运行能力进行测试
  • 压力测试:验证系统在较大压力下,系统是否仍然能够正常运行
  • 负载测试:确定在满足性能指标情况下系统所能承受的最大负载量
  • 容量测试:测试预先分析出反映软件系统应用特征的某项指标的极限值
  • 并发测试:测试多个用户并发访问同一个应用、模块、数据时是否产生隐藏的并发问题

    ETL 测试

    ETL 测试是一个以数据为中心的测试过程,用于验证数据是否已按预期方式转换并加载到目标中。在实际工作中,我们经常需要根据不同的业务需求定制不同的数据,如何验证提供的业务数据最终的正确性,这就涉及 ETL 测试

    如何学习大数据测试?

    大数据应用系统庞大复杂,此类项目测试时涉及多种工具、技术和框架。为保障大数据项目在通过测试后,可以稳定、安全、无误地运行,大数据测试工程师必须掌握数据采集、数据存储、数据计算和分析、数据管理调度、数据测试方法及方案设计、数据测试平台建设等必备知识及其他各类软硬素质

  • 计算机基础知识:如数据结构与算法、计算机网络、Linux、数据库、代码版本管理工具等

  • 至少掌握一门编程语言:如 Python、Java、Scala、Go 等
  • 大数据技术:如大数据发展、大数据类项目流程、大数据处理流程、大数据生态系统(HDFS、MapReduce、Hive、YARN、Zookeeper、Kafka、Flink、Spark、HBase、Azkaban等)
  • 大数据测试技术:如大数据测试方法论、大数据测试工具、大数据测试技能
  • 其他软技能:如具备较强的思维能力、良好的沟通能力、问题分析定位能力、责任心及好奇心等
  • 持续学习:如具备掌握技术前沿趋势、洞察及学习新技术及知识的能力

图片1.jpg