掌桥专利:专业的专利平台
掌桥专利
首页

数据库的切换验证方法及其装置、电子设备及存储介质

文献发布时间:2024-01-17 01:24:51


数据库的切换验证方法及其装置、电子设备及存储介质

技术领域

本发明涉及金融科技技术领域或其他相关领域,具体而言,涉及一种数据库的切换验证方法及其装置、电子设备及存储介质。

背景技术

近年来,信创产业发展已成为实现数字化转型、提升产业链发展的关键,而信创数据库发展的方向在于国产化替代,其中,加快Oracle数据库国产化转型,是当前金融信创工作的重中之重,Oracle数据库转型方向主要为GaussDB和MySQL两类。

相关技术中,各应用数据库转型周期较长,视规模大小,通常研发周期在一个月至半年不等,因开发测试时间较长,可能导致某些环境无效、调度失败等问题被掩盖。

针对上述的问题,目前尚未提出有效的解决方案。

发明内容

本发明实施例提供了一种数据库的切换验证方法及其装置、电子设备及存储介质,以至少解决相关技术中数据库转型投产过程中,由于开发测试时间较长,容易出现环境无效、调度失败的技术问题。

根据本发明实施例的一个方面,提供了一种数据库的切换验证方法,包括:接收数据库转型请求,其中,所述数据库转型请求用于请求将当前项目的历史数据库转型为新的目标数据库;获取回归测试案例集合以及测试案例的验证流程,其中,所述回归测试案例集合中包含:环境检查回归测试案例、数据库对象迁移回归测试案例、数据迁移回归测试案例、业务功能回归测试案例、非功能性回归测试案例;基于所述验证流程依次执行所述回归测试案例集合的各回归测试案例;在完成所有所述回归测试案例的验证并且全部通过的情况下,将所述当前项目的历史数据库切换为所述新的目标数据库。

可选地,基于所述验证流程依次执行所述回归测试案例集合的各回归测试案例的步骤,包括:在执行所述环境检查回归测试案例时,接收用户终端输入的所述历史数据库的第一环境信息以及所述新的目标数据库的第二环境信息;基于所述第一环境信息登录所述历史数据库,并基于所述第二环境信息登录所述新的目标数据库,得到登录结果;在所述登录结果指示成功登录所述历史数据库和所述新的目标数据库的情况下,分别验证所述历史数据库和所述新的目标数据库的码制,得到码制验证结果;在所述码制验证结果指示所述历史数据库和所述新的目标数据库的码制验证都通过的情况下,分别检查所述历史数据库和所述新的目标数据库的关联文件配置,得到文件配置检查结果;在所述文件配置检查结果指示所述历史数据库和所述新的目标数据库的关联文件配置都正确的情况下,将所述环境检查回归测试案例的测试状态表征为验证通过。

可选地,基于所述验证流程依次执行所述回归测试案例集合的各回归测试案例的步骤,包括:在执行所述数据库对象迁移回归测试案例时,获取数据库对象集合,其中,所述数据库对象集合中包含N个待测试的数据库对象,N为大于等于1的整数;基于完整性比对策略,分别比对每个所述数据库对象在所述历史数据库中以及所述新的目标数据库中的完整度,得到第一比对结果,其中,所述完整性比对策略包括下述至少之一:数据库对象的数量比对策略、数据库对象的名称比对策略;整合所述第一比对结果中完整性比对通过的所述数据库对象,得到第一对象集合;提取所述第一对象集合中每个所述数据库对象的对象内容,其中,所述对象内容至少包括:数据类型;分别比对所述第一对象集合中每个所述数据库对象的对象内容在所述历史数据库中以及所述新的目标数据库中是否一致,得到第二比对结果;在所述第二比对结果指示对象内容都一致或者在接收到用户终端确认所述对象内容的一致性指令的情况下,将所述数据库对象迁移回归测试案例的测试状态表征为验证通过。

可选地,在分别比对每个所述数据库对象在所述历史数据库中以及所述新的目标数据库中的完整度,得到第一比对结果之后,还包括:在所述第一比对结果包含任一目标数据库对象的完整度达不到预设完整度要求的情况下,发起对象迁移确认请求,其中,所述对象迁移确认请求用于告知用户终端所述目标数据库对象在由所述历史数据库模拟迁移至所述新的目标数据库后出现不一致的信息;接收所述用户终端返回的对象比对确认信息;在所述对象比对确认信息指示所述目标数据库对象作为间接迁移内容的情况下,跳过所述目标数据库对象的完整性比对;或者,在所述对象比对确认信息指示所述目标数据库对象停止使用的情况下,跳过所述目标数据库对象的完整性比对;或者,基于所述对象比对确认信息中携带的前后名称映射关系,确认所述目标数据库对象需要更改名称的情况下,跳过所述目标数据库对象的完整性比对;或者,在所述对象比对确认信息确认所述目标数据库对象存在转型问题,则确认所述目标数据库对象的完整性比对出现错误,将所述数据库对象迁移回归测试案例的测试状态表征为验证不通过。

可选地,基于所述验证流程依次执行所述回归测试案例集合的各回归测试案例的步骤,包括:在执行所述数据迁移回归测试案例时,获取所述历史数据库中的第一数据表以及所述新的目标数据库中的第二数据表;对所述第一数据表和所述第二数据表进行存量迁移数据比对,得到第三比对结果;在所述第三比对结果指示存量迁移数据一致的情况下,对第一指定表进行增量数据迁移比对,得到第四比对结果;在所述第四比对结果指示增量数据迁移比对一致的情况下,对第二指定表进行生僻字数据迁移比对,得到第五比对结果;在所述第五比对结果指示生僻字数据迁移比对一致的情况下,将所述数据迁移回归测试案例的测试状态表征为验证通过。

可选地,对所述第一数据表和所述第二数据表进行存量迁移数据比对,得到第三比对结果的步骤,包括:基于所述第一数据表和所述第二数据表之间的数据量,得到表数据量比对结果,其中,所述表数据量比对结果用于指示所述第一数据表和所述第二数据表之间的数据量是否一致;基于所述第一数据表和所述第二数据表之间的数据内容,得到表数据内容比对结果,其中,所述表数据内容比对结果用于指示所述第一数据表和所述第二数据表之间的所述数据内容是否一致,所述数据内容包括:主键字段标识、字段标识、字段总数;基于所述表数据量比对结果以及表数据内容比对结果,确定所述第三比对结果。

可选地,对第一指定表进行增量数据迁移比对,得到第四比对结果的步骤,包括:接收用户终端在所述历史数据库中选取的所述第一指定表以及插入操作;响应所述插入操作,在所述第一指定表中的数据单元格中插入部分数据;将插入所述部分数据的所述第一指定表迁移至所述新的目标数据库中;在所述历史数据库以及所述新的目标数据库中查找关联所述第一指定表的数据内容,并基于查找结果得到所述第四比对结果,其中,所述第四比对结果用于指示所述历史数据库以及所述新的目标数据库中关联所述第一指定表的数据内容是否一致。

