CN117215895A - 数据库操作语句的测试方法、装置、设备及存储介质 - Google Patents
数据库操作语句的测试方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN117215895A CN117215895A CN202311258004.5A CN202311258004A CN117215895A CN 117215895 A CN117215895 A CN 117215895A CN 202311258004 A CN202311258004 A CN 202311258004A CN 117215895 A CN117215895 A CN 117215895A
- Authority
- CN
- China
- Prior art keywords
- determining
- execution
- test
- information
- test data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 254
- 238000000034 method Methods 0.000 claims abstract description 127
- 230000008569 process Effects 0.000 claims description 87
- 238000005457 optimization Methods 0.000 claims description 53
- 238000012545 processing Methods 0.000 claims description 35
- 238000004590 computer program Methods 0.000 claims description 11
- 238000011156 evaluation Methods 0.000 abstract description 6
- 238000013461 design Methods 0.000 description 23
- 238000010586 diagram Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 9
- 238000010998 test method Methods 0.000 description 6
- 230000003044 adaptive effect Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本申请提供一种数据库操作语句的测试方法、装置、设备及存储介质。涉及数据库技术领域。该方法包括:确定操作原数据库的多条第一操作语句、以及操作目标数据库的多条第二操作语句,所述目标数据库为所述原数据库更新后的数据库;根据所述第一操作语句对所述原数据库进行操作,得到第一操作信息,以及根据所述第二操作语句对所述目标数据库进行操作,得到第二操作信息;根据所述第一操作信息和所述第二操作信息,确定对所述多条第二测试语句的测试结果。以上方案,通过原数据库的多条第一操作语句,引入测试的评价标准,从而提升数据库操作语句的测试准确性。
Description
技术领域
本申请涉及数据库技术领域,尤其涉及一种数据库操作语句的测试方法、装置、设备及存储介质。
背景技术
数据库技术广泛应用在多种企业业务中,数据库,即存储数据的“仓库”,数据库具有持久化以及快捷化的优势,数据库可以长期安全存储数据,用户也可以快速对数据库中的数据进行管理。
实际应用中,存在多种数据库,当出现用户业务调整或者业务升级时,需要转换数据库,由于每种数据库具有不同的数据库查询语言,因此转换数据库后需要将旧查询语言对应转换为新查询语言。
在此基础上,需要对新查询语言进行测试验证,从而保证转换后的数据库可以正常工作,提升测试验证的准确性对于降低转换后的数据库的风险具有重要意义。
发明内容
本申请提供一种数据库操作语句的测试方法、装置、设备及存储介质,用以提升测试的准确性。
第一方面,本申请提供一种数据库操作语句的测试方法,包括:确定操作原数据库的多条第一操作语句、以及操作目标数据库的多条第二操作语句,所述目标数据库为所述原数据库更新后的数据库;根据所述第一操作语句对所述原数据库进行操作,得到第一操作信息,以及根据所述第二操作语句对所述目标数据库进行操作,得到第二操作信息;根据所述第一操作信息和所述第二操作信息,确定对所述多条第二测试语句的测试结果。
在一种可能的设计中,确定操作原数据库的多条第一操作语句、以及操作目标数据库的多条第二操作语句,包括:获取所述原数据库对应的多条第一语句模板、所述目标数据库对应的多条第二语句模板;根据所述原数据库和所述目标数据库中存储的数据,生成多个测试数据;对所述多条第一语句模板和所述多个测试数据进行组合处理,得到所述多条第一操作语句;对所述多条第二语句模板和所述多个测试数据进行组合处理,得到所述多条第二操作语句。
在一种可能的设计中,对所述多条第一语句模板和所述多个测试数据进行组合处理,得到所述多条第一操作语句,包括:确定每条第一语句模板对应的至少一个数据类型;确定所述多个测试数据中、每个测试数据的数据类型;根据每条第一语句模板对应的至少一个数据类型、以及每个测试数据的数据类型,在所述多个测试数据中,确定每条第一语句模板对应的多个第一测试数据;将每条第一语句模板与所述多个第一测试数据进行组合处理,得到所述多条第一操作语句。
在一种可能的设计中,针对任意一条第一语句模板;确定所述第一语句模板对应的至少一个数据类型,包括:对所述第一语句模板进行文本识别处理,以在所述第一语句模板中识别得到至少一个待填充位;确定每个待填充位对应的数据类型;将所述至少一个待填充位对应的数据类型,确定为所述至少一个数据类型。
在一种可能的设计中,所述第一语句模板对应至少两个数据类型,针对任意一条第一语句模板;将所述第一语句模板与所述多个第一测试数据进行组合处理,包括:根据所述第一语句模板对应的至少两个数据类型、以及每个第一测试数据的数据类型,对所述多个第一测试数据进行随机组合处理,得到多个测试数据集合,所述测试数据集合中包括所述至少两个数据类型对应的至少两个测试数据;针对任意一个测试数据集合,确定所述测试数据集合中各测试数据在所述第一语句模板中的数据位置,并根据所述数据位置,将所述测试数据集合中的测试数据填充至所述第一语句模板中,以实现将所述第一语句模板与所述测试数据集合中的测试数据进行组合处理。
在一种可能的设计中,所述第一操作信息包括:对所述原数据库的第一操作结果、第一执行过程信息、以及执行所述第一操作语句的第一资源消耗信息;所述第二操作信息包括:对所述目标数据库的第二操作结果、第二执行过程信息、以及执行所述第二操作语句的第二资源消耗信息。
在一种可能的设计中,根据所述第一操作信息和所述第二操作信息,确定对所述多条第二测试语句的测试结果,包括:根据所述第一操作结果和所述第二操作结果,确定结果差异度;根据所述第一执行过程信息和所述第二执行过程信息,确定执行过程差异度;根据所述第一资源消耗信息和所述第二资源消耗信息,确定资源消耗差异度;根据所述结果差异度、所述执行过程差异度和所述资源消耗差异度,确定所述测试结果。
在一种可能的设计中,根据所述结果差异度、所述执行过程差异度和所述资源消耗差异度,确定所述测试结果,包括:确定所述结果差异度对应的第一权重、所述执行过程差异度对应的第二权重、以及所述资源消耗差异度对应的第三权重;根据所述结果差异度、所述执行过程差异度、所述资源消耗差异度、所述第一权重、所述第二权重和所述第三权重,确定目标差异度;若所述目标差异度大于或等于预设阈值,则确定所述测试结果为测试未通过,若所述目标差异度小于所述预设阈值,则确定所述测试结果为测试通过。
在一种可能的设计中,所述第一操作结果包括第一操作数据集,所述第二操作结果包括第二操作数据集;根据所述第一操作结果和所述第二操作结果,确定结果差异度,包括:确定所述第一操作数据集中包括第一行数、以及所述第二操作数据集中包括的第二行数;在所述第一操作数据集和所述第二操作数据集中确定差异行、以及所述差异行的差异行数;根据所述差异行数、所述第一行数和所述第二行数,确定所述结果差异度。
在一种可能的设计中,所述第一执行过程信息包括多个第一执行算法、以及所述多个第一执行算法的第一执行顺序;所述第二执行过程信息包括多个第二执行算法、以及所述多个第二执行算法的第二执行顺序;根据所述第一执行过程信息和所述第二执行过程信息,确定执行过程差异度,包括:确定所述多个第一执行算法的第一数量、所述多个第二执行算法的第二数量;确定所述多个第一执行算法和所述第二执行算法中的重合算法、以及所述重合算法的第三数量;根据所述第一数量、所述第二数量和所述第三数量,确定算法重合度;根据所述第一执行顺序和所述第二执行顺序,确定顺序相似度;根据所述算法重合度和所述顺序相似度,确定所述执行过程差异度。
在一种可能的设计中,所述方法还包括:通过预设模型对所述测试结果进行处理,得到所述目标数据库对应的优化信息;其中,所述优化信息包括如下至少一种:操作优化信息、索引优化信息、统计优化信息、冗余优化信息和缓存优化信息。
第二方面,本申请提供一种数据库操作语句的测试装置,包括:确定模块,用于确定操作原数据库的多条第一操作语句、以及操作目标数据库的多条第二操作语句,所述目标数据库为所述原数据库更新后的数据库;操作模块,用于根据所述第一操作语句对所述原数据库进行操作,得到第一操作信息,以及根据所述第二操作语句对所述目标数据库进行操作,得到第二操作信息;测试模块,用于根据所述第一操作信息和所述第二操作信息,确定对所述多条第二测试语句的测试结果。
在一种可能的设计中,所述确定模块,具体用于获取所述原数据库对应的多条第一语句模板、所述目标数据库对应的多条第二语句模板;所述确定模块,具体还用于根据所述原数据库和所述目标数据库中存储的数据,生成多个测试数据;所述确定模块,具体还用于对所述多条第一语句模板和所述多个测试数据进行组合处理,得到所述多条第一操作语句;所述确定模块,具体还用于对所述多条第二语句模板和所述多个测试数据进行组合处理,得到所述多条第二操作语句。
在一种可能的设计中,所述确定模块,具体用于确定每条第一语句模板对应的至少一个数据类型;所述确定模块,具体还用于确定所述多个测试数据中、每个测试数据的数据类型;所述确定模块,具体还用于根据每条第一语句模板对应的至少一个数据类型、以及每个测试数据的数据类型,在所述多个测试数据中,确定每条第一语句模板对应的多个第一测试数据;所述确定模块,具体还用于将每条第一语句模板与所述多个第一测试数据进行组合处理,得到所述多条第一操作语句。
在一种可能的设计中,针对任意一条第一语句模板;所述确定模块,具体用于对所述第一语句模板进行文本识别处理,以在所述第一语句模板中识别得到至少一个待填充位;所述确定模块,具体还用于确定每个待填充位对应的数据类型;所述确定模块,具体还用于将所述至少一个待填充位对应的数据类型,确定为所述至少一个数据类型。
在一种可能的设计中,所述第一语句模板对应至少两个数据类型,针对任意一条第一语句模板;所述确定模块,具体用于根据所述第一语句模板对应的至少两个数据类型、以及每个第一测试数据的数据类型,对所述多个第一测试数据进行随机组合处理,得到多个测试数据集合,所述测试数据集合中包括所述至少两个数据类型对应的至少两个测试数据;所述确定模块,具体还用于针对任意一个测试数据集合,确定所述测试数据集合中各测试数据在所述第一语句模板中的数据位置,并根据所述数据位置,将所述测试数据集合中的测试数据填充至所述第一语句模板中,以实现将所述第一语句模板与所述测试数据集合中的测试数据进行组合处理。
在一种可能的设计中,所述第一操作信息包括:对所述原数据库的第一操作结果、第一执行过程信息、以及执行所述第一操作语句的第一资源消耗信息;所述第二操作信息包括:对所述目标数据库的第二操作结果、第二执行过程信息、以及执行所述第二操作语句的第二资源消耗信息。
在一种可能的设计中,所述装置还包括:执行模块,用于根据所述第一操作结果和所述第二操作结果,确定结果差异度;所述执行模块,具体还用于根据所述第一执行过程信息和所述第二执行过程信息,确定执行过程差异度;所述执行模块,还用于根据所述第一资源消耗信息和所述第二资源消耗信息,确定资源消耗差异度;所述执行模块,还用于根据所述结果差异度、所述执行过程差异度和所述资源消耗差异度,确定所述测试结果。
在一种可能的设计中,所述执行模块,具体用于确定所述结果差异度对应的第一权重、所述执行过程差异度对应的第二权重、以及所述资源消耗差异度对应的第三权重;所述执行模块,具体还用于根据所述结果差异度、所述执行过程差异度、所述资源消耗差异度、所述第一权重、所述第二权重和所述第三权重,确定目标差异度;所述执行模块,具体还用于若所述目标差异度大于或等于预设阈值,则确定所述测试结果为测试未通过,若所述目标差异度小于所述预设阈值,则确定所述测试结果为测试通过。
在一种可能的设计中,所述第一操作结果包括第一操作数据集,所述第二操作结果包括第二操作数据集;所述执行模块,具体用于确定所述第一操作数据集中包括第一行数、以及所述第二操作数据集中包括的第二行数;所述执行模块,具体还用于在所述第一操作数据集和所述第二操作数据集中确定差异行、以及所述差异行的差异行数;所述执行模块,具体还用于根据所述差异行数、所述第一行数和所述第二行数,确定所述结果差异度。
在一种可能的设计中,所述第一执行过程信息包括多个第一执行算法、以及所述多个第一执行算法的第一执行顺序;所述第二执行过程信息包括多个第二执行算法、以及所述多个第二执行算法的第二执行顺序;所述执行模块,具体用于确定所述多个第一执行算法的第一数量、所述多个第二执行算法的第二数量;所述执行模块,具体还用于确定所述多个第一执行算法和所述第二执行算法中的重合算法、以及所述重合算法的第三数量;所述执行模块,具体还用于根据所述第一数量、所述第二数量和所述第三数量,确定算法重合度;所述执行模块,具体还用于根据所述第一执行顺序和所述第二执行顺序,确定顺序相似度;所述执行模块,具体还用于根据所述算法重合度和所述顺序相似度,确定所述执行过程差异度。
在一种可能的设计中,所述装置还包括:优化模块,用于通过预设模型对所述测试结果进行处理,得到所述目标数据库对应的优化信息;其中,所述优化信息包括如下至少一种:操作优化信息、索引优化信息、统计优化信息、冗余优化信息和缓存优化信息。
第三方面,本申请实施例提供一种电子设备,包括:至少一个处理器和存储器;所述存储器存储计算机执行指令;所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如上第一方面以及第一方面各种可能的设计所述的数据库操作语句的测试方法。
第四方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上第一方面以及第一方面各种可能的设计所述的数据库操作语句的测试方法。
第五方面,本申请实施例提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时,实现如上第一方面以及第一方面各种可能的设计所述的数据库操作语句的测试方法。
本申请提供的数据库操作语句的测试方法、装置、设备及存储介质,确定操作原数据库的多条第一操作语句、以及操作目标数据库的多条第二操作语句,所述目标数据库为所述原数据库更新后的数据库;根据所述第一操作语句对所述原数据库进行操作,得到第一操作信息,以及根据所述第二操作语句对所述目标数据库进行操作,得到第二操作信息;根据所述第一操作信息和所述第二操作信息,确定对所述多条第二测试语句的测试结果。以上方案,通过原数据库的多条第一操作语句,引入测试的评价标准,从而提升数据库操作语句的测试准确性。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为本申请实施例提供的一种数据库操作语句的测试方法的应用场景示意图;
图2为本申请实施例提供的一种数据库操作语句的测试方法的流程示意图;
图3为本申请实施例提供的一种数据库操作语句的测试方法的流程示意图;
图4为本申请实施例提供的生成操作语句示意图;
图5为本申请实施例提供的确定算法重合度示意图;
图6为本申请实施例提供的确定目标差异度示意图;
图7为本申请实施例提供的一种数据库操作语句的测试装置的结构示意图;
图8为本申请实施例提供的一种数据库操作语句的测试装置的结构示意图;
图9为本申请实施例提供的一种电子设备的结构示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
需要说明的是,本申请的技术方案中,所涉及的金融数据或用户数据等信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
图1为现有技术的数据库操作语句的测试的应用场景图。如图1所示,根据业务需求对原数据库进行更新处理,得到目标数据库,从目标数据库中获取目标操作语句,对目标操作语句进行测试,得到测试结果。
现有技术中,对目标操作语句进行测试,测试结果的判断标准不全面,进而影响测试准确性。
针对上述技术问题,本申请提出如下技术构思:原数据库的原操作语句经过长期使用,已经验证通过具有代表性,以原操作语句作为评价标准,可以提升对目标操作语句进行测试的测试准确性。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
图2为本申请实施例提供的一种数据库操作语句的测试方法的流程示意图,该方法包括以下步骤:
S201、确定操作原数据库的多条第一操作语句、以及操作目标数据库的多条第二操作语句,所述目标数据库为所述原数据库更新后的数据库。
作为示例,该实施例的执行主体可以为数据库操作语句的测试装置,该数据库操作语句的测试装置的实现有多种。例如,可以为程序软件,也可以为存储有相关计算机程序的介质,例如,U盘等;或者,该装置还可以为集成或安装有相关计算机程序的实体设备,例如,芯片、智能终端、电脑、服务器等。
可选的,目标数据库可以与原数据库为同一种数据库,也可以与原数据库为不同数据库。
举例来说,一种场景下,目标数据库为原数据库升级得到,此种场景目标数据库与原数据库为同一种数据库。另一种场景下,数据从原数据库迁移到目标数据库,此种场景目标数据库与原数据库为不同数据库
S202、根据所述第一操作语句对所述原数据库进行操作,得到第一操作信息,以及根据所述第二操作语句对所述目标数据库进行操作,得到第二操作信息。
其中,第一操作语句与第二操作语句用于实现相同的功能,例如第一操作语句和第二操作语句用于查询同一条数据。
可以理解,通过环境镜像的方式,可以在不改变主机实体结构的前提下,扩展主机的运行环境。
S203、根据所述第一操作信息和所述第二操作信息,确定对所述多条第二测试语句的测试结果。
可选的,多条第一操作语句为优化后的操作语句,多条第一操作语句在原数据库中可以正常运行得到结果,并且多条第一操作语句具有较好性能。
其中,第一操作信息作为评价标准,通过评价标准,对第二操作信息进行评价,从而得到第二操作语句在目标数据库中的性能。
本申请实施例提供的数据库操作语句的测试方法,确定操作原数据库的多条第一操作语句、以及操作目标数据库的多条第二操作语句,所述目标数据库为所述原数据库更新后的数据库;根据所述第一操作语句对所述原数据库进行操作,得到第一操作信息,以及根据所述第二操作语句对所述目标数据库进行操作,得到第二操作信息;根据所述第一操作信息和所述第二操作信息,确定对所述多条第二测试语句的测试结果。以上方案,通过原数据库的多条第一操作语句,引入测试的评价标准,从而提升数据库操作语句的测试准确性。
在上述任意一个实施例的基础上,下面,结合图3,对数据库操作语句的测试的详细过程进行说明。
图3为本申请实施例提供的一种数据库操作语句的测试方法的流程示意图。如图3所示,该方法包括:
S301、获取所述原数据库对应的多条第一语句模板、所述目标数据库对应的多条第二语句模板。
其中,语句模板中仅包括算法必须的代码,不包括具体的测试数据。
可选的,每个语句模板对应一个操作功能,例如:新增功能、删除功能、修改功能以及查询功能等。
S302、根据所述原数据库和所述目标数据库中存储的数据,生成多个测试数据。
可选的,通过对数据库进行解析处理,得到数据库中存储的数据。
再可选的,获取测试要求和测试参数,根据测试要求和测试参数,生成多个测试数据。
再可选的,通过研发工程师根据测试的目的确定测试要求和测试参数。
S303、对所述多条第一语句模板和所述多个测试数据进行组合处理,得到所述多条第一操作语句。
下面,结合图4对生成操作语句进行说明。
图4为本申请实施例提供的生成操作语句示意图。如图4所示,语句模板中包括固定代码以及空白位置,在空白位置填入测试数据进行组合,得到操作语句。举例来说,操作语句“从数据表1查询数据1”以及操作语句“从数据表2查询数据2”,执行的动作相同,区别在于具体的数据不同。
可以理解,语句模板可以复用,通过语句模板可以提升生成操作语句的效率。
一种可行的实现方式,对所述多条第一语句模板和所述多个测试数据进行组合处理,包括:确定每条第一语句模板对应的至少一个数据类型;确定所述多个测试数据中、每个测试数据的数据类型;根据每条第一语句模板对应的至少一个数据类型、以及每个测试数据的数据类型,在所述多个测试数据中,确定每条第一语句模板对应的多个第一测试数据;将每条第一语句模板与所述多个第一测试数据进行组合处理,得到所述多条第一操作语句。
结合场景示例来说,每个第一语句模板存在对应的数据类型,对应的数据类型与第一语句模板组合均符合语法规则,因此仅从对应的数据类型所对应的数据中选取第一测试数据。
进一步的,一种可行的实现方式,针对任意一条第一语句模板;确定所述第一语句模板对应的至少一个数据类型,包括:对所述第一语句模板进行文本识别处理,以在所述第一语句模板中识别得到至少一个待填充位;确定每个待填充位对应的数据类型;将所述至少一个待填充位对应的数据类型,确定为所述至少一个数据类型。
结合场景示例来说,根据语法规则,不同的待填充位适用不同的数据类型,根据待填充位确定对应的数据类型,可以避免不适用的数据与待填充位组合而导致生成的操作语句存在错误。
在该种可行的实现方式中,通过确定第一语句模板存在对应的数据类型,保证第一操作语句符合语法规则,从而提升第一操作语句的准确性。
具体的,一种可行的实现方式,所述第一语句模板对应至少两个数据类型,针对任意一条第一语句模板;将所述第一语句模板与所述多个第一测试数据进行组合处理,包括:根据所述第一语句模板对应的至少两个数据类型、以及每个第一测试数据的数据类型,对所述多个第一测试数据进行随机组合处理,得到多个测试数据集合,所述测试数据集合中包括所述至少两个数据类型对应的至少两个测试数据;针对任意一个测试数据集合,确定所述测试数据集合中各测试数据在所述第一语句模板中的数据位置,并根据所述数据位置,将所述测试数据集合中的测试数据填充至所述第一语句模板中,以实现将所述第一语句模板与所述测试数据集合中的测试数据进行组合处理。
结合场景示例来说,针对第一语句模板中有至少两个待填充位的场景,每个待填充位有对应的数据类型,例如库名称、表名称或者字段名称的,通过随机组合可以得到多个操作语句。
在该种可行的实现方式中,通过随机组合的方式,可以覆盖多种操作语句。
S304、对所述多条第二语句模板和所述多个测试数据进行组合处理,得到所述多条第二操作语句。
需要说明的是,S304的执行过程参见S303,此处不再赘述。
S305、根据所述第一操作语句对所述原数据库进行操作,得到第一操作信息,以及根据所述第二操作语句对所述目标数据库进行操作,得到第二操作信息。
需要说明的是,S305的执行过程参见S202,此处不再赘述。
S306、根据所述第一操作信息和所述第二操作信息,确定结果差异度、执行过程差异度以及资源消耗差异度。
其中,所述第一操作信息包括:对所述原数据库的第一操作结果、第一执行过程信息、以及执行所述第一操作语句的第一资源消耗信息;所述第二操作信息包括:对所述目标数据库的第二操作结果、第二执行过程信息、以及执行所述第二操作语句的第二资源消耗信息。
需要说明的是,本申请不限制操作信息的具体类型。
一种可行的实现方式,所述第一操作结果包括第一操作数据集,所述第二操作结果包括第二操作数据集;确定结果差异度,包括:确定所述第一操作数据集中包括第一行数、以及所述第二操作数据集中包括的第二行数;在所述第一操作数据集和所述第二操作数据集中确定差异行、以及所述差异行的差异行数;根据所述差异行数、所述第一行数和所述第二行数,确定所述结果差异度。
可选的,计算第一行数和第二行数的行数和,将差异行数与行数和的比值,确定为结果差异度。
结合场景示例来说,差异行数与行数和的比值越大,说明差异行数占比越多,说明差异越大。
在该种可行的实现方式中,计算差异行数与行数和的比值,相比于直接比较差异行数,可以准确评价结果差异度。
一种可行的实现方式,所述第一执行过程信息包括多个第一执行算法、以及所述多个第一执行算法的第一执行顺序;所述第二执行过程信息包括多个第二执行算法、以及所述多个第二执行算法的第二执行顺序;确定执行过程差异度,包括:确定所述多个第一执行算法的第一数量、所述多个第二执行算法的第二数量;确定所述多个第一执行算法和所述第二执行算法中的重合算法、以及所述重合算法的第三数量;根据所述第一数量、所述第二数量和所述第三数量,确定算法重合度;根据所述第一执行顺序和所述第二执行顺序,确定顺序相似度;根据所述算法重合度和所述顺序相似度,确定所述执行过程差异度。
下面,结合图5对确定算法重合度进行说明。
图5为本申请实施例提供的确定算法重合度示意图。如图5所示,根据第一执行算法和第二执行算法,确定重合算法,重合算法既存在于第一执行算法,又存在于第二执行算法。确定重合算法的数量。根据第一数量、第二数量以及第三数量,计算算法重合度。
可选的,计算第一数量和第二数量的数量和,将第三数量与数量和的比值,确定为算法重合度。
在该种可行的实现方式中,通过确定重合算法的数量,可以对算法重合度进行准确量化,从而提升测试的准确度。
S307、确定所述结果差异度对应的第一权重、所述执行过程差异度对应的第二权重、以及所述资源消耗差异度对应的第三权重。
结合场景示例来说,结果差异度、执行过程差异度以及资源消耗差异度对于评价测试结果,具有不同的代表性,根据代表性的高低设置不同的权重。
可选的,根据具体的业务场景调整权重的具体数值。
S308、根据所述结果差异度、所述执行过程差异度、所述资源消耗差异度、所述第一权重、所述第二权重和所述第三权重,确定目标差异度。
下面,结合图6对确定目标差异度进行说明。
图6为本申请实施例提供的确定目标差异度示意图。如图6所示,将结果差异度和第一权重的乘积,确定为第一结果,将执行过程差异度和第二权重的乘积,确定为第二结果,将资源消耗差异度和第三权重的乘积,确定为第三结果。将第一结果、第二结果以及第三结果的和或者算术平均值确定为目标差异度。
基于以上实施方式,通过计算目标差异度可以综合多种维度评价第一操作信息和第二操作信息的差异度,从而提升测试的准确性。
S309、确定目标差异度是否大于或等于预设阈值。
若是,则执行S310。
若否,则执行S311。
S310、确定所述测试结果为测试未通过。
结合场景示例来说,预设阈值作为第一操作信息和第二操作信息的差异分界线,若目标差异度是否大于或等于预设阈值,则说明第一操作信息和第二操作信息差异大,说明第二操作语句在目标数据库中执行的性能差,测试结果为测试未通过。
S311、确定所述测试结果为测试通过。
需要说明的是,S311的执行过程参见S310,此处不再赘述。
一种可行的实现方式,通过预设模型对所述测试结果进行处理,得到所述目标数据库对应的优化信息;其中,所述优化信息包括如下至少一种:操作优化信息、索引优化信息、统计优化信息、冗余优化信息和缓存优化信息。
可选的,优化包括:动态优化、自适应索引优化、统计信息改进、并行优化,缓存优化以及预处理等。
结合场景示例来说,动态优化为根据测试过程中的实时测试数据生成优化策略,生成优化策略包括但不限于:动态调整连接顺序、自适应索引选择以及自适应调整并行度等。自适应索引优化为根据测试过程中实时监控到的索引运行状态,生成索引的优化策略。统计信息改进为筛选异常的信息进行采样得到统计信息,从而减少采样数量。并行优化为提升执行操作语句的并行度,从而提升操作语句的执行效率。缓存优化为在目标数据库上线之前即进行加载缓存,可以提升用户使用目标数据库时的缓存加载速率,以及缓存淘汰策略,避免缓存数量过多影响目标数据库的运行效率。预处理为用户使用目标数据库之前预先计算操作语句的通用部分,从而提升操作语句的执行效率。
在该种可行的实现方式中,通过多种优化策略,可以从多角度对操作语句,从而提升目标数据库的执行准确性和执行效率。
图7为本申请实施例提供的一种数据库操作语句的测试装置的结构示意图。如图7所示,该数据库操作语句的测试装置70可以包括:确定模块71、操作模块72以及测试模块73,其中,
所述确定模块71,用于确定操作原数据库的多条第一操作语句、以及操作目标数据库的多条第二操作语句,所述目标数据库为所述原数据库更新后的数据库。
所述操作模块72,用于根据所述第一操作语句对所述原数据库进行操作,得到第一操作信息,以及根据所述第二操作语句对所述目标数据库进行操作,得到第二操作信息。
所述测试模块73,用于根据所述第一操作信息和所述第二操作信息,确定对所述多条第二测试语句的测试结果。
可选的,确定模块71可以执行图2实施例中的S201。
可选的,操作模块72可以执行图2实施例中的S202。
可选的,测试模块73可以执行图2实施例中的S203。
需要说明的是,本申请实施例所示的数据库操作语句的测试装置可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。
在一种可能的实施方式中,所述确定模块71,具体用于:
获取所述原数据库对应的多条第一语句模板、所述目标数据库对应的多条第二语句模板;
根据所述原数据库和所述目标数据库中存储的数据,生成多个测试数据;对所述多条第一语句模板和所述多个测试数据进行组合处理,得到所述多条第一操作语句;
对所述多条第二语句模板和所述多个测试数据进行组合处理,得到所述多条第二操作语句。
在一种可能的实施方式中,所述确定模块71,具体用于:
确定每条第一语句模板对应的至少一个数据类型;
确定所述多个测试数据中、每个测试数据的数据类型;
根据每条第一语句模板对应的至少一个数据类型、以及每个测试数据的数据类型,在所述多个测试数据中,确定每条第一语句模板对应的多个第一测试数据;
将每条第一语句模板与所述多个第一测试数据进行组合处理,得到所述多条第一操作语句。
在一种可能的实施方式中,针对任意一条第一语句模板;所述确定模块71,具体用于:
对所述第一语句模板进行文本识别处理,以在所述第一语句模板中识别得到至少一个待填充位;
确定每个待填充位对应的数据类型;
将所述至少一个待填充位对应的数据类型,确定为所述至少一个数据类型。
在一种可能的实施方式中,所述第一语句模板对应至少两个数据类型,针对任意一条第一语句模板;所述确定模块71,具体用于:
根据所述第一语句模板对应的至少两个数据类型、以及每个第一测试数据的数据类型,对所述多个第一测试数据进行随机组合处理,得到多个测试数据集合,所述测试数据集合中包括所述至少两个数据类型对应的至少两个测试数据;
针对任意一个测试数据集合,确定所述测试数据集合中各测试数据在所述第一语句模板中的数据位置,并根据所述数据位置,将所述测试数据集合中的测试数据填充至所述第一语句模板中,以实现将所述第一语句模板与所述测试数据集合中的测试数据进行组合处理。
在一种可能的实施方式中,所述第一操作信息包括:对所述原数据库的第一操作结果、第一执行过程信息、以及执行所述第一操作语句的第一资源消耗信息;所述第二操作信息包括:对所述目标数据库的第二操作结果、第二执行过程信息、以及执行所述第二操作语句的第二资源消耗信息。
图8为本申请实施例提供的一种数据库操作语句的测试装置的结构示意图。在图7所示实施例的基础上,如图8所示,该数据库操作语句的测试装置80还包括:执行模块74以及优化模块75,其中:
所述执行模块74,用于:
根据所述第一操作结果和所述第二操作结果,确定结果差异度;
根据所述第一执行过程信息和所述第二执行过程信息,确定执行过程差异度;
根据所述第一资源消耗信息和所述第二资源消耗信息,确定资源消耗差异度;
根据所述结果差异度、所述执行过程差异度和所述资源消耗差异度,确定所述测试结果。
在一种可能的实施方式中,所述执行模块74,具体用于:
确定所述结果差异度对应的第一权重、所述执行过程差异度对应的第二权重、以及所述资源消耗差异度对应的第三权重;
根据所述结果差异度、所述执行过程差异度、所述资源消耗差异度、所述第一权重、所述第二权重和所述第三权重,确定目标差异度;
若所述目标差异度大于或等于预设阈值,则确定所述测试结果为测试未通过,若所述目标差异度小于所述预设阈值,则确定所述测试结果为测试通过。
在一种可能的实施方式中,所述第一操作结果包括第一操作数据集,所述第二操作结果包括第二操作数据集;所述执行模块74,具体用于:
确定所述第一操作数据集中包括第一行数、以及所述第二操作数据集中包括的第二行数;
在所述第一操作数据集和所述第二操作数据集中确定差异行、以及所述差异行的差异行数;
根据所述差异行数、所述第一行数和所述第二行数,确定所述结果差异度。
在一种可能的实施方式中,所述第一执行过程信息包括多个第一执行算法、以及所述多个第一执行算法的第一执行顺序;所述第二执行过程信息包括多个第二执行算法、以及所述多个第二执行算法的第二执行顺序;所述执行模块74,具体用于:
确定所述多个第一执行算法的第一数量、所述多个第二执行算法的第二数量;
确定所述多个第一执行算法和所述第二执行算法中的重合算法、以及所述重合算法的第三数量;
据所述第一数量、所述第二数量和所述第三数量,确定算法重合度;
根据所述第一执行顺序和所述第二执行顺序,确定顺序相似度;
根据所述算法重合度和所述顺序相似度,确定所述执行过程差异度。
所述优化模块75,用于:通过预设模型对所述测试结果进行处理,得到所述目标数据库对应的优化信息;其中,所述优化信息包括如下至少一种:操作优化信息、索引优化信息、统计优化信息、冗余优化信息和缓存优化信息。
需要说明的是,应理解以上装置的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。各模块可以为单独设立的处理元件,也可以集成在上述装置的某一个芯片中实现,此外,也可以以程序代码的形式存储于上述装置的存储器中,由上述装置的某一个处理元件调用并执行以上各模块的功能。此外这些模块全部或部分可以集成在一起,也可以独立实现。这里的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。
图9为本申请实施例提供的电子设备的结构示意图。如图9所示,该电子设备可以包括:收发器91、处理器92、存储器93。
处理器92执行存储器存储的计算机执行指令,使得处理器92执行上述实施例中的方案。处理器92可以是通用处理器,包括中央处理器CPU、网络处理器(network processor,NP)等;还可以是数字信号处理器DSP、专用集成电路ASIC、现场可编程门阵列FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
存储器93通过系统总线与处理器92连接并完成相互间的通信,存储器93用于存储计算机程序指令。
收发器91可以用于获取待运行任务和待运行任务的配置信息。
系统总线可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。系统总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。收发器用于实现数据库访问装置与其他计算机(例如客户端、读写库和只读库)之间的通信。存储器可能包含随机存取存储器(randomaccess memory,RAM),也可能还包括非易失性存储器(non-volatile memory)。
本申请实施例提供的电子设备,可以是上述实施例的终端设备。
本申请实施例还提供一种运行指令的芯片,该芯片用于执行上述实施例中数据库操作语句的测试方法的技术方案。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机指令,当该计算机指令在计算机上运行时,使得计算机执行上述实施例数据库操作语句的测试方法的技术方案。
本申请实施例还提供一种计算机程序产品,该计算机程序产品包括计算机程序,其存储在计算机可读存储介质中,至少一个处理器可以从计算机可读存储介质读取计算机程序,至少一个处理器执行计算机程序时可实现上述实施例中数据库操作语句的测试方法的技术方案。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。上述模块成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行本申请各个实施例方法的部分步骤。
应理解,上述处理器可以是中央处理单元(Central Processing Unit,简称CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器,还可以为U盘、移动硬盘、只读存储器、磁盘或光盘等。
总线可以是工业标准体系结构(Industry Standard Architecture,简称ISA)总线、外部设备互连(Peripheral Component Interconnect,简称PCI)总线或扩展工业标准体系结构(Extended Industry Standard Architecture,简称EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本申请附图中的总线并不限定仅有一根总线或一种类型的总线。
上述存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。存储介质可以是通用或专用计算机能够存取的任何可用介质。
一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于专用集成电路(Application Specific Integrated Circuits,简称ASIC)中。当然,处理器和存储介质也可以作为分立组件存在于电控单元或主控设备中。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (25)
1.一种数据库操作语句的测试方法,其特征在于,包括:
确定操作原数据库的多条第一操作语句、以及操作目标数据库的多条第二操作语句,所述目标数据库为所述原数据库更新后的数据库;
根据所述第一操作语句对所述原数据库进行操作,得到第一操作信息,以及根据所述第二操作语句对所述目标数据库进行操作,得到第二操作信息;
根据所述第一操作信息和所述第二操作信息,确定对所述多条第二测试语句的测试结果。
2.根据权利要求1所述的方法,其特征在于,确定操作原数据库的多条第一操作语句、以及操作目标数据库的多条第二操作语句,包括:
获取所述原数据库对应的多条第一语句模板、所述目标数据库对应的多条第二语句模板;
根据所述原数据库和所述目标数据库中存储的数据,生成多个测试数据;
对所述多条第一语句模板和所述多个测试数据进行组合处理,得到所述多条第一操作语句;
对所述多条第二语句模板和所述多个测试数据进行组合处理,得到所述多条第二操作语句。
3.根据权利要求2所述的方法,其特征在于,对所述多条第一语句模板和所述多个测试数据进行组合处理,得到所述多条第一操作语句,包括:
确定每条第一语句模板对应的至少一个数据类型;
确定所述多个测试数据中、每个测试数据的数据类型;
根据每条第一语句模板对应的至少一个数据类型、以及每个测试数据的数据类型,在所述多个测试数据中,确定每条第一语句模板对应的多个第一测试数据;
将每条第一语句模板与所述多个第一测试数据进行组合处理,得到所述多条第一操作语句。
4.根据权利要求3所述的方法,其特征在于,针对任意一条第一语句模板;确定所述第一语句模板对应的至少一个数据类型,包括:
对所述第一语句模板进行文本识别处理,以在所述第一语句模板中识别得到至少一个待填充位;
确定每个待填充位对应的数据类型;
将所述至少一个待填充位对应的数据类型,确定为所述至少一个数据类型。
5.根据权利要求3或4所述的方法,其特征在于,所述第一语句模板对应至少两个数据类型,针对任意一条第一语句模板;将所述第一语句模板与所述多个第一测试数据进行组合处理,包括:
根据所述第一语句模板对应的至少两个数据类型、以及每个第一测试数据的数据类型,对所述多个第一测试数据进行随机组合处理,得到多个测试数据集合,所述测试数据集合中包括所述至少两个数据类型对应的至少两个测试数据;
针对任意一个测试数据集合,确定所述测试数据集合中各测试数据在所述第一语句模板中的数据位置,并根据所述数据位置,将所述测试数据集合中的测试数据填充至所述第一语句模板中,以实现将所述第一语句模板与所述测试数据集合中的测试数据进行组合处理。
6.根据权利要求1-5任一项所述的方法,其特征在于,
所述第一操作信息包括:对所述原数据库的第一操作结果、第一执行过程信息、以及执行所述第一操作语句的第一资源消耗信息;
所述第二操作信息包括:对所述目标数据库的第二操作结果、第二执行过程信息、以及执行所述第二操作语句的第二资源消耗信息。
7.根据权利要求1-6中任一项所述的方法,其特征在于,根据所述第一操作信息和所述第二操作信息,确定对所述多条第二测试语句的测试结果,包括:
根据所述第一操作结果和所述第二操作结果,确定结果差异度;
根据所述第一执行过程信息和所述第二执行过程信息,确定执行过程差异度;
根据所述第一资源消耗信息和所述第二资源消耗信息,确定资源消耗差异度;
根据所述结果差异度、所述执行过程差异度和所述资源消耗差异度,确定所述测试结果。
8.根据权利要求7所述的方法,其特征在于,根据所述结果差异度、所述执行过程差异度和所述资源消耗差异度,确定所述测试结果,包括:
确定所述结果差异度对应的第一权重、所述执行过程差异度对应的第二权重、以及所述资源消耗差异度对应的第三权重;
根据所述结果差异度、所述执行过程差异度、所述资源消耗差异度、所述第一权重、所述第二权重和所述第三权重,确定目标差异度;
若所述目标差异度大于或等于预设阈值,则确定所述测试结果为测试未通过,若所述目标差异度小于所述预设阈值,则确定所述测试结果为测试通过。
9.根据权利要求7或8所述的方法,其特征在于,所述第一操作结果包括第一操作数据集,所述第二操作结果包括第二操作数据集;
根据所述第一操作结果和所述第二操作结果,确定结果差异度,包括:
确定所述第一操作数据集中包括第一行数、以及所述第二操作数据集中包括的第二行数;
在所述第一操作数据集和所述第二操作数据集中确定差异行、以及所述差异行的差异行数;
根据所述差异行数、所述第一行数和所述第二行数,确定所述结果差异度。
10.根据权利要求7或8所述的方法,其特征在于,所述第一执行过程信息包括多个第一执行算法、以及所述多个第一执行算法的第一执行顺序;所述第二执行过程信息包括多个第二执行算法、以及所述多个第二执行算法的第二执行顺序;
根据所述第一执行过程信息和所述第二执行过程信息,确定执行过程差异度,包括:
确定所述多个第一执行算法的第一数量、所述多个第二执行算法的第二数量;
确定所述多个第一执行算法和所述第二执行算法中的重合算法、以及所述重合算法的第三数量;
根据所述第一数量、所述第二数量和所述第三数量,确定算法重合度;
根据所述第一执行顺序和所述第二执行顺序,确定顺序相似度;
根据所述算法重合度和所述顺序相似度,确定所述执行过程差异度。
11.根据权利要求7所述的方法,其特征在于,所述方法还包括:
通过预设模型对所述测试结果进行处理,得到所述目标数据库对应的优化信息;
其中,所述优化信息包括如下至少一种:操作优化信息、索引优化信息、统计优化信息、冗余优化信息和缓存优化信息。
12.一种数据库操作语句的测试装置,其特征在于,包括:
确定模块,用于确定操作原数据库的多条第一操作语句、以及操作目标数据库的多条第二操作语句,所述目标数据库为所述原数据库更新后的数据库;
操作模块,用于根据所述第一操作语句对所述原数据库进行操作,得到第一操作信息,以及根据所述第二操作语句对所述目标数据库进行操作,得到第二操作信息;
测试模块,用于根据所述第一操作信息和所述第二操作信息,确定对所述多条第二测试语句的测试结果。
13.根据权利要求12所述的装置,其特征在于,
所述确定模块,具体用于获取所述原数据库对应的多条第一语句模板、所述目标数据库对应的多条第二语句模板;
所述确定模块,具体还用于根据所述原数据库和所述目标数据库中存储的数据,生成多个测试数据;
所述确定模块,具体还用于对所述多条第一语句模板和所述多个测试数据进行组合处理,得到所述多条第一操作语句;
所述确定模块,具体还用于对所述多条第二语句模板和所述多个测试数据进行组合处理,得到所述多条第二操作语句。
14.根据权利要求13所述的装置,其特征在于,
所述确定模块,具体用于确定每条第一语句模板对应的至少一个数据类型;
所述确定模块,具体还用于确定所述多个测试数据中、每个测试数据的数据类型;
所述确定模块,具体还用于根据每条第一语句模板对应的至少一个数据类型、以及每个测试数据的数据类型,在所述多个测试数据中,确定每条第一语句模板对应的多个第一测试数据;
所述确定模块,具体还用于将每条第一语句模板与所述多个第一测试数据进行组合处理,得到所述多条第一操作语句。
15.根据权利要求14所述的装置,其特征在于,针对任意一条第一语句模板;
所述确定模块,具体用于对所述第一语句模板进行文本识别处理,以在所述第一语句模板中识别得到至少一个待填充位;
所述确定模块,具体还用于确定每个待填充位对应的数据类型;
所述确定模块,具体还用于将所述至少一个待填充位对应的数据类型,确定为所述至少一个数据类型。
16.根据权利要求14或15所述的装置,其特征在于,所述第一语句模板对应至少两个数据类型,针对任意一条第一语句模板;
所述确定模块,具体用于根据所述第一语句模板对应的至少两个数据类型、以及每个第一测试数据的数据类型,对所述多个第一测试数据进行随机组合处理,得到多个测试数据集合,所述测试数据集合中包括所述至少两个数据类型对应的至少两个测试数据;
所述确定模块,具体还用于针对任意一个测试数据集合,确定所述测试数据集合中各测试数据在所述第一语句模板中的数据位置,并根据所述数据位置,将所述测试数据集合中的测试数据填充至所述第一语句模板中,以实现将所述第一语句模板与所述测试数据集合中的测试数据进行组合处理。
17.根据权利要求12-16任一项所述的装置,其特征在于,
所述第一操作信息包括:对所述原数据库的第一操作结果、第一执行过程信息、以及执行所述第一操作语句的第一资源消耗信息;
所述第二操作信息包括:对所述目标数据库的第二操作结果、第二执行过程信息、以及执行所述第二操作语句的第二资源消耗信息。
18.根据权利要求12-17任一项所述的装置,其特征在于,所述装置还包括:
执行模块,用于根据所述第一操作结果和所述第二操作结果,确定结果差异度;
所述执行模块,具体还用于根据所述第一执行过程信息和所述第二执行过程信息,确定执行过程差异度;
所述执行模块,还用于根据所述第一资源消耗信息和所述第二资源消耗信息,确定资源消耗差异度;
所述执行模块,还用于根据所述结果差异度、所述执行过程差异度和所述资源消耗差异度,确定所述测试结果。
19.根据权利要求18所述的装置,其特征在于,
所述执行模块,具体用于确定所述结果差异度对应的第一权重、所述执行过程差异度对应的第二权重、以及所述资源消耗差异度对应的第三权重;
所述执行模块,具体还用于根据所述结果差异度、所述执行过程差异度、所述资源消耗差异度、所述第一权重、所述第二权重和所述第三权重,确定目标差异度;
所述执行模块,具体还用于若所述目标差异度大于或等于预设阈值,则确定所述测试结果为测试未通过,若所述目标差异度小于所述预设阈值,则确定所述测试结果为测试通过。
20.根据权利要求18或19所述的装置,其特征在于,所述第一操作结果包括第一操作数据集,所述第二操作结果包括第二操作数据集;
所述执行模块,具体用于确定所述第一操作数据集中包括第一行数、以及所述第二操作数据集中包括的第二行数;
所述执行模块,具体还用于在所述第一操作数据集和所述第二操作数据集中确定差异行、以及所述差异行的差异行数;
所述执行模块,具体还用于根据所述差异行数、所述第一行数和所述第二行数,确定所述结果差异度。
21.根据权利要求18或19所述的装置,其特征在于,所述第一执行过程信息包括多个第一执行算法、以及所述多个第一执行算法的第一执行顺序;所述第二执行过程信息包括多个第二执行算法、以及所述多个第二执行算法的第二执行顺序;
所述执行模块,具体用于确定所述多个第一执行算法的第一数量、所述多个第二执行算法的第二数量;
所述执行模块,具体还用于确定所述多个第一执行算法和所述第二执行算法中的重合算法、以及所述重合算法的第三数量;
所述执行模块,具体还用于根据所述第一数量、所述第二数量和所述第三数量,确定算法重合度;
所述执行模块,具体还用于根据所述第一执行顺序和所述第二执行顺序,确定顺序相似度;
所述执行模块,具体还用于根据所述算法重合度和所述顺序相似度,确定所述执行过程差异度。
22.根据权利要求18所述的装置,其特征在于,所述装置还包括:
优化模块,用于通过预设模型对所述测试结果进行处理,得到所述目标数据库对应的优化信息;
其中,所述优化信息包括如下至少一种:操作优化信息、索引优化信息、统计优化信息、冗余优化信息和缓存优化信息。
23.一种电子设备,其特征在于,包括:处理器,以及与所述处理器通信连接的存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,以实现如权利要求1-11中任一项所述的方法。
24.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1-11中任一项所述的方法。
25.一种计算机程序产品,其特征在于,包括计算机程序,该计算机程序被处理器执行时实现权利要求1-11中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311258004.5A CN117215895A (zh) | 2023-09-26 | 2023-09-26 | 数据库操作语句的测试方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311258004.5A CN117215895A (zh) | 2023-09-26 | 2023-09-26 | 数据库操作语句的测试方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117215895A true CN117215895A (zh) | 2023-12-12 |
Family
ID=89042277
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311258004.5A Pending CN117215895A (zh) | 2023-09-26 | 2023-09-26 | 数据库操作语句的测试方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117215895A (zh) |
-
2023
- 2023-09-26 CN CN202311258004.5A patent/CN117215895A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20240054128A1 (en) | Automatic database query load assessment and adaptive handling | |
CN109739824B (zh) | 日志获取方法及设备 | |
CN111400695B (zh) | 一种设备指纹生成方法、装置、设备和介质 | |
CN111258905B (zh) | 缺陷定位方法、装置和电子设备及计算机可读存储介质 | |
CN116340365A (zh) | 一种缓存数据的匹配方法、匹配装置及终端设备 | |
CN114741250A (zh) | 用于验证多级高速缓存器的系统及方法 | |
CN110928941B (zh) | 一种数据分片抽取方法及装置 | |
CN111402034A (zh) | 一种信用审核方法、装置、设备及存储介质 | |
CN117215895A (zh) | 数据库操作语句的测试方法、装置、设备及存储介质 | |
US10210103B2 (en) | Method and device for checking validity of memory access | |
CN113641708B (zh) | 规则引擎的优化方法、数据匹配方法及装置、存储介质、终端 | |
CN115470738A (zh) | 功能验证方法及装置、电子设备和存储介质 | |
CN113010550B (zh) | 结构化数据的批处理对象生成、批处理方法和装置 | |
CN112380127B (zh) | 测试用例回归方法、装置、设备和存储介质 | |
CN109686396B (zh) | 性能评估装置及性能评估方法 | |
CN114936187A (zh) | 数据文件的处理方法、装置、设备及存储介质 | |
CN111352825B (zh) | 数据接口的测试方法、装置及服务器 | |
KR101737575B1 (ko) | 자동 생성된 sql 구문 기반의 데이터 검증 방법 및 장치 | |
US11934300B2 (en) | Reducing computing power for generating test scenario files for decision models | |
CN110597656B (zh) | 一种二级缓存标记阵列的校验单错处理方法 | |
CN110928788B (zh) | 服务验证方法及设备 | |
CN111325024B (zh) | 一种风险项目统计方法 | |
US20230305940A1 (en) | Techniques for Data Log Processing, Retention, and Storage | |
US20230419103A1 (en) | Multiple stage knowledge transfer | |
US20240160696A1 (en) | Method for Automatic Detection of Pair-Wise Interaction Effects Among Large Number of Variables |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |