近两年互联网行业动不动就喊着“大数据”的口号,大数据的诞生让很多企业节省人力物力实现精准营销获得丰厚利润。随着数据工程和数据分析技术的不断进步,大数据测试不可避免。
大数据是用于大量结构化或非结构化数据的术语,这些数据有可能提供一些信息。谈论大数据时,具体的数据量无从告之,但通常都是拍字节(Petabytes)和艾字节(Exabytes)数量级的。如此大量的数据很难集成。大数据,活泼的快速移动数据,有助于更好地了解客户和产品,从而带动业务增长。尽管有许多技术可用,技术人员仍然很难找出从哪里开始。
大数据分析
大数据测试
测试大数据应用程序更多的是验证其数据处理,而不是测试软件产品的个别功能。当涉及到大数据测试时,性能和功能测试是关键。在大数据测试中,QA工程师使用集群和其他组件来验证对TB级数据的成功处理。因为处理非常快,所以它需要高水平的测试技能。
大数据应用程序的测试更多的是去验证其数据处理而不是验证其单一的功能特色。当然在大数据测试时,功能测试和性能测试是同样很关键的。对于大数据测试工程师而言,如何高效正确的验证经过大数据工具/框架成功处理过的至少百万兆字节的数据将会是一个巨大的挑战。因为大数据高效的处理测试速度,它要求测软件工程师具备高水平的测试技术才能应对大数据测试。
大数据处理的三个特性:1)大批量 2)实时性 3)可交互。另外,数据质量也同样是大数据测试的一个重要维度。
因此在进行应用程序测试之前,必须确保数据质量,并且考虑把数据质量作为数据库测试的一部分。涉及数据的各种特性的检验,例如一致性、准确性、重复性、连贯性、有效性及完整性等等。
大数据应用测试大体可以分为三步骤:
步骤一:数据阶段验证
大数据测试的第一步,也称作pre-hadoop阶段该过程包括如下验证:
1)来自各方面的数据资源应该被验证,来确保正确的数据被加载进系统。
2)将源数据与推送到Hadoop系统中的数据进行比较,以确保它们匹配。
3)验证正确的数据被提取并被加载到HDFS正确的位置。
该阶段可以使用工具Talend或Datameer,进行数据阶段验证。
步骤二:"MapReduce"验证
大数据测试的第二步是MapReduce的验证。在这个阶段,测试者在每个节点上进行业务逻辑验证,然后在运行多个节点后验证它们,确保如下操作的正确性:
1)Map与Reduce进程正常工作。
2)在数据上实施数据聚合或隔离规则。
3)生成键值对。
4)在执行Map和Reduce进程后验证数据。
步骤三:输出阶段验证
大数据测试的最后或第三阶段是输出验证过程。生成输出数据文件,同时把文件移到一个EDW(Enterprise Data Warehouse:企业数据仓库)中或着把文件移动到任何其他基于需求的系统中。在第三阶段的活动包括:
1)检查转换(Transformation)规则被正确应用。
2)检查数据完整性和成功的数据加载到目标系统中。
3)通过将目标数据与HDFS文件系统数据进行比较来检查没有数据损坏。
总结:
1)大数据测试不同于传统的测试,不仅仅是类型、策略的不同,工具等具体技术都会有区别。
2)大数据因其复杂性,其测试所面临的挑战也会不同于传统的测试。
3)大数据性能测试将会是软件测试工程师进一步艰难攻克的目标之一。
网友评论