可选地,基于所述验证流程依次执行所述回归测试案例集合的各回归测试案例的步骤,包括:在执行所述业务功能回归测试案例时,获取待测试的批量测试运行脚本;基于脚本测试策略,验证将所述批量测试运行脚本由所述历史数据库模拟迁移至所述新的目标数据库的一致性,得到脚本验证结果;在所述脚本验证结果指示所述批量测试运行脚本在数据库模拟迁移后一致的情况下,对所述批量测试运行脚本进行业务联机内容验证,得到联机验证结果;在所述联机验证结果指示验证通过的情况下,将所述数据迁移回归测试案例的测试状态表征为验证通过。

可选地,业务联机内容验证包括下述至少之一:业务流程验证、报表查询验证、导入导出验证、异步处理验证、联机接口验证。

可选地,基于所述验证流程依次执行所述回归测试案例集合的各回归测试案例的步骤,包括:在执行所述非功能性回归测试案例时,获取将所述当前项目的历史数据库转型为新的目标数据库过程中出现的新程序;对所述新程序进行静态扫描,得到程序脚本集合;提取所述程序脚本集合中每个程序脚本的脚本类型,在所述脚本类型为慢代码脚本的情况下,将所述非功能性回归测试案例的测试状态表征为验证不通过;在所述脚本类型都为非慢代码脚本的情况下,比对所述程序脚本集合中相同功能的程序脚本之间的运行时长;在所述运行时长超出预设时长阈值的情况下,将所述非功能性回归测试案例的测试状态表征为验证不通过;在所述运行时长未超出预设时长阈值的情况下,将所述非功能性回归测试案例的测试状态表征为验证通过。

根据本发明实施例的另一方面,还提供了一种数据库的切换验证装置,其特征在于,包括:接收单元,用于接收数据库转型请求,其中,所述数据库转型请求用于请求将当前项目的历史数据库转型为新的目标数据库;获取单元,用于获取回归测试案例集合以及测试案例的验证流程,其中,所述回归测试案例集合中包含:环境检查回归测试案例、数据库对象迁移回归测试案例、数据迁移回归测试案例、业务功能回归测试案例、非功能性回归测试案例;执行单元,用于基于所述验证流程依次执行所述回归测试案例集合的各回归测试案例;切换单元,用于在完成所有所述回归测试案例的验证并且全部通过的情况下,将所述当前项目的历史数据库切换为所述新的目标数据库。

可选地,所述执行单元包括:第一接收模块,用于在执行所述环境检查回归测试案例时,接收用户终端输入的所述历史数据库的第一环境信息以及所述新的目标数据库的第二环境信息;登录模块,用于基于所述第一环境信息登录所述历史数据库,并基于所述第二环境信息登录所述新的目标数据库,得到登录结果;第一验证模块,用于在所述登录结果指示成功登录所述历史数据库和所述新的目标数据库的情况下,分别验证所述历史数据库和所述新的目标数据库的码制,得到码制验证结果;检查模块,用于在所述码制验证结果指示所述历史数据库和所述新的目标数据库的码制验证都通过的情况下,分别检查所述历史数据库和所述新的目标数据库的关联文件配置,得到文件配置检查结果;第一表征模块,用于在所述文件配置检查结果指示所述历史数据库和所述新的目标数据库的关联文件配置都正确的情况下,将所述环境检查回归测试案例的测试状态表征为验证通过。

可选地,所述执行单元还包括:第一获取模块,用于在执行所述数据库对象迁移回归测试案例时,获取数据库对象集合,其中,所述数据库对象集合中包含N个待测试的数据库对象,N为大于等于1的整数;第一比对模块,用于基于完整性比对策略,分别比对每个所述数据库对象在所述历史数据库中以及所述新的目标数据库中的完整度,得到第一比对结果,其中,所述完整性比对策略包括下述至少之一:数据库对象的数量比对策略、数据库对象的名称比对策略;整合模块,用于整合所述第一比对结果中完整性比对通过的所述数据库对象,得到第一对象集合;提取模块,用于提取所述第一对象集合中每个所述数据库对象的对象内容,其中,所述对象内容至少包括:数据类型;第二比对模块,用于分别比对所述第一对象集合中每个所述数据库对象的对象内容在所述历史数据库中以及所述新的目标数据库中是否一致,得到第二比对结果;第二表征模块,用于在所述第二比对结果指示对象内容都一致或者在接收到用户终端确认所述对象内容的一致性指令的情况下,将所述数据库对象迁移回归测试案例的测试状态表征为验证通过。

可选地,所述执行单元还包括:请求模块,用于在所述第一比对结果包含任一目标数据库对象的完整度达不到预设完整度要求的情况下,发起对象迁移确认请求,其中,所述对象迁移确认请求用于告知用户终端所述目标数据库对象在由所述历史数据库模拟迁移至所述新的目标数据库后出现不一致的信息;接收模块,用于接收所述用户终端返回的对象比对确认信息;跳过模块,用于在所述对象比对确认信息指示所述目标数据库对象作为间接迁移内容的情况下时,或者,在所述对象比对确认信息指示所述目标数据库对象停止使用的情况下时,或者,基于所述对象比对确认信息中携带的前后名称映射关系,确认所述目标数据库对象需要更改名称时,跳过所述目标数据库对象的完整性比对;第三表征模块,在所述对象比对确认信息确认所述目标数据库对象存在转型问题,则确认所述目标数据库对象的完整性比对出现错误,将所述数据库对象迁移回归测试案例的测试状态表征为验证不通过。

可选地,所述执行单元还包括:第二获取模块,用于在执行所述数据迁移回归测试案例时,获取所述历史数据库中的第一数据表以及所述新的目标数据库中的第二数据表;第三比对模块,用于对所述第一数据表和所述第二数据表进行存量迁移数据比对,得到第三比对结果;第四比对模块,用于在所述第三比对结果指示存量迁移数据一致的情况下,对第一指定表进行增量数据迁移比对,得到第四比对结果;第五比对模块,用于在所述第四比对结果指示增量数据迁移比对一致的情况下,对第二指定表进行生僻字数据迁移比对,得到第五比对结果;第四表征模块,用于在所述第五比对结果指示生僻字数据迁移比对一致的情况下,将所述数据迁移回归测试案例的测试状态表征为验证通过。

可选地,第三比对模块包括:数据量比对子模块,用于基于所述第一数据表和所述第二数据表之间的数据量,得到表数据量比对结果,其中,所述表数据量比对结果用于指示所述第一数据表和所述第二数据表之间的数据量是否一致;数据内容比对子模块,用于基于所述第一数据表和所述第二数据表之间的数据内容,得到表数据内容比对结果,其中,所述表数据内容比对结果用于指示所述第一数据表和所述第二数据表之间的所述数据内容是否一致,所述数据内容包括:主键字段标识、字段标识、字段总数;确定子模块,用于基于所述表数据量比对结果以及表数据内容比对结果,确定所述第三比对结果。

