什么是大数据

大数据是指无法在一定时间范围内用传统的计算机技术进行处理的海量数据集。

对于大数据的测试则需要不同的工具、技术、框架来进行处理。

大数据的体量大、多样化和高速处理所涉及的数据生成、存储、检索和分析使得大数据工程师需要掌握极其高的技术功底。

需要你学习掌握更多的大数据技术、Hadoop、Mapreduce等等技术。

大数据测试策略

大数据应用程序的测试更多的是去验证其数据处理而不是验证其单一的功能特色。

当然在大数据测试时,功能测试和性能测试是同样很关键的。

对于大数据测试工程师而言,如何高效正确的验证经过大数据工具/框架成功处理过的至少百万兆字节的数据将会是一个巨大的挑战。

因为大数据高效的处理测试速度,它要求测软件工程师具备高水平的测试技术才能应对大数据测试。

我们来看下大数据处理的三个特性:

  • 大批量

  • 实时性

  • 可交互

另外,数据质量也同样是大数据测试的一个重要维度。

因此在进行应用程序测试之前,必须确保数据质量,并且考虑把数据质量作为数据库测试的一部分。涉及数据的各种特性的检验,例如一致性、准确性、重复性、连贯性、有效性及完整性等等。

大数据应用测试步骤

下面我们一起看看大数据应用的测试过程是怎么样的。

整体而言,大数据测试大体可以分为三大步骤:

  • 步骤一,数据预处理验证
    在进行大数据测试时,首先要预hadoop前验证数据的准确性等等。

  1. 我们数据来源可能是关系数据库、日志系统、社交我那个落等等,所有我们应该确保数据能正确的加载到系统中

  2. 我们要验证加载的数据和源数据是一致的

  3. 我们要确保正确的提取和加载数据至hdfs中

  • 步骤二,Map Reduce验证 在进行大数据测试时,第二个关键步骤是“Map Reduce”验证。在本阶段,我们主要验证每一个处理节点的业务逻辑是否正确,并验证在多个运行后,确保:

  1. Map Reduce过程工作正常

  2. 数据聚合、分离规则已经实现

  3. 数据key-value关系已正确生成

  4. 验证经过map reduce后数据的准确性等特性

  • 步骤三,结果验证 在本阶段主要验证在经过大数据工具/框架处理后,生成的最终数据的成果。

主要验证:

  1. 验证数据转换规则是否正确应用

  2. 验证数据的完整性和是否成功持久化到目标系统

  3. 验证无数据损坏

架构测试

Hadoop处理海量数据是非常的消耗资源的,良好的架构是确保大数据项目成功的基础。糟糕的涉及会导致性能急剧的下降,进而使得系统无法满足我们的需要,因此我们需要,或是说至少在Hadoop环境下进行性能测试、故障恢复测试,以应改进效率和应对可能的最糟糕的情况。

性能测试是一个复杂的工作,它贯穿整个测试周期,需要关注内存、CPU、网络等等指标。

故障恢复测试则是验证数据处理过程中可能出现的故障,为做好意外的恢复做好相应的应对措施。

性能测试

大数据性能测试主要包含以下几个部分:

  • 数据提取、存储效率

在本阶段,我们主要验证大数据应用从源数据中提取、加载数据的效率。

一是验证单位时间内数据的提取、加 载效率。

二是验证数据持久化至mongodb等库的效率等等

  • 数据处理

在本阶段,我们验证map reduce任务的执行效率,重点关注的是数据处理的效率。当然这个过程可能也会涉及到数据的持久化相关指标,例如存储至HDFS读写效率等等,同样也会涉及在内存中处理效率,即我们的处理算法效率等等

  • 子组件性能

大数据处理,一般都会需要综合利用各种组件来辅助处理,所以我们也是需要关注这些辅助组件的性能

性能测试策略

大数据应用性能测试涉及海量的结构化和非结构化的数据,与我们平时所面对的业务系统有所不同,所以我们需要针对大数据应用制定特定的测试策略,以应对海量的数据。

根据上图性能测试执行过程一般是这样的:

  1. 在性能测试前需要先初始化大数据集群环境

  2. 梳理和设计大数据性能测试场景

  3. 准备大数据性能测试脚本

  4. 执行并分析测试结果(如果指标异常,则调优相应的组件并重新测试)

  5. 优化配置

性能测试基础准备

