黄志清 张送 韦通明 温丽梅 韦统边
关键词:大数据;数据迁移;数据测试
1引言
近年来,随着时代的快速发展,全球已经从互联网时代进入大数据时代,目前全球数据总量已经达到ZB级。相应地,对于数据存储硬件的要求和服务器容量的要求也变得越来越高,为了适应越来越多的使用场景和进行相应的数据分析处理,数据迁移在这个过程中也就变得越来越重要。因此,最为重要的就是确保数据迁移后数据的完整性和准确性。本文对数据迁移测试的全过程方法进行了分析,并且提出了一种数据迁移测试的具体方法,旨在减少测试逻辑混乱带来的时间成本和人力成本,从而更加高效地提高数据质量[1]。
2数据迂移测试中容易出现的问题
数据测试人员基本上是按照项目需求文档的规则,对原本的数据源数据和迁移后的数据源数据进行比对,从分析的角度出发,只有每一条数据都能够完全相同,才能够保证数据的准确性和完整性。在数据测试的过程中,经常会碰到下文所述问题,会影响数据的准确性和完整性,需要特别注意[2]。
2.1测试逻辑混乱
当测试人员对迁移后的数据进行测试的时候,有时候没有经过前置条件的数据就直接测试后面的数据,造成数据测试结果无效。出现该问题的原因有可能是项目需求文档未申明清楚,产品人员传递需求有误或者没有规范的项目管理流程。这样的数据测试结果无法证明数据是正确的,从而需要复测,导致人力成本和时间成本增加。如果出现这样的问题,就需要规范测试需求和测试流程,从而能够直接找到问题所在,进而进行分析和解决。
2.2测试点不全面
在测试人员对数据进行测试的时候,有时因为业务给出的要求不能覆盖全部使用场景,导致部分数据的测试结果不准确,从而影响后续的数据分析和业务开展。造成这个问题也可能是其他原因,如不同的业务场景适用的数据要求不一样,僵硬地套用测试规则就容易导致测试点不全面。因此,需要针对常用的业务场景设立通用的测试点标准,对于具体业务还需要具体评估,而后分析和补充测试点[3]。
2.3测试时间较长
在一个完整的测试过程中,因为可能存在的项目需求不明确,测试人员未在一开始就沟通或梳理清楚需要测试的要点,以及多次重复测试,需要测试的数据量大小等,所以导致测试人员在一个完整的项目周期内测试部分花费的时间较长,从而影响整体的项目进度,甚至提高时间和人力成本。因此,需要在开始阶段,与开发、需求方进行共同探讨,如需要从哪些方面展开相关的测试,可以确保数据的可用性和正确性。
3数据迁移测试流程及方法
数据测试中需要对迁移后的数据进行全面分析[4],厘清据迁移之后从哪些方面进行数据测试。数据迁移测试应关注如图1、图2、图3所示方法流程。
3.1数据迁移测试内容
数据迁移测试主要由测试人员完成,测试通过后由研发部门部署上线[5]。主要包含以下测试内容:(1)对迁移后的数据进行全面分析,厘清数据迁移之后需要从哪些方面进行数据测试;(2)编写soL语句,从数据库里面获取迁移前后的数据;(3)利用Excel数据分析工具的数据排序、筛选、分列、去除重复项等功能建立数据迁移比对模板,提高测试过程的规范性,并且可以输出一致的核对结果,该模板可以通用;(4)利用数据表的唯一关键字(如ID)、日期字段、时间字段以及其他可以进行分区的字段对数据进行分区分模块的数据比对,通过并发的方式可以同时比对多个模块的数据,从而大大减少数据迁移测试的时间成本和人力成本,且数据的正确性能够得到保证;(5)统计时间范围内总数据的条数是否相等,如果不相等说明数据质量不符合要求,需要重新迭代数据;(6)分析表结构和注释内容是否符合规范,即两张表的表名、字段名、注释名等是否相同。如果不符合规范,说明数据质量不符合要求,需要重新迭代数据;(7)判断迭代后的数据是否出现异常情况,如不允许空值出现的数据库出现了空值的情况;(8)分析和统计数据迁移前后各个字段的值出现的频次是否相等:(9)分析如果出现数据转换,迁移后的字段数据是否符合数据转换要求。比如,原字段为空值,转换后为其他值的情况;(10)判断(6)(7)(8)三项是否符合条件,不符合条件说明数据质量不符合要求,需要重新迭代数据;(11)抽取样本数据,对其中的数据进行逐一比较和分析,以判断迁移后的数据是否有出现变化。
3.2数据测试难点
在实际的测试过程中,常常会碰到以下难点。
(1)业务具有复杂性。测试人员对于不同的业务场景有一套通用的测试流程和标准。但问题在于,由于业务的复杂性,对于数据的使用有了更多、更高的要求,因此需要对每个业务场景进行单独分析——需要新增的测试点,这对数据测试人员提出了更高的要求,需要花费大量时间和精力去做测试分析,并且需要从一开始就参与到算法的讨论和评审中,对整个过程达成一致之后才不会出现理解不同步的情况,从而导致实际效果不如预期[6]。
(2)测试流程不规范。正常的测试流程为:问题反馈给开发人员修改,修改完后再给测试人员进行复测。在复测的过程中,因为测试人员的个人理解和技术手段等原因,对于测试方式、测试流程、测试点都会有自己的理解。如果遇到问题较多、复测流程不规范、不能对整个测试流程都了解清楚、业务经验不足的情况,就会容易造成问题循环反复,从而大量浪费开发人员和测试人员的时间,并且提高了项目的时间成本[7]。
(3)没有一套可行性高的测试方法或者自动化程度高的测试工具和模板。在实际测试的过程中,因为缺乏自动化程度高的测试工具、平台和模板,导致实际测试方式会因为测试人员本身的技术能力、业务经验、个人理解等有很大的区别,如果出现测试人员离开,其他人员接手的情况,那么就需要花费更多的时间且测试后的效果不可控[8]。
(4)整个项目的时间成本和人力成本不可控。因为上述的多种原因,如业务的复杂性、测试流程的不规范、没有一套可行性高的测试方法或者自动化程度高的测试工具、模板等其他原因,每一因素出现都会对整个项目的时间成本和人力成本造成重大的影响,从而影响公司的项目进度,甚至影响个人的能力评价等[9]。
3.3数据测试展望
自动化的数据测试是最理想的目标,通过利用自动化和智能化的测试工具,设立不同的测试规则和数据模型,一方面可以大大缩减通用测试需要的时间和流程,另一方面为更多业务场景的测试分析提供了更多的设计方法和可行性,能够有效确保数据迁移后的数据的准确性,从而实现对数据质量的管理,降低了人力成本和时间成本[10]。
建立一个通用性高、适用性强的数据测试平台也是一种可行的方式。通过在平台上建立多样化的数据迁移测试模板,从而能够对大部分业务场景实现覆盖,并且可以在平台上对新的业务进行二次开发。操作简单、开发简单也是其必须具备的能力,这有利于新的测试人员快速熟悉并且上手,从而大大减少在整个项目过程中数据迁移测试所花费的时间,进而降低公司项目成本。另外,对于从事数据测试的相关人员的能力培养也是一个重要课题。通过聘请行业内的知名人士或者资深经验者给公司员工进行相关能力培训,加上对应的实战演练,对测试人员的能力提升会有很大的帮助。与此同时,测试人员要多把每一次的经验累积总结下来,形成知识间的互通,有助于业务经验的快速增长和测试能力的快速提高。
4結束语
本文主要介绍了一种用于数据迁移之后对数据准确性进行测试的可行性方法,即利用Excel数据分析工具的数据排序、筛选、分列、去除重复项等功能建立数据迁移比对模板,提高测试过程的规范性,并且可以输出一致的核对结果,该模板可以通用:利用数据表的唯一关键字(如ID)、日期字段、时间字段以及其他可以进行分区的字段对数据进行分区分模块的数据比对,通过并发的方式可以同时比对多个模块的数据,从而大大减少数据迁移测试的时间成本和人力成本,且数据的正确性能够得到保证:提出了一种可行性较高的测试方法,用来规范数据测试流程,避免测试混乱的问题,完善测试逻辑,从而能够有效确保数据迁移后数据的准确性,实现对数据质量的更好管理。