可选地,第四比对模块包括:接收子模块,用于接收用户终端在所述历史数据库中选取的所述第一指定表以及插入操作;响应子模块,用于响应所述插入操作,在所述第一指定表中的数据单元格中插入部分数据;迁移子模块,用于将插入所述部分数据的所述第一指定表迁移至所述新的目标数据库中;内容比对子模块,用于在所述历史数据库以及所述新的目标数据库中查找关联所述第一指定表的数据内容,并基于查找结果得到所述第四比对结果,其中,所述第四比对结果用于指示所述历史数据库以及所述新的目标数据库中关联所述第一指定表的数据内容是否一致。

可选地,所述执行单元还包括:第三获取模块,用于在执行所述业务功能回归测试案例时,获取待测试的批量测试运行脚本;第二验证模块,用于基于脚本测试策略,验证将所述批量测试运行脚本由所述历史数据库模拟迁移至所述新的目标数据库的一致性,得到脚本验证结果;第三验证模块,用于在所述脚本验证结果指示所述批量测试运行脚本在数据库模拟迁移后一致的情况下,对所述批量测试运行脚本进行业务联机内容验证,得到联机验证结果;第五表征模块,用于在所述联机验证结果指示验证通过的情况下,将所述数据迁移回归测试案例的测试状态表征为验证通过。

可选地,第三验证模块包括下述至少之一:业务流程验证子模块、报表查询验证子模块、导入导出验证子模块、异步处理验证子模块、联机接口验证子模块。

可选地,所述执行单元还包括:第四获取模块,用于在执行所述非功能性回归测试案例时,获取将所述当前项目的历史数据库转型为新的目标数据库过程中出现的新程序;扫描模块,用于对所述新程序进行静态扫描,得到程序脚本集合;提取模块,用于提取所述程序脚本集合中每个程序脚本的脚本类型;第六比对模块,用于在所述脚本类型都为非慢代码脚本的情况下,比对所述程序脚本集合中相同功能的程序脚本之间的运行时长;第六表征模块,用于在所述脚本类型为慢代码脚本的情况下,将所述非功能性回归测试案例的测试状态表征为验证不通过;在所述运行时长超出预设时长阈值的情况下,将所述非功能性回归测试案例的测试状态表征为验证不通过;在所述运行时长未超出预设时长阈值的情况下,将所述非功能性回归测试案例的测试状态表征为验证通过。

根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行上述任意一项的数据库的切换验证方法。

根据本发明实施例的另一方面,还提供了一种电子设备,包括一个或多个处理器和存储器,所述存储器用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现上述任意一项的数据库的切换验证方法。

在本公开中,提出一种数据库的切换验证方法,接收数据库转型请求,用于请求将当前项目的历史数据库转型为新的目标数据库,获取回归测试案例集合以及测试案例的验证流程,其中,回归测试案例集合中包含:环境检查回归测试案例、数据库对象迁移回归测试案例、数据迁移回归测试案例、业务功能回归测试案例、非功能性回归测试案例,基于验证流程依次执行回归测试案例集合的各回归测试案例,在完成所有回归测试案例的验证并且全部通过的情况下,将当前项目的历史数据库切换为新的目标数据库。

在本公开中,自接收数据库转型请求开始进行历史数据库向目标数据库的转型,通过获取案例测试集合中的测试案例,以及测试案例的回归验证流程,按照流程依次对集合中的测试案例进行验证,使数据库环境、数据库对象、数据内容、业务功能、非功能性的数据库性能这五个方面在数据库转型前后均能被检查到,确保了历史数据库在转型成为新的目标数据库之后,数据库环境是有效的、数据库调度指令是可实施的,进而解决了相关技术中数据库转型投产过程中,由于开发测试时间较长,容易出现环境无效、调度失败的技术问题。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据本发明实施例的一种可选的数据库的切换验证方法的流程图;

图2是根据本发明实施例的一种可选的回归测试案例与对应模块关系图;

图3是根据本发明实施例的一种可选的环境检查回归测试模块的运行流程图;

图4是根据本发明实施例的一种可选的数据库对象迁移回归测试模块的运行流程图;

图5是根据本发明实施例的一种可选的数据迁移回归测试模块的运行流程图;

图6是根据本发明实施例的一种可选的业务功能回归测试模块的运行流程图;

图7是根据本发明实施例的一种可选的非功能性回归测试模块的运行流程图;

图8是根据本发明实施例的一种可选的数据库的切换验证装置的示意图;

图9是根据本发明实施例的一种用于数据库的切换验证方法的电子设备(或移动设备)的硬件结构框图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

需要说明的是,本公开中的一种数据库的切换验证方法及其装置可用于金融科技技术领域在对数据库进行切换验证方法的情况下,也可用于除金融科技技术领域之外的任意领域在对数据库进行切换验证的情况下,本公开中对数据库的切换验证方法及其装置的应用领域不做限定。

需要说明的是,本公开所涉及的相关信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据、迁移的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。例如,本系统和相关用户或机构间设置有接口,在获取相关信息之前,需要通过接口向前述的用户或机构发送获取请求,并在接收到前述的用户或机构反馈的同意信息后,获取相关信息。

本发明下述各实施例可应用于各种需要对数据库进行切换验证系统/应用/设备中。本发明能够实现使数据库环境、数据库对象、数据内容、业务功能、非功能性的数据库性能这五个方面在数据库转型前后均能被检查到,确保了历史数据库在转型成为新的目标数据库之后,数据库环境是有效的、数据库调度指令是可实施的。

下面结合各个实施例来详细说明本发明。

实施例一

根据本发明实施例,提供了一种数据库的切换验证方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

图1是根据本发明实施例的一种可选的数据库的切换验证方法的流程图,如图1所示,该方法包括如下步骤:

步骤S101,接收数据库转型请求,其中,数据库转型请求用于请求将当前项目的历史数据库转型为新的目标数据库。

步骤S102,获取回归测试案例集合以及测试案例的验证流程,其中,回归测试案例集合中包含:环境检查回归测试案例、数据库对象迁移回归测试案例、数据迁移回归测试案例、业务功能回归测试案例、非功能性回归测试案例。

步骤S103,基于验证流程依次执行回归测试案例集合的各回归测试案例。

步骤S104,在完成所有回归测试案例的验证并且全部通过的情况下,将当前项目的历史数据库切换为新的目标数据库。

通过上述步骤,可以接收数据库转型请求,其中,数据库转型请求用于请求将当前项目的历史数据库转型为新的目标数据库;获取回归测试案例集合以及测试案例的验证流程,其中,回归测试案例集合中包含:环境检查回归测试案例、数据库对象迁移回归测试案例、数据迁移回归测试案例、业务功能回归测试案例、非功能性回归测试案例;基于验证流程依次执行回归测试案例集合的各回归测试案例;在完成所有回归测试案例的验证并且全部通过的情况下,将当前项目的历史数据库切换为新的目标数据库。

