数据库迁移指的是把历史数据从A数据库迁到B数据库,可划分为同类型数据库的迁移和不同类型数据库之间进行的数据迁移。同类型数据库的迁移较为简单,而不同类型数据库之间的数据迁移就会存在一些问题:如表结构会变化,语法存在差异等,这些差异有些会直观地反映在数据库迁移类项目的功能测试中。本文将浅谈数据库迁移类项目功能测试的基本思路。
首先,在测试前要了解数据库迁移类项目的主要关注点。通常来讲,系统级数据库规模十分庞大,许多代码都是在直接使用数据库某些表中的数据,因此在数据迁移过程中,数据的正确性、可用性是非常重要的,要保证各项服务获得的数据准确无误。在进行功能测试时,可通过新旧数据库表中数据对比的方式,来确保数据库迁移后的数据和迁移前数据表中存储的数据一致。
在进行数据库迁移类项目的功能测试前,需要根据项目需求,和开发确认好本次项目的数据迁移内容及范围,是同类型数据库迁移还是不同类型数据库之间的迁移,具体涉及数据库中的哪些表。若是不同类型数据库之间的迁移,则需要关注新老数据库类型之间的差异,特别是基础语法差异及不同数据库的字段类型的匹配问题,这些差异可能会对数据迁移前后数据的正确性和一致性产生影响。
由于该类项目确保数据库迁移前后数据的正确性和一致性非常重要,因此功能测试的基础方法为“比对”。首先需要确认迁移前后历史存量数据的数据量一致,此处可以通过SQL语句查询迁移前后数据库中各个表的行数、字段数、数据量并进行比对,查看数据量是否前后一致。而后需要对比迁移前后的数据内容,可在数据库管理系统软件中将数据库表导出为便于对比的格式,如Excel、TXT等,当表中数据量较大时,要进行合理抽样。而后可以通过编写Excel函数、Excel-视图-并排比较-同步滚动功能、自研对比脚本或工具、分别生成文件MD5码而后对比MD5值等方法来对数据内容进行对比核验。而前文提到的,不同类型数据库之间进行迁移的情况,需要注意二者数据库之间的差异带来的影响。比如Oracle 默认没有排序规则,而MySQL中,innoDB引擎默认查询按照id正序排序,myISAM引擎默认按照插入时间正序排序,当排序规则不同时,在使用Excel函数或自研比对脚本时,应关注此问题,不可以简单地按行进行比对。再比如语法上不同类型数据库拼接方式不同,易出现迁移后数据格式出现问题的情况。当完成上述数据迁移测试后,需要在新的系统中进行回归测试,以确保迁移过来数据的可用性。
除了验证迁移前后的历史存量数据正确性、一致性以外,还应验证迁移后的新表中的增量数据是否有效、可用,确保系统前台功能可以正常新增数据,并且使用这些增量数据的主要业务流程可正常进行。
总而言之,数据库迁移类项目功能测试需要重点关注数据迁移前后的正确性、一致性和可用性,进行数据库中数据的对比核验和系统回归测试。对于不同类型数据库之间的迁移,需要多积累、多了解不同数据库之间的差异并分析可能会存在的影响。此外,在数据的对比核验和系统回归测试过程中,机械性、重复性的工作较多,建议更多地使用工具自动对比、手工测试和自动化测试相结合的方式,以提升测试效率。
作者:LJY