在大数据性能测试时,需要准备相关的基础工作,如下:

  • 数据准备,我们需要在不同的节点准备什么量级数据?

  • 日志预估,在测试过程中,可能会生成多大的日志,日志的可能增量是什么样的?

  • 并发,在测试时,可能会有多少线程并发读和写?

  • 超时设置,应对设置怎样的连接超时?查询超时?写超时等等?

  • JVM参数,如何设置最优的jvm参数,heap size、GC机制等等

  • Map Reduce,我们应该选择什么样的sort、merge等算法?

  • 消息队列,消息队列长度会怎么样?等等

必备的测试环境

大数据测试不同于常规的应用测试,你应该具备以下一些基础环境:

  • 拥有足够的存储设备来存储和处理大数据

  • 拥有集群来做分布式节点和数据处理

  • 至少拥有足够的cpu、内存来确保有高性能的处理基础

大数据测试的挑战

对于从事大数据测试的软件测试工程师而言,与传统的测试工作相对比,我们可能面临的以下几个可能的挑战:

  • 自动化
    自动化测试是从事大数据测试必备的技术,但自动化测试工具可能并不具备处理测试过程所引发的异常的能力,意味着现有工具可能并不适用,编程能力将是更好的一种技能。

  • 虚拟化 当前业内大规模使用虚拟化技术,但虚拟机的延迟有可能造成大数据实时测试处理的异常。

对大数据而言,管理影像信息也将是一个巨大的问题。

  • 海量数据集

  1. 需要验证的数据量巨大,而且需要更快的处理速度

  2. 需要有效的自动化测试手段

  3. 需要尽可能的跨平台

大数据性能测试的挑战

对于从是大数据性能测试,与传统性能测试相比较,我们要面临是样的挑战呢,可能有以下几个方面:

  • 技术的多样化,复杂化,面对不同的大数据解决方案,我们可能需要掌握不同的技术和定制不同的测试解决方案

  • 无通用的工具,目前业界暂无通用的标准的大数据性能测试工具,这意味着我们需要根据大数据应用解决方案技术,要自行开发或整合多种相关工具才可能解决问题

  • 测试环境复杂化,因为海量的数据,我们所需要测试环境亦会更加复杂,所消耗的基础成本会更高

  • 监控解决方案,目前有的监控解决方案有限,但通过整合不同的监控工具,大致可能拥有一套相对可行的监控解决方案

  • 诊断方案,由于大数据应用所涉及的技术、环境复杂性,对于问题的诊断调优,我们需要根据实际情况来进行开发定制

从上面几个方面来看,从事大数据性能测试所要面临的问题是相对复杂的,尤其对当下国内的测试工程师而言,要走的路还很长,很艰难。

小结

  • 随着大数据工程和数据分析逐步的进入新的阶段,大数据测试将成为必然,也必定成为未来的一个热门的职业方向

  • 大数据处理必须是批量的,实时的、可交互的

  • 大数据应用测试的三大阶段:

  1. 数据验证

  2. Map Reduce 验证

  3. 数据处理结果验证

  • 架构测试也是非常重要的一个测试类型,糟糕的架构可能直接导致您的大数据项目的失败

  • 性能测试三大节点:

  1. 数据提取、存储效率

  2. 数据处理效率

  3. 子组件工作效率

  • 大数据测试不同于传统的测试,不仅仅是类型、策略的不同,工具等具体技术都会有区别

  • 大数据因其复杂性,其测试所面临的挑战也会不同于传统的测试

  • 大数据性能测试将会是软件测试工程师进一步艰难攻克的目标之一

注:本文参考的资料包括但不限于IBM、Microsoft、hadoop、spark、apache等等官方网站

脚本:开源优测

图片:开源优测

来源:开源优测


/ END.

猪圈子

微信号:shichaogg

推荐理由:

致力于python爬虫系列及其他python相关经典好文集中地,以及程序员娱乐生活圈趣事分享(小编从业测试岗位四年SAAS平台+一年电商平台测试相关工作)积极分享趣事的90后免费领取学习资料 ,关注后,后台回复"抓包"测试"python"

▼长按下方↓↓↓二维码识别关注

搜索微信:shichaogg

部分图片来源于网络,如有侵权请联系小编删除


告诉你的朋友分享他人/朋友圈

软件测试之大数据测试相关推荐

  1. 大数据测试的的主要包括哪些内容,做第三方大数据测试的软件测评中心有哪些?

    从测试手段来区分:功能测试.性能测试.自动化测试.安全测试.接口测试就有多种. 那么大数据测试到底测啥以及如何测,非常遗憾的告诉伙伴们,目前业界没有通用的方法定义大数据测试,本篇借鉴传统测试的思想跟大 ...

  2. 全程软件测试之测试需求分析与计划

    全程软件测试之测试需求分析与计划 在项目启动之后,就要着手软件项目的计划,包括软件测试计划.软件测试计划是整个开发计划的组成部分,同时,它又依赖于软件组织过程.项目的总体计划.质量文化和方针.在测试计 ...

  3. 《Google软件测试之道》- Google软件测试介绍

    <Google软件测试之道>- Google软件测试介绍 2015-05-21 目录 1 质量与测试   2 角色   3 组织结构   4 爬.走.跑   5 测试类型   相关链接 与 ...

  4. 大数据综合能力测试_如何完成大数据测试?资深测试从功能测试角度为你分析分析...

    大数据,已经成为了这个时代的代名词.当今的互联网属于大数据时代,大数据时代的到来,颠覆了以往对数据的惯性思考方式,要保证数据执行,软件质量,测试质量,数据使用场景等,都需要重新变换一个新的角度,对软件 ...

  5. 一名合格的大数据测试工程师,需要掌握哪些基本知识

    关于大数据测试策略.大数据应用测试步骤.大数据测试流程等等,你应该也听到很多人给你科普过这些基本的知识了,在这就不再冗述了. 今天轻松一下,分享一些有趣的数据主要来说下,成为大数据测试工程师前,你必需 ...

  6. 软件测试之语音识别(ASR)测试

    软件测试之语音识别(ASR)测试 **写在前面:测试不是一种目的,而是一种保证软件质量的手段** 一.语音识别(ASR)评估指标 在测试语音识别的过程中,衡量识别内容的准确性,一般通过如下指标进行评估 ...

  7. 大数据测试是什么意思?测试分析方法有哪些?

    大数据时代下的现代生活已经形成一个信息高度发达流通的社会,大数据应用已经渗透到各行各业发展中,我们每次上网浏览的痕迹,每次网络搜索.电子支付都与大数据息息相关. 而关于大数据测试也随着大数据的应用变得 ...

  8. 软件测试之独步武林系列(一)

    软件测试之独步武林系列(一) 开篇 风吹过,卷起了漫天红叶. 剑气袭人,天地间充满了凄凉肃杀之意... 败了,终究还是败了,留给小明的只剩下身后的那万丈深渊. ------.. 最后的一点枫叶碎片已落 ...

  9. VMware 搭建大数据测试平台(CDH6.2.1)

    文章目录 VMware 搭建大数据测试平台 1.安装虚拟机 1.1 创建一台虚拟机 1.2 开机安装CentOS 1.3 配置NAT网络 1.4 配置CentOS系统 1.4.1 修改映射关系 1.4 ...

最新文章

  1. mysql基本命令行
  2. 使用dispatch_group来进行线程同步
  3. MySQL的视图、事务和索引
  4. C# Task 循环任务_理解C#中的ValueTask
  5. 前端实现旗帜飘动效果系列 (Ⅲ):canvas2D实现(2)
  6. SAP系统和微信集成的系列教程之八:100行代码在微信公众号里集成地图搜索功能
  7. 【spfa】假期计划(jzoj 3936)
  8. 5G三兄弟NB-IoT排老几?NB-IoT介绍
  9. Tomcat启动时项目重复加载,导致资源初始化两次的问题
  10. 7.Python学习笔记:[字典]
  11. nginx 下开启pathinfo模式
  12. Android Studio 3.4功能
  13. TextEditor
  14. 京瓷2211打印机清零_打印机墨粉盒清零的方法
  15. 汇编学习 step by step
  16. 金山毒霸遭国际评测组织除名
  17. html 脚本错误,脚本错误怎么解决,教您脚本错误怎么解决?
  18. python图片提取文字软件_这款Python 库 4行代码提取图片中的文字
  19. git删除远程的commit
  20. (轻量级自适应加权网络图像超分辨)阅读笔记

热门文章

  1. UI自动化基础 - selenium快速入门教学
  2. oracle递归查询函数吗,oracle递归查询函数
  3. 四代服务器的芯片是否为,华为服务器计算芯片搭配7nm工艺制造
  4. 关于php一句话木马
  5. 计算机网络技术中专升大专,丽水中专学历计算机网络技术专业报名,成人中专可以升国开大专吗...
  6. 共享锁与排他锁的概念与区别
  7. vue排除proxyTable配置错误调试方法
  8. 重庆大学计算机学院录取名单2020,【重磅】重庆大学2020年拟录取硕士研究生(统考)名单公示!...
  9. 函数指针、函数指针数组,函数指针数组的指针
  10. 文言编程语言/wenyan-lang