在本发明实施例中,自接收数据库转型请求开始进行历史数据库向目标数据库的转型,通过获取案例测试集合中的测试案例,以及测试案例的回归验证流程,按照流程依次对集合中的测试案例进行验证,使数据库环境、数据库对象、数据内容、业务功能、非功能性的数据库性能这五个方面在数据库转型前后均能被检查到,确保了历史数据库在转型成为新的目标数据库之后,数据库环境是有效的、数据库调度指令是可实施的,进而解决了相关技术中数据库转型投产过程中,由于开发测试时间较长,容易出现环境无效、调度失败的技术问题。

下面结合上述各步骤对本发明实施例进行详细说明。

在回归测试案例启动之前,需要准备一套类似生产环境的回归测试环境,将测试案例的具体内容/验证流程自动导入转型应用的相关模块中,触发对应模块启动自动化回归验证,测试案例状态共有五种:待验证、验证中、验证通过、验证不通过、不涉及,用于指示测试流程的进展和测试结果。

步骤S101,接收数据库转型请求,其中,数据库转型请求用于请求将当前项目的历史数据库转型为新的目标数据库。

需要说明的是,数据库类型包括:Oracle数据库、Access数据库、SQL数据库、DB2数据库、Sybase数据库、MySQL数据库、MariaDB数据库、VF数据库、SqlServer数据库、SQLite数据库等,本发明实施例中的数据库转型请求可用于上述任意两种数据库类型之间的相互转换与数据迁移。

步骤S102,获取回归测试案例集合以及测试案例的验证流程,其中,回归测试案例集合中包含:环境检查回归测试案例、数据库对象迁移回归测试案例、数据迁移回归测试案例、业务功能回归测试案例、非功能性回归测试案例。

需要说明的是,集合中包含的每一个测试案例都有对应的验证流程,案例流程是根据生产运行中的实际情况和每个案例的技术要点来预设的,例如,

数据库环境是数据库在生产运行过程中的基础,验证流程中需要关注服务器连通状况、码制、文件配置等基础环境信息,因此,环境检查回归测试案例的验证流程中至少包括:登录验证、码制验证、文件配置验证。其他测试案例的验证流程预设与之相似。

其中,数据库对象迁移回归测试案例的验证流程中至少包括:对象数量完整性比对、对象名称完整性比对、数据类型一致性比对;

数据迁移回归测试案例的验证流程中至少包括:存量数据迁移比对、增量数据迁移比对、生僻字数据迁移比对;

业务功能回归测试案例的验证流程中至少包括:批量测试、业务联机测试;

非功能性回归测试案例的验证流程中至少包括:慢代码脚本验证、脚本运行时长筛选。

上述验证流程可以对数据库投产转型中容易出现的技术问题进行模拟验证,并在验证过程中可以排除大部分问题,为数据库的无故障切换奠定了良好的基础。

步骤S103,基于验证流程依次执行回归测试案例集合的各回归测试案例。

可选地,基于验证流程依次执行回归测试案例集合的各回归测试案例的步骤,包括:在执行环境检查回归测试案例时,接收用户终端输入的历史数据库的第一环境信息以及新的目标数据库的第二环境信息;基于第一环境信息登录历史数据库,并基于第二环境信息登录新的目标数据库,得到登录结果;在登录结果指示成功登录历史数据库和新的目标数据库的情况下,分别验证历史数据库和新的目标数据库的码制,得到码制验证结果;在码制验证结果指示历史数据库和新的目标数据库的码制验证都通过的情况下,分别检查历史数据库和新的目标数据库的关联文件配置,得到文件配置检查结果;在文件配置检查结果指示历史数据库和新的目标数据库的关联文件配置都正确的情况下,将环境检查回归测试案例的测试状态表征为验证通过。

需要说明的是,码制可以包括但不限于:单字段、多字段组合。

可选地,基于验证流程依次执行回归测试案例集合的各回归测试案例的步骤,包括:在执行数据库对象迁移回归测试案例时,获取数据库对象集合,其中,数据库对象集合中包含N个待测试的数据库对象,N为大于等于1的整数;基于完整性比对策略,分别比对每个数据库对象在历史数据库中以及新的目标数据库中的完整度,得到第一比对结果,其中,完整性比对策略包括下述至少之一:数据库对象的数量比对策略、数据库对象的名称比对策略;整合第一比对结果中完整性比对通过的数据库对象,得到第一对象集合;提取第一对象集合中每个数据库对象的对象内容,其中,对象内容至少包括:数据类型;分别比对第一对象集合中每个数据库对象的对象内容在历史数据库中以及新的目标数据库中是否一致,得到第二比对结果;在第二比对结果指示对象内容都一致或者在接收到用户终端确认对象内容的一致性指令的情况下,将数据库对象迁移回归测试案例的测试状态表征为验证通过。

需要说明的是,数据库对象包括但不限于:表、约束、视图、触发器、存储过程、自定义函数、索引、序列、新对象赋权、directory、dblink。

本实施例中,数据库对象迁移内容可以分为两类,包括:直接迁移的内容、代码重构内容。

需要说明的是,数据类型包括:任意精度数字number、单精度浮点型float的字段、双精度浮点型double、定长字符型char、变长字符型varchar2、字符数据大对象类型clob、包含unicode格式数据变长字符型nvarchar2、二进制数据大对象类型blob、变长的十六进制类型raw、日期/时间类型date、日期/时间类型(包含小数秒)timestamp、数组类型、record类型。

另外,提取第一对象集合中每个数据库对象的对象内容,其中,对象内容包括:数据类型、数据属性、数据位置等。

需要说明的是,在第二比对结果指示对象内容不一致的情况下,需要在验证流程中向用户终端发起一致性确认请求,若用户终端返回的结果中确认了对象内容的一致性,也可以将数据库对象迁移回归测试案例的测试状态表征为验证通过。

可选地,在分别比对每个数据库对象在历史数据库中以及新的目标数据库中的完整度,得到第一比对结果之后,还包括:在第一比对结果包含任一目标数据库对象的完整度达不到预设完整度要求的情况下,发起对象迁移确认请求,其中,对象迁移确认请求用于告知用户终端目标数据库对象在由历史数据库模拟迁移至新的目标数据库后出现不一致的信息;接收用户终端返回的对象比对确认信息;在对象比对确认信息指示目标数据库对象作为间接迁移内容的情况下,跳过目标数据库对象的完整性比对;或者,在对象比对确认信息指示目标数据库对象停止使用的情况下,跳过目标数据库对象的完整性比对;或者,基于对象比对确认信息中携带的前后名称映射关系,确认目标数据库对象需要更改名称的情况下,跳过目标数据库对象的完整性比对;或者,在对象比对确认信息确认目标数据库对象存在转型问题,则确认目标数据库对象的完整性比对出现错误,将数据库对象迁移回归测试案例的测试状态表征为验证不通过。

需要说明的是,预设完整度要求至少包括:数据库对象的数量比对一致、数据库对象的名称比对一致。

需要说明的是,部分数据库对象(例如,存储过程)本次作为间接迁移内容的情况下,而是作为代码重构内容,会在后续的业务功能回归测试案例中进行回归验证,因此跳过此处比对。

可选地,基于验证流程依次执行回归测试案例集合的各回归测试案例的步骤,包括:在执行数据迁移回归测试案例时,获取历史数据库中的第一数据表以及新的目标数据库中的第二数据表;对第一数据表和第二数据表进行存量迁移数据比对,得到第三比对结果;在第三比对结果指示存量迁移数据一致的情况下,对第一指定表进行增量数据迁移比对,得到第四比对结果;在第四比对结果指示增量数据迁移比对一致的情况下,对第二指定表进行生僻字数据迁移比对,得到第五比对结果;在第五比对结果指示生僻字数据迁移比对一致的情况下,将数据迁移回归测试案例的测试状态表征为验证通过。

可选地,对第一数据表和第二数据表进行存量迁移数据比对,得到第三比对结果的步骤,包括:基于第一数据表和第二数据表之间的数据量,得到表数据量比对结果,其中,表数据量比对结果用于指示第一数据表和第二数据表之间的数据量是否一致;基于第一数据表和第二数据表之间的数据内容,得到表数据内容比对结果,其中,表数据内容比对结果用于指示第一数据表和第二数据表之间的数据内容是否一致,数据内容包括:主键字段标识、字段标识、字段总数;基于表数据量比对结果以及表数据内容比对结果,确定第三比对结果。

需要说明的是,若出现某些表的数据记录数超过系统设定的记录数上限阈值,则按照主键排序后,进行部分数据比对;数据内容比对过程中,若出现某些表的字段数超过系统设定的字段数上限阈值,则按照系统设定的字段重要性选取部分字段,进行部分字段内容的数据比对,其中,主键字段属于必验字段。

数据比对过程中出现不一致的情况(例如,空值显示)时,需要用户进行手动确认,若用户判断存量数据迁移比对通过,则继续进行增量数据比对,否则将测试案例状态表征为“验证不通过”。

需要说明的是,数据内容还可以包括:字段大小、有效性规则、输入掩码、默认值、索引、格式等。

可选地,对第一指定表进行增量数据迁移比对,得到第四比对结果的步骤,包括:接收用户终端在历史数据库中选取的第一指定表以及插入操作;响应插入操作,在第一指定表中的数据单元格中插入部分数据;将插入部分数据的第一指定表迁移至新的目标数据库中;在历史数据库以及新的目标数据库中查找关联第一指定表的数据内容,并基于查找结果得到第四比对结果,其中,第四比对结果用于指示历史数据库以及新的目标数据库中关联第一指定表的数据内容是否一致。

需要说明的是,与存量数据迁移比对相同,增量数据迁移比对也包括对数据量、数据内容的逐一比对。

可选地,在第四比对结果指示增量数据迁移比对一致的情况下,对第二指定表进行生僻字数据迁移比对,得到第五比对结果,其中,第二指定表是在原Oracle数据库中自动选择含有用户名或公司名字段并且数据量较小的表,插入特定的生僻字数据后形成的数据表。生僻字数据比对验证通过后,进入下一步流程。

可选地,基于验证流程依次执行回归测试案例集合的各回归测试案例的步骤,包括:在执行业务功能回归测试案例时,获取待测试的批量测试运行脚本;基于脚本测试策略,验证将批量测试运行脚本由历史数据库模拟迁移至新的目标数据库的一致性,得到脚本验证结果;在脚本验证结果指示批量测试运行脚本在数据库模拟迁移后一致的情况下,对批量测试运行脚本进行业务联机内容验证,得到联机验证结果;在联机验证结果指示验证通过的情况下,将数据迁移回归测试案例的测试状态表征为验证通过。

需要说明的是,批量测试内容包括:批量程序测试、文件传输测试、日志内容测试、全流程测试。

可选地,业务联机内容验证包括下述至少之一:业务流程验证、报表查询验证、导入导出验证、异步处理验证、联机接口验证。

需要说明的是,在批量验证和联机验证的过程中也有可能出现与预期不一致的情况,需要人工判定时,向用户终端发起问题确认请求,用户根据请求返回问题确认结果。

可选地,基于验证流程依次执行回归测试案例集合的各回归测试案例的步骤,包括:在执行非功能性回归测试案例时,获取将当前项目的历史数据库转型为新的目标数据库过程中出现的新程序;对新程序进行静态扫描,得到程序脚本集合;提取程序脚本集合中每个程序脚本的脚本类型,在脚本类型为慢代码脚本的情况下,将非功能性回归测试案例的测试状态表征为验证不通过;在脚本类型都为非慢代码脚本的情况下,比对程序脚本集合中相同功能的程序脚本之间的运行时长;在运行时长超出预设时长阈值的情况下,将非功能性回归测试案例的测试状态表征为验证不通过;在运行时长未超出预设时长阈值的情况下,将非功能性回归测试案例的测试状态表征为验证通过。

需要说明的是,当目标数据库相关程序运行时间比原数据库相关程序运行时间慢了2个数量级以上时,需要人工判定时,向用户终端发起问题确认请求,用户根据请求返回问题确认结果,结果指示是性能问题,则将非功能性回归测试案例的测试状态表征为验证不通过。

步骤S104,在完成所有回归测试案例的验证并且全部通过的情况下,将当前项目的历史数据库切换为新的目标数据库。

在本发明实施例中,通过环境检查回归测试案例的验证流程确保了数据库的基础环境在转型后不会出现无效,通过数据库对象迁移回归测试案例的验证流程确保了数据库对象在迁移操作前后的完整性和一致性,通过数据迁移回归测试案例的验证流程确保了数据库中的所有数据在迁移前后是一致的和可读取的,通过业务功能回归测试案例的验证流程确保了数据库在转型之后批量作业和联机作业是可以正常执行的,通过非功能性回归测试案例的验证流程使数据库在转型之后的生产作业中的运行性能得到了保障,通过以上所有的案例测试的验证流程确保了在数据库转型后,新的目标数据库的环境是有效的、调度指令时可实施的。

下面结合另一种可选的具体实施方式进行详细说明。

本实施方式以Oracle数据库为例,归纳了数据库转型研发流程各阶段的测试要点,使用回归测试案例作为导向,引导数据库中各个转型应用进行自动化回归验证,各个回归测试案例对应的验证模块会实时更新验证结果来表征应用是否通过测试,整合所有验证结果,以此判断数据库的转型切换是否可实施。

下面对自动化回归测试的具体实施方式进行说明。

图2是根据本发明实施例的一种可选的回归测试案例与对应模块关系图,如图2所示,本发明实施例将数据库投产转型切换之前的回归验证归结成五个方面的回归测试案例,分别对应五个方面的回归测试模块,包括:环境检查回归测试模块、数据库对象迁移回归测试模块、数据迁移回归测试模块、业务功能回归测试模块、非功能性回归测试模块。

在回归测试案例启动之前,需要准备一套类似生产环境的回归测试环境,将测试案例的具体内容/验证流程自动导入转型应用的相关模块中,触发对应模块启动自动化回归验证,测试案例状态共有五种:待验证、验证中、验证通过、验证不通过、不涉及,对各状态说明如下:

