什么是大数据测试?有哪些类型?应该怎么测?

news/2024/12/22 15:24:46/

随着目前世界上各个国家使用大数据应用程序或应用大数据技术场景的数量呈指数增长,相应的,对于测试大数据应用时所需的知识与大数据测试工程师的需求也在同步增加。

针对大数据测试的相关技术已慢慢成为当下软件测试人员需要了解和掌握的一门通用技术。

一、什么是大数据?

传统的关系型数据库(例如MySQL,Oracle,SQL Server)擅长处理可以存储在行和列中的结构化数据。但是,如果我们有不遵循结构的非结构化数据,那么再选择关系型数据库就不是正确的方法。

对于大数据而言,我们所拥有的大量数据可能以任何类型的格式进行存储,例如图像,音频等,每条数据记录的结构和格式可能都不相同。与传统数据库相比,大数据具有高容量,高速和多样性等特点,而传统数据库也将很难处理这些问题。

    • 容量:大数据应用采集的数据量很大,它们可能产生于不同的来源,例如智能传感器,工业仪表读数,金融业务交易等;
    • 速度:大数据应用的数据都是高速创建的,所以处理的速度必须快。类似物联网设备,智能仪表设备等都可以以前所未有的速度自动生成数据;
    • 种类:数据会有多种格式。它可以是数字,文本,音频,视频,卫星采集图像,天气数据等。

二、大数据测试类型

测试大数据应用程序更多的是验证其数据处理,而不是测试软件产品的个别功能。当涉及到大数据测试时,性能和功能测试是关键。

在大数据测试中,QA工程师数据处理可以是三种类型:批量、实时、交互。

与此同时,数据质量也是大数据测试的一个重要因素。它涉及检查各种字段,如准确性,重复,一致性,有效性,数据完整性等

三、大数据测试工程师岗位要求

  • 熟练数据库相关知识,熟悉大型分布式数据库,精通SQL查询和优化;
  • 有一定的数据分析、数据仓库、大数据测试经验,对数据有较高敏感性;
  • 熟悉Linux系统和常用命令,具备环境维护和部署能力;
  • 有Shell、Python脚本编程能力和实际使用经验;
  • 性格开朗乐观,责任心强,工作积极主动,具备良好的沟通能力和团队协作能力;
  • 有较强的逻辑思维和解决问题能力,能主动进行技术钻研学习;
  • 有Hadoop,Spark/Flink,Hive等常用大数据技术或组件使用经验优先;
  • 有BI、数据大屏、数据仓库、推荐系统、AI算法等测试经验者优先。

四、大数据测试应该要怎么做?

大数据测试工程师总的来说需要熟悉的数仓规范和数据测试流程.

(1) 熟悉数仓规范

1. 数据质量规范

数据质量规范是保证数据仓库数据质量的关键。在项目中,我们制定了一系列的数据质量规范,包括数据清洗、数据校验、数据标准化、数据去重、数据加工等方面。我们通过使用ETL工具和自定义脚本来实现数据的清洗和加工,并结合数据质量规范来保证数据的准确性和一致性。

2. 数据模型规范

数据模型规范是数据仓库建设的基础。在项目中,我们使用了维度建模和星型模型来设计数据模型,同时对数据模型进行了规范化设计,包括字段命名、数据类型、主键、外键、索引、分区等方面。我们遵循了一些数据建模的最佳实践,例如避免使用含义不明确的缩写、遵循命名规范、保证主键唯一性等。

3. 数据安全规范

数据安全规范是保障数据仓库数据安全的关键。在项目中,我们采用了多层次的安全措施来保护数据安全,包括数据加密、用户权限管理、数据备份和恢复、数据审计等方面。我们使用了一些安全技术和工具,例如SSL加密、数据脱敏、访问控制列表(ACL)等。

4. 数据可视化规范

数据可视化规范是将数据仓库数据呈现给最终用户的关键。在项目中,我们使用了多种数据可视化工具和技术来呈现数据,例如报表、仪表盘、图表等。同时,我们也遵循了一些数据可视化规范,包括数据展示方式、颜色搭配、字体大小、数据标签、趋势分析等方面。我们通过设计简洁、易懂、易用的数据可视化界面来帮助最终用户更好地理解和利用数据。

