随着目前世界上各个国家使用大数据应用程序或应用大数据技术场景的数量呈指数增长,相应的,对于测试大数据应用时所需的知识与大数据测试工程师的需求也在同步增加。
针对大数据测试的相关技术已慢慢成为当下软件测试人员需要了解和掌握的一门通用技术。
一、什么是大数据?
传统的关系型数据库(例如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类型及数量统计等。
总结: 数据测试流程是数据仓库建设中不可或缺的一部分,能够保证数据的质量、准确性、一致性和可靠性,同时提高了数据的可用性和可理解性。在测试过程中,需要对数据测试流程进行测试,确保流程的实施和执行效果。
感谢每一个认真阅读我文章的人!!!
作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。
这份文档,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!
以上均可以分享,只需要你搜索vx公众号:程序员雨果,即可免费领取