待验证,是指全部回归测试案例导入后的初始状态,其中,首条回归测试案例需要测试人员手动触发启动验证;验证中是指当首条测试案例被触发后,自动启动对应的模块对当前测试内容进行验证;验证通过是指经过验证后,符合预期的验证结果,即认定为“验证通过”;验证不通过是指经过验证后,不符合预期的验证结果,即认定为“验证不通过”,需要用户进行确认或进一步修改;不涉及是指当前应用的数据库转型内容不涉及该条测试案例的内容,用户可手动设置为“不涉及”,不影响回归测试的总体通过率。

回归测试环境配置完成后,开始模拟数据库转型过程,利用上述五个回归测试模块对数据库展开模拟测试,下面对各模块内部的处理逻辑做具体的说明。

第一部分,环境检查回归测试模块。

“环境检查回归测试模块”是数据库转型的基础验证,主要对服务器连通、码制、文件配置等关键内容进行回归测试。

图3是根据本发明实施例的一种可选的环境检查回归测试模块的运行流程图,如图3所示,运行流程包括:

1,验证数据库登录。

用户手动触发“环境检查回归测试案例”验证,此时该测试案例状态从“待验证”转为“验证中”,按要求输入原Oracle数据库登录信息和目标数据库登录信息,登录数据库,登陆成功则继续验证数据库码制,登陆失败则将测试案例状态表征为“验证不通过”。

2,验证数据库码制。

对原Oracle数据库和目标数据库的码制进行一致性验证,通过一致性验证则继续验证文件配置,未通过时对用户发起确认请求。

3,用户确认码制。

用户确认码制验证通过,则继续验证文件配置,否则将测试案例状态表征为“验证不通过”。

4,验证文件配置。

分别对原Oracle数据库和目标数据库的关联文件配置进行检查,得到检查结果,结果指示两数据库的关联文件配置都正确的情况下,通过验证,将测试案例状态表征为“验证通过”,否则将测试案例状态表征为“验证不通过”。

5,验证通过。

以上内容全部验证通过后,将“环境检查回归测试案例”状态表征为“验证通过”,并自动触发下一个“数据库对象迁移回归测试案例”的启动。

第二部分,数据库对象迁移回归测试模块。

数据库对象包括表、约束、视图、触发器、存储过程、自定义函数、索引、序列、新对象赋权、directory、dblink等,数据库对象迁移内容可以分为两类,第一类是直接迁移的内容,第二类是代码重构内容,其中,最常见的是存储过程转换成JAVA等其它形式的代码。

图4是根据本发明实施例的一种可选的数据库对象迁移回归测试模块的运行流程图,如图4所示,运行流程包括:

1,完整性比对验证。

当对应的“数据库对象迁移回归测试案例”被启动后,此时该回归测试案例状态从“待验证”转为“执行中”,自动进行原Oracle数据库对象与目标数据库对象完整性的比对,要求目标数据库中的比对过程中所依据的完整性比对策略包括:对象数量一致、对象名称一致,通过完整性比对则继续验证内容细节,否则需要对用户发起确认请求。

2,用户确认完整性。

当数据库对象比对出现不完整的情况,例如,对象名称不一致或者数量不一致时,需要用户进行手动确认是否跳过该对象的完整性比对,具体包括以下三种情况:

情况一,部分数据库对象(例如存储过程)确认本次作为间接迁移内容的情况下,作为代码重构内容,会在后续的“业务功能回归测试模块”中进行回归验证,则跳过该对象的完整性比对;

情况二,部分数据库对象确认停止使用的情况下,则跳过该对象的完整性比对;

情况三,部分数据库对象确认需要更改名称的,由用户确认前后名称对照关系,则跳过该对象的完整性比对;

若用户返回的结果中指示,该对象属于以上三种情况任意一种,认定为数据库对象完整性比对成功,继续进行内容细节一致性比对验证。

若用户返回的结果中指示,该对象不属于以上三种情况,而确定是对象转型问题的,将测试案例状态表征为“验证不通过”。

3,一致性比对验证。

表结构的验证属于数据库对象中最主要的内容,至少包括:验证数据类型,自动验证从Oracle数据库迁移到目标数据库后的正确性。

需要说明的是,数据类型包括:任意精度数字number、单精度浮点型float的字段、双精度浮点型double、定长字符型char、变长字符型varchar2、字符数据大对象类型clob、包含unicode格式数据变长字符型nvarchar2、二进制数据大对象类型blob、变长的十六进制类型raw、日期/时间类型date、日期/时间类型(包含小数秒)timestamp、数组类型、record类型。

4,用户确认一致性。

内容细节比对同样可能出现不一致的情况,例如,空值存储格式不一致等,需要用户进行不一致情况的确认,若用户确认不一致内容属于数据库转型正常范围内的,则可以认定为通过内容细节比对验证,否则认定为不通过,将测试案例状态表征为“验证不通过”。

5,验证通过。

以上内容全部验证通过后,将“数据库对象迁移回归测试案例”状态表征为为“验证通过”,并自动触发下一个“数据迁移回归测试案例”的启动。

第三部分,数据迁移回归测试模块。

数据迁移回归测试模块主要用于比对在数据迁移前后,原Oracle数据库中的数据表和目标数据库中相同的数据表中的数据内容是否符合规范,主要包括存量数据迁移验证和增量数据迁移验证。

图5是根据本发明实施例的一种可选的数据迁移回归测试模块的运行流程图,如图5所示,运行流程包括:

1,存量数据迁移比对。

当对应的“数据迁移回归测试案例”被启动后,此时该回归测试案例状态从“待验证”转为“执行中”,自动进行原Oracle数据库中数据表与目标数据库中数据表的存量迁移数据的比对,主要是对数据量、数据内容的比对,其中,数据内容包括:主键字段标识、字段标识、字段总数等。

数据量比对过程中,若出现某些表的数据记录数超过系统设定的记录数上限阈值,则按照主键排序后,进行部分数据比对;数据内容比对过程中,若出现某些表的字段数超过系统设定的字段数上限阈值,则按照系统设定的字段重要性选取部分字段,进行部分字段内容的数据比对,其中,主键字段属于必验字段。

数据比对过程中出现不一致的情况(例如,空值显示)时,需要用户进行手动确认,若用户判断存量数据迁移比对通过,则继续进行增量数据比对,否则将测试案例状态表征为“验证不通过”。

2,增量数据迁移比对。

用户可选择特定的数据表,自动插入部分数据后,进行增量数据比对验证,与存量数据迁移比对相同,增量数据迁移比对也包括对数据量、数据内容的逐一比对。

增量数据比对验证通过后,继续进行生僻字数据迁移比对,否则将测试案例状态表征为“验证不通过”。

3,生僻字数据迁移比对。

在原Oracle数据库中自动选择含有用户名或公司名字段并且数据量较小的数据表,插入特定的生僻字数据,验证是否可以存量数据迁移成功,若可以迁移成功,则待迁移成功后,自动删除原库和目标库中这条记录内容。

生僻字数据比对验证通过后,进入下一步流程,否则将测试案例状态表征为“验证不通过”。