5. 数据备份与恢复规范

数据备份与恢复规范是保障数据仓库数据可靠性和可用性的关键。在项目中,我们制定了一系列的数据备份与恢复规范,包括备份策略、备份频率、备份存储位置、恢复测试等方面。我们使用了多种备份技术和工具,例如全量备份、增量备份、冷备份、热备份等,同时也通过定期的恢复测试来验证备份的可靠性和恢复的准确性。

6. 数据标准化规范

数据标准化规范是保证数据仓库数据一致性和可维护性的关键。在项目中,我们制定了一系列的数据标准化规范,包括数据字典、元数据管理、数据词汇表、数据编码、数据格式等方面。我们通过使用数据字典和元数据管理工具来管理数据,统一定义数据规范和数据词汇表,确保数据的一致性和可维护性。

(2) 数据测试流程

7. 数据准备阶段 oracle mysql

在数据测试流程中,数据准备是非常重要的一步。在项目中,我们通常会从多个数据源收集数据,并对数据进行清洗、转换、加工和整合,以满足业务需求。在数据准备阶段,我们需要制定数据采集计划、数据清洗规范、数据转换规范、数据整合规范等,并使用ETL工具和自定义脚本来实现数据的准备。

8. 数据验证阶段 kettle etl datax

在数据准备完成后,我们需要对数据进行验证。在项目中,我们通常会使用数据验证工具和自定义脚本来实现数据验证,包括数据完整性、数据准确性、数据一致性、数据重复性等方面。我们会制定数据验证计划和测试用例,并对数据进行逐一验证,确保数据满足业务需求和数据质量规范。

9. 数据分析阶段 web展示

在数据验证完成后,我们需要对数据进行分析。在项目中,我们通常会使用数据分析工具和自定义脚本来实现数据分析,包括数据探索、数据挖掘、数据可视化等方面。我们会制定数据分析计划和测试用例,并对数据进行逐一分析,以发现数据中的趋势、异常和规律。

10. 数据报告阶段

在数据分析完成后,我们需要对数据进行报告。在项目中,我们通常会使用报告工具和自定义脚本来实现数据报告,包括报告设计、报告生成、报告分发等方面。我们会制定报告计划和测试用例,并对报告进行逐一验证,以确保报告的准确性和可读性。

11. 数据维护阶段 kettle etl datax

在数据测试流程中,数据维护也是非常重要的一步。在项目中,我们需要对数据进行定期维护,包括数据备份、数据恢复、数据更新、数据清理等方面。我们会制定数据维护计划和测试用例,并对维护过程进行逐一验证,以确保数据的可靠性和可用性。

五、大数据测试完整流程

遵循:需求调研+分析->测试策略计划制定->测试用例编写->执行测试->线上验证测试->测试总结的流程。

1.需求调研+分析

测试若不清楚需求的背景现状是无法真正做好测试、保证产品质量的。

需求分析的越透彻,后续的工作就越顺利。这个步骤是需要产品、开发、测试相互补充辅助完成。

2.测试策略计划制定

通过开发的技术架构评审会,测试会了解开发的架构逻辑,表结构设计,开发排期,从而制定测试策略方法,测试重点,测试工具选用,测试排期,风险预估等

3.编写及评审测试用例

测试用例需要覆盖所有的测试场景:正常的,异常的、功能逻辑的,接口的、性能的等等。

测试用例的目的:从来就是为了更好执行测试,更好的保证执行测试时的高覆盖率和高通过率,绝对不是为了写用例而写用例。

测试工具的选择遵循两个重要标准:

1)清晰展现测试思路和逻辑。

2)方便快速评审及执行测试。

目前我们所使用的的用例管理工具是matrix+easytest+freemind+excel,根据不同的需求场景,选择不同的工具。

4.用例执行测试

执行测试包括两部分:

第一部分:每周平均两次的迭代版本测试,这种类型的执行测试以手工测试为主工具为辅。

第二部分:定期执行部分, 主要依赖工具执行。用来做web、接口的功能测试和性能测试,包括selenium+git+idea、easytest、jmeter、beyondcompare这类工具分别设置了不同的执行周期,定期的进行全产品线的回归测试,进一步保证产品功能逻辑及接口功能的正确及可用性。