4,验证通过。

以上内容全部验证通过后,将“数据迁移回归测试案例”状态置为“验证通过”。自动触发下一个“业务功能回归测试案例”的启动。

第四部分,业务功能回归测试模块。

业务功能回归测试主要包括联机测试和批量测试。

图6是根据本发明实施例的一种可选的业务功能回归测试模块的运行流程图,如图6所示,运行流程包括:

1,批量内容验证。

当对应的“业务功能回归测试案例”被启动后,此时该回归测试案例状态从“待验证”转为“执行中”,自动进行批量内容的自动化验证。

将已有的Oracle相关的批量自动化测试运行脚本,自动调整为新目标库相关的批量自动化测试运行脚本,进行批量脚本自动化验证,批量内容包括:批量程序、文件传输、日志内容、全流程。

批量验证过程中出现与预期不一致的情况时,需要用户根据业务逻辑进行人工判断,若用户判断批量内容验证通过,则继续进行联机内容验证,否则将测试案例状态表征为“验证不通过”。

2,联机内容验证。

将已有的Oracle相关的联机自动化测试运行脚本,自动调整为新目标库相关的联机自动化测试运行脚本,进行联机内容自动化验证,联机内容包括:业务流程、报表查询、导入导出、异步处理、联机接口。

联机验证过程中出现与预期不一致的情况时,需要用户根据业务逻辑进行人工判断,若用户判断联机内容验证通过,则进入下一步流程,否则将测试案例状态表征为“验证不通过”。

3,验证通过。

以上内容全部验证通过后,将“业务功能回归测试案例”状态置为“验证通过”。自动触发下一个“非功能性回归测试案例”的启动。

第五部分,非功能性回归测试模块。

非功能性测试内容主要以性能测试为主。

图7是根据本发明实施例的一种可选的非功能性回归测试模块的运行流程图,如图7所示,运行流程包括:

1,静态扫描慢代码。

当对应的“非功能性回归测试案例”被启动后,此时该回归测试案例状态从“待验证”转为“执行中”,自动对本次数据库转型中的新程序内容进行静态扫描,及时发现慢SQL代码。

展现存在慢SQL代码的各个程序脚本,此时需要用户根据实际情况进行人工判断,若用户判断为非问题,可以直接进入下一步验证,否则将测试案例状态表征为“验证不通过”。

2,运行时间比对。

在原Oracle数据库与新的目标数据库中存在相同功能的程序脚本,至少包括:前台联机脚本、后台批量脚本。

对相同功能的程序脚本的运行时间进行比对,若运行时间超过预设时间阈值,或者目标数据库相关程序运行时间比原数据库相关程序运行时间慢了2个(例如,以半小时为一个单位数量级)及以上的数量级,此时需要用户根据实际情况进行人工判断,若用户判断为非问题,可以直接进入下一步验证,否则将测试案例状态表征为“验证不通过”。

3,验证通过。

以上内容全部验证通过后,将“非功能性回归测试案例”状态置为“验证通过”。

只有在完成全部回归测试案例(环境检查、数据库对象迁移、数据迁移、业务功能、非功能性)的验证流程,并且测试案例状态全部表征“验证通过”以后,方可予以该应用数据库的投产切换。

本发明实施例中,提供了一种以测试案例为导向的Oracle数据库转型回归测试框架,根据数据库转型研发流程中各阶段的技术要点(具体包括:环境检查测试、数据库对象迁移测试、数据迁移测试、业务功能测试、非功能性测试),在Oracle数据库转型投产切换前对各应用进行全面覆盖的自动化回归测试,有效发现环境、调度中存在的潜在问题,为Oracle数据库的无故障切换奠定了良好基础,保障了数据库转型的高质量,提高了系统稳定性,给信创转型工作带来更高效益。

同时,各回归测试模块可以根据预设逻辑联动配合,自动化程度高,且可以实时更新各回归测试案例的验证状态,可以实现快速、高效的转型和回归测试。

下面结合另一实施例进行详细说明。

实施例二

本实施例中提供的一种数据库的切换验证装置包含了多个实施单元,每个实施单元对应于上述实施例一中的各个实施步骤。

图8是根据本发明实施例的一种可选的数据库的切换验证装置的示意图,如图8所示,该切换验证装置可以包括:接收单元80,查找单元81,对比单元82,发送单元83,其中,

接收单元80,用于接收数据库转型请求,其中,数据库转型请求用于请求将当前项目的历史数据库转型为新的目标数据库。

获取单元81,用于获取回归测试案例集合以及测试案例的验证流程,其中,回归测试案例集合中包含:环境检查回归测试案例、数据库对象迁移回归测试案例、数据迁移回归测试案例、业务功能回归测试案例、非功能性回归测试案例。

执行单元82,用于基于验证流程依次执行回归测试案例集合的各回归测试案例。

切换单元83,用于在完成所有回归测试案例的验证并且全部通过的情况下,将当前项目的历史数据库切换为新的目标数据库。

上述切换验证装置,可以通过接收单元80接收数据库转型请求,通过获取单元81获取回归测试案例集合以及测试案例的验证流程,其中,回归测试案例集合中包含:环境检查回归测试案例、数据库对象迁移回归测试案例、数据迁移回归测试案例、业务功能回归测试案例、非功能性回归测试案例,通过执行单元82基于验证流程依次执行回归测试案例集合的各回归测试案例,通过切换单元83在完成所有回归测试案例的验证并且全部通过的情况下,将当前项目的历史数据库切换为新的目标数据库。

在本发明实施例中,自接收数据库转型请求开始进行历史数据库向目标数据库的转型,通过获取案例测试集合中的测试案例,以及测试案例的回归验证流程,按照流程依次对集合中的测试案例进行验证,使数据库环境、数据库对象、数据内容、业务功能、非功能性的数据库性能这五个方面在数据库转型前后均能被检查到,确保了历史数据库在转型成为新的目标数据库之后,数据库环境是有效的、数据库调度指令是可实施的,进而解决了相关技术中数据库转型投产过程中,由于开发测试时间较长,容易出现环境无效、调度失败的技术问题。

可选地,执行单元包括:第一接收模块,用于在执行环境检查回归测试案例时,接收用户终端输入的历史数据库的第一环境信息以及新的目标数据库的第二环境信息;登录模块,用于基于第一环境信息登录历史数据库,并基于第二环境信息登录新的目标数据库,得到登录结果;第一验证模块,用于在登录结果指示成功登录历史数据库和新的目标数据库的情况下,分别验证历史数据库和新的目标数据库的码制,得到码制验证结果;检查模块,用于在码制验证结果指示历史数据库和新的目标数据库的码制验证都通过的情况下,分别检查历史数据库和新的目标数据库的关联文件配置,得到文件配置检查结果;第一表征模块,用于在文件配置检查结果指示历史数据库和新的目标数据库的关联文件配置都正确的情况下,将环境检查回归测试案例的测试状态表征为验证通过。

可选地,执行单元还包括:第一获取模块,用于在执行数据库对象迁移回归测试案例时,获取数据库对象集合,其中,数据库对象集合中包含N个待测试的数据库对象,N为大于等于1的整数;第一比对模块,用于基于完整性比对策略,分别比对每个数据库对象在历史数据库中以及新的目标数据库中的完整度,得到第一比对结果,其中,完整性比对策略包括下述至少之一:数据库对象的数量比对策略、数据库对象的名称比对策略;整合模块,用于整合第一比对结果中完整性比对通过的数据库对象,得到第一对象集合;提取模块,用于提取第一对象集合中每个数据库对象的对象内容,其中,对象内容至少包括:数据类型;第二比对模块,用于分别比对第一对象集合中每个数据库对象的对象内容在历史数据库中以及新的目标数据库中是否一致,得到第二比对结果;第二表征模块,用于在第二比对结果指示对象内容都一致或者在接收到用户终端确认对象内容的一致性指令的情况下,将数据库对象迁移回归测试案例的测试状态表征为验证通过。

可选地,执行单元还包括:请求模块,用于在第一比对结果包含任一目标数据库对象的完整度达不到预设完整度要求的情况下,发起对象迁移确认请求,其中,对象迁移确认请求用于告知用户终端目标数据库对象在由历史数据库模拟迁移至新的目标数据库后出现不一致的信息;接收模块,用于接收用户终端返回的对象比对确认信息;跳过模块,用于在对象比对确认信息指示目标数据库对象作为间接迁移内容的情况下时,或者,在对象比对确认信息指示目标数据库对象停止使用的情况下时,或者,基于对象比对确认信息中携带的前后名称映射关系,确认目标数据库对象需要更改名称时,跳过目标数据库对象的完整性比对;第三表征模块,在对象比对确认信息确认目标数据库对象存在转型问题,则确认目标数据库对象的完整性比对出现错误,将数据库对象迁移回归测试案例的测试状态表征为验证不通过。

可选地,执行单元还包括:第二获取模块,用于在执行数据迁移回归测试案例时,获取历史数据库中的第一数据表以及新的目标数据库中的第二数据表;第三比对模块,用于对第一数据表和第二数据表进行存量迁移数据比对,得到第三比对结果;第四比对模块,用于在第三比对结果指示存量迁移数据一致的情况下,对第一指定表进行增量数据迁移比对,得到第四比对结果;第五比对模块,用于在第四比对结果指示增量数据迁移比对一致的情况下,对第二指定表进行生僻字数据迁移比对,得到第五比对结果;第四表征模块,用于在第五比对结果指示生僻字数据迁移比对一致的情况下,将数据迁移回归测试案例的测试状态表征为验证通过。

可选地,第三比对模块包括:数据量比对子模块,用于基于第一数据表和第二数据表之间的数据量,得到表数据量比对结果,其中,表数据量比对结果用于指示第一数据表和第二数据表之间的数据量是否一致;数据内容比对子模块,用于基于第一数据表和第二数据表之间的数据内容,得到表数据内容比对结果,其中,表数据内容比对结果用于指示第一数据表和第二数据表之间的数据内容是否一致,数据内容包括:主键字段标识、字段标识、字段总数;确定子模块,用于基于表数据量比对结果以及表数据内容比对结果,确定第三比对结果。

可选地,第四比对模块包括:接收子模块,用于接收用户终端在历史数据库中选取的第一指定表以及插入操作;响应子模块,用于响应插入操作,在第一指定表中的数据单元格中插入部分数据;迁移子模块,用于将插入部分数据的第一指定表迁移至新的目标数据库中;内容比对子模块,用于在历史数据库以及新的目标数据库中查找关联第一指定表的数据内容,并基于查找结果,得到第四比对结果,其中,第四比对结果用于指示历史数据库以及新的目标数据库中关联第一指定表的数据内容是否一致。

可选地,执行单元还包括:第三获取模块,用于在执行业务功能回归测试案例时,获取待测试的批量测试运行脚本;第二验证模块,用于基于脚本测试策略,验证将批量测试运行脚本由历史数据库模拟迁移至新的目标数据库的一致性,得到脚本验证结果;第三验证模块,用于在脚本验证结果指示批量测试运行脚本在数据库模拟迁移后一致的情况下,对批量测试运行脚本进行业务联机内容验证,得到联机验证结果;第五表征模块,用于在联机验证结果指示验证通过的情况下,将数据迁移回归测试案例的测试状态表征为验证通过。

可选地,第三验证模块包括下述至少之一:业务流程验证子模块、报表查询验证子模块、导入导出验证子模块、异步处理验证子模块、联机接口验证子模块。

可选地,执行单元还包括:第四获取模块,用于在执行非功能性回归测试案例时,获取将当前项目的历史数据库转型为新的目标数据库过程中出现的新程序;扫描模块,用于对新程序进行静态扫描,得到程序脚本集合;提取模块,用于提取程序脚本集合中每个程序脚本的脚本类型;第六比对模块,用于在脚本类型都为非慢代码脚本的情况下,比对程序脚本集合中相同功能的程序脚本之间的运行时长;第六表征模块,用于在脚本类型为慢代码脚本的情况下,将非功能性回归测试案例的测试状态表征为验证不通过;在运行时长超出预设时长阈值的情况下,将非功能性回归测试案例的测试状态表征为验证不通过;在运行时长未超出预设时长阈值的情况下,将非功能性回归测试案例的测试状态表征为验证通过。

上述的切换验证装置还可以包括处理器和存储器,上述接收单元80,获取单元81,执行单元82,切换单元83等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。

上述处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来将当前项目的历史数据库切换为新的目标数据库。

上述存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。

本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:接收数据库转型请求,其中,数据库转型请求用于请求将当前项目的历史数据库转型为新的目标数据库;获取回归测试案例集合以及测试案例的验证流程,其中,回归测试案例集合中包含:环境检查回归测试案例、数据库对象迁移回归测试案例、数据迁移回归测试案例、业务功能回归测试案例、非功能性回归测试案例;基于验证流程依次执行回归测试案例集合的各回归测试案例;在完成所有回归测试案例的验证并且全部通过的情况下,将当前项目的历史数据库切换为新的目标数据库。

根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,计算机可读存储介质包括存储的计算机程序,其中,在计算机程序运行时控制计算机可读存储介质所在设备执行上述任意一项的数据库的切换验证方法。

根据本发明实施例的另一方面,还提供了一种电子设备,包括一个或多个处理器和存储器,存储器用于存储一个或多个程序,其中,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器实现上述任意一项的数据库的切换验证方法。

图9是根据本发明实施例的一种数据库的切换验证方法的电子设备(或移动设备)的硬件结构框图。如图9所示,电子设备可以包括一个或多个(图9中采用902a、902b,……,902n来示出)处理器902(处理器902可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器904。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为I/O接口的端口中的一个端口被包括)、网络接口、键盘、电源和/或相机。本领域普通技术人员可以理解,图9所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,电子设备还可包括比图9中所示更多或者更少的组件,或者具有与图9所示不同的配置。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

技术分类

06120116195456