5.线上验收测试

上线后,第一时间针对上线更新内容进行线上回归测试,并且快速反馈给开发和产品,做出决策;上线验证完成后,根据实际上线结果向项目所有成员发送上线测试报告;

6.测试总结

包括:文档整理、技术总结、项目概况综述。

1)文档整理

针对项目所涉及的环境数据、业务数据等实际场景做项目后的总结整理。

2)技术总结

主要是针对项目中用到的工具技术,所遇到的难点或新的突破和改进。

3)项目概况综述

包括需求覆盖率、需求遗漏变更率、开发自测通过率、开发bug反复率、用例覆盖率、问题遗漏率、项目bug类型及数量统计等。

总结: 数据测试流程是数据仓库建设中不可或缺的一部分,能够保证数据的质量、准确性、一致性和可靠性,同时提高了数据的可用性和可理解性。在测试过程中,需要对数据测试流程进行测试,确保流程的实施和执行效果。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

在这里插入图片描述

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你! 


http://www.ppmy.cn/news/1170186.html

相关文章

List<LinkedHashMap<String, String>>类型的数据转换为Map<String, List<String>>类型数据

import java.util.*;public class Main {public static void main(String[] args) {// 示例数据&#xff1a;List<LinkedHashMap>List<LinkedHashMap<String, String>> keyParamList new ArrayList<>();LinkedHashMap<String, String> map1 ne…

Python【list列表去重】

目录 要求&#xff1a; 将list中的重复数据去重&#xff0c;至少使用两种方案 方案一&#xff1a; 方案二&#xff1a; 要求&#xff1a; 将list中的重复数据去重&#xff0c;至少使用两种方案 方案一&#xff1a; 使用set &#xff0c;可以将list转换为set&#xff0…

蓝桥杯中级题目之组合(c++)

系列文章目录 数位递增数_睡觉觉觉得的博客-CSDN博客拉线开关。_睡觉觉觉得的博客-CSDN博客蓝桥杯中级题目之数字组合&#xff08;c&#xff09;_睡觉觉觉得的博客-CSDN博客 文章目录 系列文章目录前言一、个人名片二、描述三、输入输出以及代码示例1.输入2.输出3.代码示例 总…

Ubuntu系统下使用docker容器配置nginx并部署前端项目

1.下载 Nginx 镜像 命令 描述 docker pull nginx 下载最新版 Nginx 镜像 :2. 创建要挂载的宿主机目录 启动前需要先创建 Nginx 外部挂载的配置文件&#xff08; /home/nginx/conf/nginx.conf&#xff09; 之所以要先创建 , 是因为 Nginx 本身容器只存在 / etc/nginx 目录 ,…

动手学深度学习—使用块的网络VGG(代码详解)

目录 1. VGG块2. VGG网络3. 训练模型 1. VGG块 经典卷积神经网络的基本组成部分是下面的这个序列&#xff1a; 1.带填充以保持分辨率的卷积层&#xff1b; 2.非线性激活函数&#xff0c;如ReLU&#xff1b; 3.汇聚层&#xff0c;如最大汇聚层。 定义网络块&#xff0c;便于我…

c语言基础:L1-050 倒数第N个字符串

给定一个完全由小写英文字母组成的字符串等差递增序列&#xff0c;该序列中的每个字符串的长度固定为 L&#xff0c;从 L 个 a 开始&#xff0c;以 1 为步长递增。例如当 L 为 3 时&#xff0c;序列为 { aaa, aab, aac, ..., aaz, aba, abb, ..., abz, ..., zzz }。这个序列的倒…

UE5场景逐渐变亮问题

1、显示 -- 关闭眼部适应 2、项目设置 -- 关闭自动曝光 参考&#xff1a; 虚幻5/UE5 场景亮度逐渐变亮完美解决方法 - 哔哩哔哩

leetcode(2)栈

leetcode 155 最小栈 stack相当于栈&#xff0c;先进后出 存储全部栈元素 [-3,2,-1] min_stack,存储栈当前位置最小的元素 [-3,-3,-3] class MinStack:def __init__(self):self.stack []self.min_stack [math.inf]def push(self, x: int) :self.stack.append(x)self.min_sta…