CN112650526A - 版本一致性的检测方法、装置、电子设备和介质 - Google Patents

版本一致性的检测方法、装置、电子设备和介质 Download PDF

Info

Publication number
CN112650526A
CN112650526A CN202011610405.9A CN202011610405A CN112650526A CN 112650526 A CN112650526 A CN 112650526A CN 202011610405 A CN202011610405 A CN 202011610405A CN 112650526 A CN112650526 A CN 112650526A
Authority
CN
China
Prior art keywords
application program
file
detection result
version
obtaining
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.)
Granted
Application number
CN202011610405.9A
Other languages
English (en)
Other versions
CN112650526B (zh
Inventor
谢伟
潘葛桐
张洋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Industrial and Commercial Bank of China Ltd ICBC
Original Assignee
Industrial and Commercial Bank of China Ltd ICBC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Industrial and Commercial Bank of China Ltd ICBC filed Critical Industrial and Commercial Bank of China Ltd ICBC
Priority to CN202011610405.9A priority Critical patent/CN112650526B/zh
Publication of CN112650526A publication Critical patent/CN112650526A/zh
Application granted granted Critical
Publication of CN112650526B publication Critical patent/CN112650526B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

本公开提供了一种版本一致性的检测方法,包括:从应用程序的版本库中获取第一应用程序文件,该第一应用程序文件用于表征应用程序的应用程序版本,连接应用程序的数据库,并基于逆向工程生成第二应用程序文件,该第二应用程序文件用于表征应用程序的数据库版本,以及基于第一应用程序文件与第二应用程序文件的比对,获得应用程序版本与数据库版本一致性的检测结果。本公开还提供了一种版本一致性的检测装置,电子设备以及计算机可读存储介质。本公开提供的版本一致性的检测方法和版本一致性的检测装置例如可以应用于金融领域或其他领域中。

Description

版本一致性的检测方法、装置、电子设备和介质
技术领域
本公开涉及计算机软件领域,特别是涉及一种版本一致性的检测方法、装置、电子设备和介质。
背景技术
目前,应用程序的开发人员提交的应用程序版本和数据库管理人员(DatabaseAdministrator,DBA)提交的数据库版本是分别进行独立管理和发布的。任何一方人员对提交版本的改动,在对方人员没有同步更新的情况下,都会导致两个版本的一致性出现问题。
但是,相关技术中缺少对这两个版本的一致性进行及时检测的解决方案,所以即使两个版本存在不一致的问题,也难以在版本构建和单元测试阶段发现,通常要在测试环境或者生产环境部署之后才能确定。由于版本一致性是生产得以顺利进行的重要保障,如果在集成测试阶段未能实现覆盖测试的情况下,还将会直接引发生产问题。
发明内容
有鉴于此,为了至少部分地克服相关技术中存在的上述技术问题,并因此实现应用程序版本和数据库版本的版本一致性的自动检测,以便在任何一方人员对提交版本有改动,而对方人员没有同步更新的情况下,可以及时地发现两个版本出现不一致性的问题,并及时停止后续的版本构建工作,方便应用程序的开发人员对应用程序版本做出相应地检查,必要时做出相应地整改,有利于保证测试、生产环境的稳定运行,本公开提供了一种版本一致性的检测方法、装置、电子设备以及介质。
为了实现上述目标,本公开的一个方面提供了一种版本一致性的检测方法,可以包括:从应用程序的版本库中获取第一应用程序文件,其中,上述第一应用程序文件用于表征上述应用程序的应用程序版本。连接上述应用程序的数据库,并基于逆向工程生成第二应用程序文件,其中,上述第二应用程序文件用于表征上述应用程序的数据库版本,以及基于上述第一应用程序文件与上述第二应用程序文件的比对,获得上述应用程序版本与上述数据库版本一致性的检测结果。
根据本公开的实施例,上述连接所述应用程序的数据库,并基于逆向工程生成第二应用程序文件可以包括:调用文件生成插件,其中,上述文件生成插件的配置文件包括上述数据库的表名。基于上述数据库的表名,连接上述应用程序的数据库,以及对上述数据库的表结构进行解析,并基于逆向工程生成第二应用程序文件。
根据本公开的实施例,上述基于所述第一应用程序文件与所述第二应用程序文件的比对,获得所述应用程序版本与所述数据库版本一致性的检测结果可以包括:基于上述第一应用程序文件的表结构与上述第二应用程序文件的表结构的解析,获得表结构一致性的第一检测结果。基于上述第一应用程序文件的表字段与上述第二应用程序文件的表字段的解析,获得表字段一致性的第二检测结果,以及基于上述第一检测结果和上述第二检测结果,获得上述应用程序版本与上述数据库版本一致性的检测结果。
根据本公开的实施例,上述基于上述第一检测结果和上述第二检测结果,获得上述应用程序版本与上述数据库版本一致性的检测结果可以包括:在上述第一检测结果表明表结构不一致的情况下,获得上述应用程序版本与上述数据库版本不一致的检测结果,和/或在上述第二检测结果表明表字段不一致的情况下,获得上述应用程序版本与上述数据库版本不一致的检测结果。
根据本公开的实施例,上述基于上述第一应用程序文件的表结构与上述第二应用程序文件的表结构的比对,获得表结构一致性的第一检测结果可以包括:基于上述第一应用程序文件中的映射文件的解析,获得第一表结构。基于上述第二应用程序文件中的映射文件的解析,获得第二表结构。基于上述第一表结构和上述第二表结构的比对,检测上述第二表结构是否有新增或者删除,以及在存在上述新增或者删除的情况下,获得表结构不一致的第一检测结果。
根据本公开的实施例,上述基于上述第一应用程序文件的表字段与上述第二应用程序文件的表字段的比对,获得表字段一致性的第二检测结果可以包括:基于上述第一应用程序文件中的映射文件的解析,获得第一表字段。基于上述第二应用程序文件中的映射文件的解析,获得第二表字段。基于上述第一表字段和上述第二表字段的比对,检测上述第二表字段是否有修改,以及在存在上述修改的情况下,获得表字段不一致的第二检测结果。
根据本公开的实施例,上述基于上述第一应用程序文件的表字段与上述第二应用程序文件的表字段的比对,获得表字段一致性的第二检测结果可以包括:基于上述第一应用程序文件中的类定义文件的解析,获得第三表字段。基于上述第二应用程序文件中的类定义文件的解析,获得第四表字段。基于上述第三表字段和上述第四表字段的比对,检测上述第三表字段与上述第四表字段的一致性,以及在上述第三表字段与上述第四表字段不一致的情况下,获得表字段不一致的第二检测结果。
根据本公开的实施例,上述方法还可以包括:在上述第三表字段与上述第四表字段一致的情况下,基于上述第三表字段,获得与上述第三表字段对应的第一输入参数和第一输出参数。基于上述第四表字段,获得与上述第四表字段对应的第二输入参数和第二输出参数。基于上述第一输入参数和上述第二输入参数的比对,获得输入参数一致性的第三检测结果。基于上述第一输出参数和上述第二输出参数的比对,获得输出参数一致性的第四检测结果,以及基于上述第三检测结果和上述第四检测结果,获得表字段一致性的第二检测结果。
根据本公开的实施例,上述基于上述第三检测结果和上述第四检测结果,获得表字段一致性的第二检测结果可以包括:在上述第三检测结果表明输入参数不一致的情况下,获得上述表字段不一致的检测结果,和/或在上述第四检测结果表明输出参数不一致的情况下,获得上述表字段不一致的检测结果。
根据本公开的实施例,上述基于上述第一应用程序文件的表字段与上述第二应用程序文件的表字段的比对,获得表字段一致性的第二检测结果可以包括:基于上述第一应用程序文件中的接口定义文件的解析,获得第五表字段。基于上述第二应用程序文件中的接口定义文件的解析,获得第六表字段。基于上述第五表字段和上述第六表字段的比对,检测上述第五表字段与上述第六表字段的一致性,以及在上述第五表字段与上述第六表字段不一致的情况下,获得表字段不一致的第二检测结果。
根据本公开的实施例,上述方法还可以包括:在上述应用程序版本与上述数据库版本不一致的情况下,停止上述应用程序的版本构建,以及生成并发送告警信息。
为了实现上述目标,本公开的另一个方面提供了一种版本一致性的检测装置,可以包括:第一应用程序文件获得模块,用于从应用程序的版本库中获取第一应用程序文件,其中,上述第一应用程序文件用于表征上述应用程序的应用程序版本。第二应用程序文件生成模块,用于连接上述应用程序的数据库,并基于逆向工程生成第二应用程序文件,其中,上述第二应用程序文件用于表征上述应用程序的数据库版本,以及检测结果获得模块,用于基于上述第一应用程序文件与上述第二应用程序文件的比对,获得上述应用程序版本与上述数据库版本一致性的检测结果。
根据本公开的实施例,上述第二应用程序文件生成模块可以包括:文件生成插件调用子模块,用于调用文件生成插件,其中,上述文件生成插件的配置文件包括上述数据库的表名。数据库连接子模块,用于基于上述数据库的表名,连接上述应用程序的数据库,以及第二应用程序文件生成子模块,用于对上述数据库的表结构进行解析,并基于逆向工程生成第二应用程序文件。
根据本公开的实施例,上述检测结果获得模块可以包括:表结构检测结果获得子模块,用于基于上述第一应用程序文件的表结构与上述第二应用程序文件的表结构的比对,获得表结构一致性的第一检测结果。表字段检测结果获得子模块,用于基于上述第一应用程序文件的表字段与上述第二应用程序文件的表字段的比对,获得表字段一致性的第二检测结果,以及版本检测结果获得子模块,用于基于上述第一检测结果和上述第二检测结果,获得上述应用程序版本与上述数据库版本一致性的检测结果。
根据本公开的实施例,上述版本检测结果获得子模块可以包括:第一检测结果获取单元,用于在上述第一检测结果表明表结构不一致的情况下,获得上述程序版本与上述数据库版本不一致的检测结果,和/或第二检测结果获取单元,用于在上述第二检测结果表明表字段不一致的情况下,获得上述程序版本与上述数据库版本不一致的检测结果。
根据本公开的实施例,上述表结构检测结果获得子模块可以包括:第一表结构获取单元,用于基于上述第一应用程序文件中的映射文件的解析,获得第一表结构。第二表结构获取单元,用于基于上述第二应用程序文件中的映射文件的解析,获得第二表结构。表结构检测单元,用于基于上述第一表结构和上述第二表结构的比对,检测上述第二表结构是否有新增或者删除,以及表结构检测结果获得单元,用于在存在上述新增或者删除的情况下,获得表结构不一致的第一检测结果。
根据本公开的实施例,上述表字段检测结果获得子模块可以包括:第一表字段获取单元,用于基于上述第一应用程序文件中的映射文件的解析,获得第一表字段。第二表字段获取单元,用于基于上述第二应用程序文件中的映射文件的解析,获得第二表字段。第一表字段检测单元,用于基于上述第一表字段和上述第二表字段的比对,检测上述第二表字段是否有修改,以及第一表字段检测结果获得单元,用于在存在上述修改的情况下,获得表字段不一致的第二检测结果。
根据本公开的实施例,上述表字段检测结果获得子模块可以包括:第三表字段获取单元,用于基于上述第一应用程序文件中的类定义文件的解析,获得第三表字段。第四表字段获取单元,用于基于上述第二应用程序文件中的类定义文件的解析,获得第四表字段。第二表字段检测单元,用于基于上述第三表字段和上述第四表字段的比对,检测上述第三表字段与上述第四表字段的一致性,以及第二表字段检测结果获得单元,用于在上述第三表字段与上述第四表字段不一致的情况下,获得表字段不一致的第二检测结果。
根据本公开的实施例,上述装置还可以包括:第一输入输出参数获得单元,用于在上述第三表字段与上述第四表字段一致的情况下,基于上述第三表字段,获得与上述第三表字段对应的第一输入参数和第一输出参数。第二输入输出参数获得单元,用于基于上述第四表字段,获得与上述第四表字段对应的第二输入参数和第二输出参数。输入参数检测结果获得单元,用于基于上述第一输入参数和上述第二输入参数的比对,获得输入参数一致性的第三检测结果。输出参数检测结果获得单元,用于基于上述第一输出参数和上述第二输出参数的比对,获得输出参数一致性的第四检测结果,以及第三表字段检测结果获得单元,用于基于上述第三检测结果和上述第四检测结果,获得表字段一致性的第二检测结果。
根据本公开的实施例,上述第三表字段检测结果获得单元可以包括:第一表字段检测结果获得子单元,用于在上述第三检测结果表明输入参数不一致的情况下,获得上述表字段不一致的检测结果,和/或第二表字段检测结果获得子单元,用于在上述第四检测结果表明输出参数不一致的情况下,获得上述表字段不一致的检测结果。
根据本公开的实施例,上述表字段检测结果获得子模块可以包括:第五表字段获取单元,用于基于上述第一应用程序文件中的接口定义文件的解析,获得第五表字段。第六表字段获取单元,用于基于上述第二应用程序文件中的接口定义文件的解析,获得第六表字段。第三表字段检测单元,用于基于上述第五表字段和上述第六表字段的比对,检测上述第五表字段与上述第六表字段的一致性,以及第四表字段检测结果获得单元,用于在上述第五表字段与上述第六表字段不一致的情况下,获得表字段不一致的第二检测结果。
根据本公开的实施例,上述装置还可以包括:版本构建停止模块,用于在上述应用程序版本与上述数据库版本不一致的情况下,停止上述应用程序的版本构建,以及告警信息发送模块,用于生成并发送告警信息。
为了实现上述目标,本公开的另一方面提供了一种电子设备,包括:一个或多个处理器,存储器,用于存储一个或多个程序,其中,当上述一个或多个程序被上述一个或多个处理器执行时,使得上述一个或多个处理器实现如上所述的版本一致性的检测方法。
为了实现上述目标,本公开的另一方面提供了一种计算机可读存储介质,存储有计算机可执行指令,上述指令在被执行时用于实现如上所述的版本一致性的检测方法。
为实现上述目标,本公开的另一方面提供了一种计算机程序,上述计算机程序包括计算机可执行指令,上述指令在被执行时用于实现如上所述的版本一致性的检测方法。
与相关技术提供的解决方案相比,本公开提供的版本一致性的检测方法,通过连接应用程序的数据库,可以基于逆向工程生成用于表征应用程序的数据库版本的第二应用程序文件,将其与从应用程序的版本库中获取的用于表征应用程序的应用程序版本的第一应用程序文件进行比对,获得应用程序版本与数据库版本一致性的检测结果。
通过本公开提供的解决方案,以自动化的检测方式可以实现应用程序版本与数据库版本的一致性检查,在任何一方人员对提交版本有改动,而对方人员没有同步更新的情况下,也可以及时地发现两个版本出现不一致性的问题,并及时停止后续的版本构建工作,方便应用程序的开发人员对应用程序版本做出相应地检查,必要时做出相应地整改,有利于保证测试、生产环境的稳定运行,并至少可以避免在环境部署之后,通过人工测试、或生产的真实交易的异常结果,才发现应用程序版本与数据库版本不一致的情况,提高版本质量,提前排除生产隐患。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述以及其他目的、特征和优点将更为清楚,在附图中:
图1示意性示出了适用于本公开实施例的可以应用版本一致性的检测方法和装置的系统架构;
图2示意性示出了适用于本公开实施例的可以应用版本一致性的检测方法和装置的应用场景;
图3示意性示出了根据本公开实施例的版本一致性的检测方法的流程图;
图4示意性示出了根据本公开另一实施例的版本一致性的检测方法的流程图;
图5示意性示出了根据本公开另一实施例的版本一致性的检测方法的流程图;
图6示意性示出了根据本公开实施例的版本一致性的检测装置的框图;
图7示意性示出了根据本公开另一实施例的版本一致性的检测装置的框图;
图8示意性示出了根据本公开实施例的适于实现上文描述的版本一致性的检测方法的计算机可读存储介质产品的示意图;以及
图9示意性示出了根据本公开实施例的适于实现上文描述的版本一致性的检测方法的电子设备的框图。
在附图中,相同或对应的标号表示相同或对应的部分。
应该注意的是,附图并未按比例绘制,并且出于说明目的,在整个附图中类似结构或功能的元素通常用类似的附图标记来表示。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了上述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程版本一致性的检测装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些方框图和/或流程图中所说明的功能/操作的装置。本公开的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。另外,本公开的技术可以采取存储有指令的计算机可读存储介质上的计算机程序产品的形式,该计算机程序产品可供指令执行系统使用或者结合指令执行系统使用。
需要说明的是,本公开提供的版本一致性的检测方法和版本一致性的检测装置可用于金融领域中,也可用于除金融领域之外的任意领域中。因此,对本公开所提供的版本一致性的检测方法和版本一致性的检测装置的应用领域不做限定。
在现有的涉及到版本提交的应用场景中,应用程序的开发人员提交的应用程序版本和数据库管理人员提交的数据库版本,是分别进行独立管理和发布的,任何一方人员对提交版本的改动,在对方人员没有做同步更新的情况下,都会导致两个版本的一致性出现问题。但是,相关技术中缺少对这两个版本的一致性进行及时检测的解决方案,所以即使两个版本存在不一致的问题,在版本构建和单元测试阶段也难以发现,通常要在测试环境或者生产环境部署之后才能确定。由于版本一致性是生产得以顺利进行的重要保障,如果在集成测试阶段未能实现覆盖测试的情况下,还将会直接引发生产问题。
有鉴于此,本公开提供了一种版本一致性的检测方法和装置,该方法可以包括应用程序文件的获取阶段和版本一致性的检测阶段。具体实施时,在应用程序文件的获取阶段,需要从应用程序的版本库中获取第一应用程序文件,该第一应用程序文件用于表征应用程序的应用程序版本,还需要连接应用程序的数据库,以基于逆向工程生成第二应用程序文件,该第二应用程序文件用于表征应用程序的数据库版本。在版本一致性的检测阶段,将获取到的第一应用程序文件与第二应用程序文件进行比对,以获得应用程序版本与数据库版本是否一致的检测结果。可以及时地发现两个版本出现不一致性的问题,并及时停止后续的版本构建工作,方便应用程序的开发人员对应用程序版本做出相应地检查,必要时做出相应地整改,有利于保证测试、生产环境的稳定运行。
图1示意性示出了适用于本公开实施例的可以应用版本一致性的检测方法和装置的系统架构100。需要注意的是,图1所示仅为可应用本公开实施例的系统架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他系统架构。
如图1所示,该系统架构100可以包括应用程序服务器101、应用程序版本库102、数据库服务器103、应用程序数据库104、网络105以及服务器106。网络105用以在应用程序服务器101、数据库服务器103和服务器106之间提供通信链路的介质。网络105可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
应用程序服务器101可以是提供各种与应用程序相关服务的服务器,包括但不限于连接管理、状态和会话管理、业务逻辑记载和数据库连接。在本公开的实施例中,应用程序服务器101提供了业务代码存放和运行的环境,可使得生产系统得以快速且简便的开发和部署,因此应用程序服务器101不仅包括应用程序服务器本身,还包括其开发环境。应用程序服务器101还可以提供应用程序接口(Application Programming Interface,API),使得应用开发人员可以通过API访问应用程序,而无需访问源码或理解内部工作机制的细节。例如,应用开发人员可以通过API向应用程序版本库102提交程序版本的文件。
数据库服务器103由运行在局域网中的一台或多台计算机和数据库管理软件共同构成,可以提供各种与数据库相关服务的服务器,包括但不限于查询、更新、事务管理、索引、高速缓存、查询优化、安全以及利用公用的数据存取语言实现多用户的存取控制。数据库管理员可以向应用程序数据库104提交数据库版本的文件,一般包括描述数据库模式定义语言(Data Definition Language,DDL),数据操纵语言(Data Manipulation Language,DML)的sql文件,以及连接数据库,执行DDL、DML操作的脚本文件,如批处理脚本(bat)、sh文件。在本公开中,应用程序的数据库可以是采用关系模型来组织数据的关系型数据库,例如SQL、Oracle,MySQL。
服务器106可以是提供各种服务的服务器。例如,对用于表征数据库版本的应用程序文件和用于表征应用程序版本的应用程序文件进行一致性检测提供服务的后台管理服务器(仅为示例)。后台管理服务器可以自动连接应用程序数据库104,对数据库的表结构进行解析,生成用于表征数据库版本的应用程序文件,将其与应用开发人员向应用程序版本库102提交的用于表征数据库版本的应用程序文件进行比对,以检测数据库版本和应用程序版本的一致性,并将一致性的检测结果反馈给应用开发人员进行检查和整改。
需要说明的是,本公开提供的版本一致性的检测方法一般可以由服务器106执行。相应地,本公开提供的版本一致性的检测装置一般可以设置于服务器106中。本公开提供的版本一致性的检测方法也可以由不同于服务器106且能够与应用程序服务器101、数据库服务器103和/或服务器106通信的其他服务器执行。相应地,本公开提供的版本一致性的检测装置也可以设置于不同于服务器106且能够与应用程序服务器101、数据库服务器103和/或服务器106通信的其他服务器中,本公开对此不做限定。图1中的应用程序服务器、应用程序版本库、网络、数据库服务器、应用程序数据库以及服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的应用程序服务器、应用程序版本库、网络、数据库服务器、应用程序数据库以及服务器。
图2示意性示出了适用于本公开实施例的可以应用版本一致性的检测方法和装置的应用场景。需要注意的是,图2所示仅为应用本公开实施例的应用场景的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。
如图2所示,本公开实施例可以应用在自动化构建部署的流水线的应用场景200中。该应用场景200包括代码获取(S210),静态扫描(S220),编译检查(S230),单元测试(S240),版本构建(S260),版本部署(S270),冒烟测试(S280)以及接口测试(S290)。软件版本构建发布流程是软件程序开发结束,进行正式版本构建发布的流程。目的是规范正式版本构建发布的过程,确保软件版本与程序的一致性,便于软件正式进入系统测试阶段,通过测试后就可以对外正式发布。
为了确保每个环节处理源代码版本的一致性,杜绝因人为因素或非人为因素导致代码被篡改情况发生,最终保证编译后运行的目标程序与源代码版本的一致性,根据本公开的实施例,在构建交付流水线中可增加检查环节,具体实施时,在单元测试(S240)环节之后,版本构建(S260)之前,增加一致性检查(S250)环节,实现版本一致性的检查动作,若一致性未通过则版本不会继续构建、交付,保证测试、生产环境的稳定运行,并及时发现问题,通知开发人员检查确认。
应该理解,图2中的自动化构建部署的流水线中各环节仅仅是示意性的。根据实现需要,可以部署任意数目的环节,本公开不做限定。
图3示意性示出了根据本公开实施例的版本一致性的检测方法的流程图。如图3所示,该版本一致性的检测方法300可以包括操作S310~操作S330。
在操作S310,从应用程序的版本库中获取第一应用程序文件。
在本公开中,第一应用程序文件用于表征应用程序的应用程序版本,其保存在版本库中,可以是应用程序的开发人员提供的应用程序代码。根据本公开的实施例,需要比较的文件是应用程序文件,包括用于定义数据库增、删、改、查操作的映射(Mapper)文件,以及类定义和数据库操作接口的定义文件。
第一应用程序文件可以包括但不限于映射文件、类定义以及接口定义文件这三类文件。其中映射文件可以是可扩展标记语言(Extensible Markup Language,xml)格式的文件,用于定义数据库增删改查操作,其可以用来标记数据,定义数据类型,允许用户对自己标记语言进行定义。类定义以及接口定义文件可以是Java文件,例如可以是接口定义Java文件,也可以是表对象类定义Java文件。
在操作S320,连接应用程序的数据库,并基于逆向工程生成第二应用程序文件。
在本公开中,与第一应用程序文件不同的是,第二应用程序文件用于表征应用程序的数据库版本,数据库版本是DBA提交的版本,一般包括DDL,DML的sql文件,以及连接数据库执行DDL、DML操作的脚本文件,如bat、sh文件。应用程序的数据库可以是采用关系模型来组织数据的关系型数据库,例如SQL、Oracle,MySQL。
在本公开中,与第一应用程序文件相同的是,第二应用程序文件也可以包括但不限于映射(Mapper)文件、类定义以及接口定义文件这三类文件。映射文件可以是可扩展标记语言(Extensible Markup Language,xml)格式的文件,其可以用来标记数据,定义数据类型,允许用户对自己标记语言进行定义。类定义、接口定义文件可以是Java文件,例如可以是接口定义Java文件,也可以是表对象类定义Java文件。第二应用程序文件可以是基于版本库里的应用程序工程,连接DBA提交版本所用的数据库,利用逆向工程实时生成的应用程序文件。
在操作S330,基于第一应用程序文件与第二应用程序文件的比对,获得应用程序版本与数据库版本一致性的检测结果。
第一应用程序文件由应用程序的开发人员利用逆向工程而生成,不一定会随着DBA修改表结构,及时地更新。如果没有及时更新,就会与“数据库版本”不一致。为了获得应用程序版本与数据库版本一致性的检测结果,根据第一应用程序文件和第二应用程序文件包括的三类文件中的不同文件内容,提供了以下几种可选的实施例。
作为一种可选的实施例,可以比对第一应用程序文件中的Mapper文件和第二应用程序文件中的Mapper文件,以获得应用程序版本与数据库版本一致性的检测结果。作为另一种可选的实施例,也可以比对第一应用程序文件中的类定义文件和第二应用程序文件中的类定义文件,并获得应用程序版本与数据库版本一致性的检测结果。作为再一种可选的实施例,还可以既比对第一应用程序文件中的接口定义文件和第二应用程序文件中的接口定义文件,又比对第一应用程序文件中的映射文件和第二应用程序文件中的映射文件,以获得应用程序版本与数据库版本一致性的检测结果。
本公开的实施例,通过连接用于提交数据库版本的数据库,可以基于逆向工程生成用于表征应用程序的数据库版本的第二应用程序文件,将其与从应用程序的版本库中获取的用于表征应用程序的应用程序版本的第一应用程序文件进行比对,获得应用程序版本与数据库版本一致性的检测结果,通过自动化的检测方式可以实现应用程序版本与数据库版本的一致性检查,在任何一方人员对提交版本有改动,而对方人员没有同步更新的情况下,也可以及时地发现两个版本出现不一致性的问题,并及时停止后续的版本构建工作,方便应用程序的开发人员对应用程序版本做出相应地检查,必要时做出相应地整改,有利于保证测试、生产环境的稳定运行,并至少可以避免在环境部署之后,通过人工测试或生产的真实交易的异常结果,才发现应用程序版本与数据库版本不一致的情况,提高版本质量,提前排除生产隐患。
作为一种可选的实施例,前述操作S320(连接应用程序的数据库,并基于逆向工程生成第二应用程序文件)可以包括:调用文件生成插件,该文件生成插件的配置文件包括数据库的表名,基于数据库的表名,连接应用程序的数据库,以及对数据库的表结构进行解析,以基于逆向工程生成第二应用程序文件。
根据本公开的实施例,文件生成插件可以是Mybatis-generator,即Mybatis提供的一种基于逆向工程的代码和配置自动化生成插件,可以针对数据库表自动生成Mybatis执行所需代码。Mybatis是一种基于Java的、开源的持久层框架,考虑到企业应用中数据很重要(各种订单数据、客户数据、库存数据之类的),比应用程序本身更重要,所以需要把数据持久化到数据库中,以便查询统计分析。具体实施时,通过文件生成插件这一自动化检查工具,利用分布式版本控制系统(GIT)上的应用程序工程和Mybatis插件,连接DBA发送“数据库版本”所使用的数据库,逆向生成第二应用程序文件,即Mapper文件、接口定义以及类定义文件。
具体实施时,在文件生成插件Mybatis-generator自身的配置文件generatorConfig.Xml中会明确指定逆向工程要分析的数据表。Mybatis-generator可以根据自身配置文件中设置的连接数据库参数,即数据源信息、表名,自动连接应用程序的数据库,对要分析的数据表的表结构进行解析,生成如前所述包括映射文件、接口定义Java文件以及表对象的类定义Java文件的第二应用程序文件,其中映射文件即Mybatis Mapper映射xml文件。需要说明的是,可以指定一个数据库表,也可以同时指定多个数据库表,配置文件还可以包含生成的文件所要存储的目标路径,与第一应用程序文件所要存储的工程目录不同,生成的第二应用程序文件存储在临时目录中。
本公开的实施例,通过文件生成插件的调用,可以自动生成第二应用程序文件,避免手动书写映射文件,其可以配置和映射原生信息,提高版本一致性检测的自动化程度,提高检测效率。
本公开提供的一致性检测方法采用的比较策略如下所述:一旦有表结构、表字段类型的调整,Mybatis-generator自动生成的3类文件(Mybatis Mapper映射xml文件,Mapper接口定义Java文件、表对象类定义Java文件)的内容也会相应发生变化,其中xml映射文件和类定义Java文件可用来检查应用开发人员交付的代码、配置文件版本,是否与数据库管理员交付的数据库版本保持一致。Mapper映射文件是xml格式的配置文件,由一系列具有层级关系的元素组成。并且通过元素的属性,这些元素之间具有关联关系。Mapper映射文件中定义了操作数据库的SQL,操作数据库表的SQL语句保存在Mapper映射文件中。Mapper映射文件分别提供select,insert,update以及delete的xml元素,分别对应数据库的查询、插入、修改以及删除操作。
作为一种可选的实施例,前述操作S330(基于第一应用程序文件与第二应用程序文件的比对,获得应用程序版本与数据库版本一致性的检测结果)可以包括:基于第一应用程序文件的表结构与第二应用程序文件的表结构的比对,获得表结构一致性的第一检测结果,基于第一应用程序文件的表字段与第二应用程序文件的表字段的比对,获得表字段一致性的第二检测结果,以及基于第一检测结果和第二检测结果,获得应用程序版本与数据库版本一致性的检测结果。
根据本公开的实施例,考虑到应用程序的文件内容的变化体现在表结构、表字段类型的调整上,因此本公开以表结构和表字段为比对指标,来比对第一应用程序文件与第二应用程序文件。表结构是数据表结构,用于描述一个表的框架,定义数据表文件名、确定数据表包含哪些表字段、各表字段的字段名、字段类型及长度。
具体实施时,可以分别获得第一应用程序文件的表结构与第二应用程序文件的表结构,比对二者的表结构一致性,也可以获得第一应用程序文件的表字段与第二应用程序文件的表字段,比对二者的表字段一致性,然后获得程序版本与数据库版本一致性的检测结果。通过表结构和表字段比对检测版本一致性的解决方案,可以方便快捷的获得检测结果,效率高。
作为一种可选的实施例,基于第一检测结果和第二检测结果,获得应用程序版本与数据库版本一致性的检测结果包括:在第一检测结果表明表结构不一致的情况下,获得应用程序版本与数据库版本不一致的检测结果,和/或在第二检测结果表明表字段不一致的情况下,获得应用程序版本与数据库版本不一致的检测结果。
具体实施时,若第一应用程序文件的表结构与第二应用程序文件的表结构不一致,则表明应用程序版本与数据库版本不一致。若第一应用程序文件的表字段与第二应用程序文件的表字段不一致,则表明应用程序版本与数据库版本不一致。若第一应用程序文件的表结构与第二应用程序文件的表结构不一致、且第一应用程序文件的表字段与第二应用程序文件的表字段不一致,则表明应用程序版本与数据库版本不一致。
通过本公开的实施例,根据第一应用程序文件和第二应用程序文件的表结构和/或表字段的比对,获得版本一致性的检测结果,可以通过比对快速定位不一致的表结构和/或不一致的表字段,有利于应用开发人员的快速检查和整改。
作为一种可选的实施例,基于第一应用程序文件的表结构与第二应用程序文件的表结构的比对,获得表结构一致性的第一检测结果包括:基于第一应用程序文件中的映射文件的解析,获得第一表结构,基于第二应用程序文件中的映射文件的解析,获得第二表结构,基于第一表结构和第二表结构的比对,检测第二表结构是否有新增或者删除,以及在存在新增或者删除的情况下,获得表结构不一致的第一检测结果。
根据本公开的实施例,在解析第二应用程序文件中的映射文件之前,需要先定位映射文件的位置。具体实施时,可以从工程配置文件里定义的固定目录下定位,例如在基于Springboot框架的工程内,可以从application.properties文件中的配置识别。也可以通过参数化的方式在一致性检查工具执行时直接指定文件位置,本公开对此不做限定。
具体实施时,可以比对表结构中各字段是否有新增和删除的情况。以下将以数据库表名为TableA为例说明。表1中所示的表结构对应上述的第一表结构,表2中所示的表结构对应上述的第二表结构。
通过比对表1和表2中的数据库表结构可知,第二表结构相对于第一表结构有新增,则获得的第一检测结果为表结构不一致。
表1
字段名称 数据类型 长度 是否允许为空 主键
field1 int 11 Y
field2 varchar 30 Y
field3 int 11 Y
表2
字段名称 数据类型 长度 是否允许为空 主键
field1 int 11 Y
field2 varchar 50 Y
field3 tinyint 11 Y
fieldnew bit 1 Y Y
作为一种可选的实施例,基于第一应用程序文件的表字段与第二应用程序文件的表字段的比对,获得表字段一致性的第二检测结果可以包括:基于第一应用程序文件中的映射文件的解析,获得第一表字段,基于第二应用程序文件中的映射文件的解析,获得第二表字段,基于第一表字段和第二表字段的比对,检测第二表字段是否有修改,以及在存在修改的情况下,获得表字段不一致的第二检测结果。
根据本公开的实施例,通过配置文件或工具输入参数,定位xml格式的映射文件。解析xml格式的映射文件中的resultMap节点,根据列(column)字段比较字段名称(id)子节点是否有新增或删减,如果有新增或删减,则说明代码提交和数据库版本不一致。根据列(column)字段比较字段名称(id)相同的子节点,判断数据类型(jdbcType)属性是否有不一致,如果有,说明代码提交和数据库版本不一致。具体实施时,表字段的修改体现在ResultMap节点上字段名称这一子节点(id)的新增或删除。例如表2中所示的“字段名称”有新增“fieldnew”,“数据类型”有新增“bit”。表字段的修改也体现在ResultMap的子节点的数据类型属性发生变化。例如表2中所示的field3的“数据类型”由“int”变成“tinyint”。表字段的修改还体现在Mapper根节点下会有子节点内容的变化。变化的内容都是基于表字段有增减,或者表字段数据类型有修改而发生的变化,同前所述,此处不再赘述。本公开提供的通过比较表字段,获得版本一致性的检测结果的解决方案,使得检测过程方便快捷,提高检测效率。
在本公开中,类定义文件为Java文件,该类定义文件可以包括表的主键对应的Java类以及包含全量表字段的Java类,名称格式为[表名]Key.Java和[表名].Java,由于在Mybatis-generator自身的配置文件generatorConfig.Xml中已明确指定该类文件的类路径,因此可以通过解析generatorConfig.Xml的方式来定位类定义Java文件。
根据本公开的实施例,类定义文件的文件内容变化体现在成员变量的增减、set/get方法的输入、输出参数的变化,分别对应着数据表字段的增减,以及字段数据类型的变化。其中set方法用于为对象中的属性赋值,get方法用于从对象中获取属性值。
作为一种可选的实施例,基于第一应用程序文件的表字段与第二应用程序文件的表字段的比对,获得表字段一致性的第二检测结果可以包括:基于第一应用程序文件中的类定义文件的解析,获得第三表字段,基于第二应用程序文件中的类定义文件的解析,获得第四表字段,基于第三表字段和第四表字段的比对,检测第三表字段与第四表字段的一致性,以及在第三表字段与第四表字段不一致的情况下,获得表字段不一致的第二检测结果。
作为一种可选的实施例,方法还可以包括:在第三表字段与第四表字段一致的情况下,基于第三表字段,获得与第三表字段对应的第一输入参数和第一输出参数,基于第四表字段,获得与第四表字段对应的第二输入参数和第二输出参数,基于第一输入参数和第二输入参数的比对,获得输入参数一致性的第三检测结果,基于第一输出参数和第二输出参数的比对,获得输出参数一致性的第四检测结果,以及基于第三检测结果和第四检测结果,获得表字段一致性的第二检测结果。
具体实施时,解析配置文件,定位类定义文件目录及文件名,解析Java文件,利用正则表达式匹配得到该类文件内的所有成员变量,即数据库表的各个表字段,根据成员变量的名称,利用正则表达式匹配得到这些字段的get/set方法,从而获取到输入参数和输出参数,比对成员变量的差异,如果有差异,说明表字段有变化(包括表的主键有变化),代码提交和数据库版本不一致,比对set/get方法的输入输出参数,如果对于相同字段的输入输出参数,参数类型有差异,则说明表字段有变化,代码提交和数据库版本不一致。
作为一种可选的实施例,基于第三检测结果和第四检测结果,获得表字段一致性的第二检测结果可包括:在第三检测结果表明输入参数不一致的情况下,获得表字段不一致的检测结果,和/或在第四检测结果表明输出参数不一致的情况下,获得表字段不一致的检测结果。
具体实施时,若输入参数不一致,则表明表字段不一致,即程序版本与数据库版本不一致。若输出参数不一致,则表明表字段不一致,即程序版本与数据库版本不一致。若输入参数不一致、且输出参数不一致,则表明表字段不一致,即程序版本与数据库版本不一致。
作为一种可选的实施例,基于第一应用程序文件的表字段与第二应用程序文件的表字段的比对,获得表字段一致性的第二检测结果可以包括:基于第一应用程序文件中的接口定义文件的解析,获得第五表字段,基于第二应用程序文件中的接口定义文件的解析,获得第六表字段,基于第五表字段和第六表字段的比对,检测第五表字段与第六表字段的一致性,以及在第五表字段与第六表字段不一致的情况下,获得表字段不一致的第二检测结果。
在本公开中,接口定义文件可以是Mybatis接口的查询条件定义类,名称格式为[表名]Criteria.Java。根据本公开的实施例,该接口定义文件内定义的方法用于数据库查询条件的拼接。例如上述示例修改表结构以后,Criteria文件会有存量方法的入参,或新增方法的变化。由于通过比对类定义Java文件已经可以检测程序版本是否和数据库版本保持一致,因此该类文件可以不做比较。或者先比对接口定义文件检测程序版本是否和数据库版本保持一致,再通过比对类定义Java文件检测程序版本是否和数据库版本保持一致。
图4示意性示出了根据本公开另一实施例的版本一致性的检测方法的流程图。如图4所示,该版本一致性的检测方法400除了可以包括前述操作S310~操作S330之外,还可以包括操作S410及操作S420。
在操作S410,在应用程序版本与数据库版本不一致的情况下,停止应用程序的版本构建。根据本公开的实施例,如果存在接口定义、Mapper文件不一致的情况(排除新增、删除),则说明数据库与应用程序版本不一致,该版本不可交付。在程序版本与数据库版本一致的情况下,继续后续版本构建的执行。
在操作S420,生成并发送告警信息。具体实施时,在如图2所示的流水线中,可以及时发现问题,并停止流水线,通过邮件等方式通知应用开发人员进行检查和整改。这样版本不会继续构建、交付,保证测试、生产环境的稳定运行。
图5示意性示出了根据本公开另一实施例的版本一致性的检测方法的流程图。如图5所示,该版本一致性的检测方法500可以包括操作S510~操作S530。
在操作S510,拉取代码。具体实施时,从应用程序版本库拉取工程代码,包含应用开发人员提交的mybatis xml文件和Java文件,即获得在工程目录下的原始xml文件和Java文件。
在操作S520,执行Mybatis-generator命令,生成最新xml文件、Java文件。具体实施时,在工程内执行如下命令,在临时目录中生成最新Mybatis映射文件(xml文件)和代码(Java文件)。
在操作S530,比较xml文件以及Java文件。具体实施时,比对工程目录下的原始xml文件、Java文件和临时目录中的最新xml文件、Java文件。执行比较逻辑,对版本库代码和临时目录生成的最新代码进行比较,如果发现表结构、表字段类型存在变化,则抛出异常,并停止流水线。进一步地,还可以通过邮件等方式通知应用开发人员进行检查和整改。
本公开实施例提供的版本一致性检测方法,在版本构建、部署之前,通过自动化的方式完成应用程序版本与数据库版本的一致性检查,避免在环境部署后,通过人工测试、或生产的真实交易的异常结果,才发现不一致的情况,提高版本质量,提前排除生产隐患。
图6示意性示出了根据本公开实施例的版本一致性的检测装置的框图。如图6所示,该版本一致性的检测装置600可以包括第一应用程序文件获得模块610、第二应用程序文件生成模块620以及检测结果获得模块630。
第一应用程序文件获得模块610,用于从应用程序的版本库中获取第一应用程序文件,该第一应用程序文件用于表征应用程序的应用程序版本。可选地,第一应用程序文件获得模块610例如可以用于执行图3描述的操作S310,在此不再赘述。
第二应用程序文件生成模块620,用于连接所述应用程序的数据库,并基于逆向工程生成第二应用程序文件。该第二应用程序文件用于表征应用程序的数据库版本。可选地,第二应用程序文件生成模块620例如可以用于执行图3描述的操作S320,在此不再赘述。
检测结果获得模块630,用于基于第一应用程序文件与第二应用程序文件的比对,获得应用程序版本与数据库版本一致性的检测结果。可选地,检测结果获得模块630例如可以用于执行图3描述的操作S330,在此不再赘述。
作为一种可选的实施例,前述第二应用程序文件生成模块620可以包括:文件生成插件调用子模块,用于调用文件生成插件,其中,文件生成插件的配置文件包括数据库的表名。数据库连接子模块,用于基于数据库的表名,连接应用程序的数据库,以及第二应用程序文件生成子模块,用于对数据库的表结构进行解析,并基于逆向工程生成第二应用程序文件。
作为一种可选的实施例,前述检测结果获得模块630可以包括:表结构检测结果获得子模块,用于基于第一应用程序文件的表结构与第二应用程序文件的表结构的比对,获得表结构一致性的第一检测结果。表字段检测结果获得子模块,用于基于第一应用程序文件的表字段与第二应用程序文件的表字段的比对,获得表字段一致性的第二检测结果,以及版本检测结果获得子模块,用于基于第一检测结果和第二检测结果,获得程序版本与数据库版本一致性的检测结果。
作为一种可选的实施例,前述版本检测结果获得子模块可以包括:第一检测结果获取单元,用于在第一检测结果表明表结构不一致的情况下,获得应用程序版本与数据库版本不一致的检测结果,和/或第二检测结果获取单元,用于在第二检测结果表明表字段不一致的情况下,获得应用程序版本与数据库版本不一致的检测结果。
作为一种可选的实施例,前述表结构检测结果获得子模块可以包括:第一表结构获取单元,用于基于第一应用程序文件中的映射文件的解析,获得第一表结构。第二表结构获取单元,用于基于第二应用程序文件中的映射文件的解析,获得第二表结构。表结构检测单元,用于基于第一表结构和第二表结构的比对,检测第二表结构是否有新增或者删除,以及表结构检测结果获得单元,用于在存在新增或者删除的情况下,获得表结构不一致的第一检测结果。
作为一种可选的实施例,前述表字段检测结果获得子模块可以包括:第一表字段获取单元,用于基于第一应用程序文件中的映射文件的解析,获得第一表字段。第二表字段获取单元,用于基于第二应用程序文件中的映射文件的解析,获得第二表字段。第一表字段检测单元,用于基于第一表字段和第二表字段的比对,检测第二表字段是否有修改,以及第一表字段检测结果获得单元,用于在存在修改的情况下,获得表字段不一致的第二检测结果。
作为一种可选的实施例,前述表字段检测结果获得子模块可以包括:第三表字段获取单元,用于基于第一应用程序文件中的类定义文件的解析,获得第三表字段。第四表字段获取单元,用于基于第二应用程序文件中的类定义文件的解析,获得第四表字段。第二表字段检测单元,用于基于第三表字段和第四表字段的比对,检测第三表字段与第四表字段的一致性,以及第二表字段检测结果获得单元,用于在第三表字段与第四表字段不一致的情况下,获得表字段不一致的第二检测结果。
作为一种可选的实施例,前述表字段检测结果获得子模块还可以包括:第一输入输出参数获得单元,用于在第三表字段与第四表字段一致的情况下,基于第三表字段,获得与第三表字段对应的第一输入参数和第一输出参数。第二输入输出参数获得单元,用于基于第四表字段,获得与第四表字段对应的第二输入参数和第二输出参数。输入参数检测结果获得单元,用于基于第一输入参数和第二输入参数的比对,获得输入参数一致性的第三检测结果。输出参数检测结果获得单元,用于基于第一输出参数和第二输出参数的比对,获得输出参数一致性的第四检测结果,以及第三表字段检测结果获得单元,用于基于第三检测结果和第四检测结果,获得表字段一致性的第二检测结果。
作为一种可选的实施例,前述第三表字段检测结果获得单元可以包括:第一表字段检测结果获得子单元,用于在第三检测结果表明输入参数不一致的情况下,获得表字段不一致的检测结果,和/或第二表字段检测结果获得子单元,用于在第四检测结果表明输出参数不一致的情况下,获得表字段不一致的检测结果。
作为一种可选的实施例,前述表字段检测结果获得子模块可以包括:第五表字段获取单元,用于基于第一应用程序文件中的接口定义文件的解析,获得第五表字段。第六表字段获取单元,用于基于第二应用程序文件中的接口定义文件的解析,获得第六表字段。第三表字段检测单元,用于基于第五表字段和第六表字段的比对,检测第五表字段是否与第六表字段一致,以及第四表字段检测结果获得单元,用于在第五表字段与第六表字段不一致的情况下,获得表字段不一致的第二检测结果。
图7示意性示出了根据本公开另一实施例的版本一致性的检测装置的框图。如图7所示,该版本一致性的检测装置700除了可以包括前述第一应用程序文件获得模块610、第二应用程序文件生成模块620以及检测结果获得模块630之外,还可以包括版本构建停止模块710以及告警信息发送模块720。
版本构建停止模块710,用于在应用程序版本与数据库版本不一致的情况下,停止应用程序的版本构建。可选地,版本构建停止模块710例如可以用于执行图4描述的操作S410,在此不再赘述。
告警信息发送模块720,用于生成并发送告警信息。可选地,告警信息发送模块720例如可以用于执行图4描述的操作S420,在此不再赘述。
需要说明的是,版本一致性的检测装置部分实施例中各模块的实施方式、解决的技术问题、实现的功能、以及达到的技术效果分别与版本一致性的检测方法部分实施例中各对应的步骤的实施方式、解决的技术问题、实现的功能、及达到的技术效果相同或类似,不再赘述。
根据本公开的实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FNGA)、可编程逻辑阵列(NLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及同件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
例如,第一应用程序文件获得模块、第二应用程序文件生成模块、检测结果获得模块、文件生成插件调用子模块、数据库连接子模块、第二应用程序文件生成子模块、表结构检测结果获得子模块、表字段检测结果获得子模块、版本检测结果获得子模块、第一检测结果获取单元、第二检测结果获取单元、第一表结构获取单元、第二表结构获取单元、表结构检测单元、表结构检测结果获得单元、第一表字段获取单元、第二表字段获取单元、第一表字段检测单元、第一表字段检测结果获得单元、第三表字段获取单元、第四表字段获取单元、第二表字段检测单元、第二表字段检测结果获得单元、第一输入输出参数获得单元、第二输入输出参数获得单元、输入参数检测结果获得单元、输出参数检测结果获得单元、第三表字段检测结果获得单元、第一表字段检测结果获得子单元、第二表字段检测结果获得子单元、第五表字段获取单元、第六表字段获取单元、第三表字段检测单元、第四表字段检测结果获得单元、版本构建停止模块以及告警信息发送模块可以合并在一个模块中实现、或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合、并在一个模块中实现。根据本公开的实施例,第一应用程序文件获得模块、第二应用程序文件生成模块、检测结果获得模块、文件生成插件调用子模块、数据库连接子模块、第二应用程序文件生成子模块、表结构检测结果获得子模块、表字段检测结果获得子模块、版本检测结果获得子模块、第一检测结果获取单元、第二检测结果获取单元、第一表结构获取单元、第二表结构获取单元、表结构检测单元、表结构检测结果获得单元、第一表字段获取单元、第二表字段获取单元、第一表字段检测单元、第一表字段检测结果获得单元、第三表字段获取单元、第四表字段获取单元、第二表字段检测单元、第二表字段检测结果获得单元、第一输入输出参数获得单元、第二输入输出参数获得单元、输入参数检测结果获得单元、输出参数检测结果获得单元、第三表字段检测结果获得单元、第一表字段检测结果获得子单元、第二表字段检测结果获得子单元、第五表字段获取单元、第六表字段获取单元、第三表字段检测单元、第四表字段检测结果获得单元、版本构建停止模块以及告警信息发送模块中的至少一个可以至少被部分地实现为硬件电路、例如现场可编程门阵列(FNGA)、可编程逻辑阵列(NLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC)、或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现、或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,第一应用程序文件获得模块、第二应用程序文件生成模块、检测结果获得模块、文件生成插件调用子模块、数据库连接子模块、第二应用程序文件生成子模块、表结构检测结果获得子模块、表字段检测结果获得子模块、版本检测结果获得子模块、第一检测结果获取单元、第二检测结果获取单元、第一表结构获取单元、第二表结构获取单元、表结构检测单元、表结构检测结果获得单元、第一表字段获取单元、第二表字段获取单元、第一表字段检测单元、第一表字段检测结果获得单元、第三表字段获取单元、第四表字段获取单元、第二表字段检测单元、第二表字段检测结果获得单元、第一输入输出参数获得单元、第二输入输出参数获得单元、输入参数检测结果获得单元、输出参数检测结果获得单元、第三表字段检测结果获得单元、第一表字段检测结果获得子单元、第二表字段检测结果获得子单元、第五表字段获取单元、第六表字段获取单元、第三表字段检测单元、第四表字段检测结果获得单元、版本构建停止模块以及告警信息发送模块中的至少一个可以至少被部分地实现为计算机程序模块、当该计算机程序模块被运行时、可以执行相应的功能。
图8示意性示出了根据本公开实施例的适于实现上文描述的版本一致性的检测方法的计算机可读存储介质产品的示意图。
在一些可能的实施方式中、本发明的各个方面还可以实现为一种程序产品的形式、其包括程序代码、当程序产品在设备上运行时、程序代码用于使设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施例的版本一致性的检测方法中的前述各项操作(或步骤)。例如电子设备可以执行如图3中所示的操作S310~操作S330,如图4中所示的操作S410~操作S420以及如图5中所示的操作S510~操作S530。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、系统或器件、或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(ENROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
如图8所示、描述了根据本发明的实施方式的版本一致性的检测程序产品800、其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码、并可以在设备、例如个人电脑上运行。然而、本发明的程序产品不限于此、在本文件中、可读存储介质可以是任何包含或存储程序的有形介质、该程序可以被指令执行系统、系统或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号、其中承载了可读程序代码。这种传播的数据信号可以采用多种形式、包括——但不限于——电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质、该可读介质可以发送、传播或者传输用于由指令执行系统、系统或者器件使用或者与其结合使用的程序。可读介质上包含的程序代码可以用任何适当的介质传输、包括——但不限于——无线、有线、光缆、RF等等、或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码、程序设计语言包括面向对象的程序设计语言-诸如Java、C++等、还包括常规的过程式程序设计语言-诸如“C”、语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中、远程计算设备可以通过任意种类的网络——包括局域网(LAA)或广域网(WAA)一连接到用户计算设备、或者、可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
图9示意性示出了根据本公开实施例的适于实现上文描述的版本一致性的检测方法的电子设备的框图。图9示出的电子设备仅仅是一个示例、不应对本公开实施例的功能和使用范围带来任何限制。
如图9所示、根据本公开实施例的电子设备900包括处理器901、其可以根据存储在只读存储器(ROM)902中的程序或者从存储部分908加载到随机访问存储器(RAM)903中的程序而执行各种适当的动作和处理。处理器901例如可以包括通用微处理器(例如CNU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如、专用集成电路(ASIC))、等等。处理器901还可以包括用于缓存用途的板载存储器。处理器901可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 903中、存储有电子设备900操作所需的各种程序和数据。处理器901、ROM902以及RAM 903通过总线904彼此相连。处理器901通过执行ROM 902和/或RAM 903中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意、所述程序也可以存储在除ROM 902和RAM 903以外的一个或多个存储器中。处理器901也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例图3中所示的操作S310~操作S330,如图4中所示的操作S410~操作S420以及如图5中所示的操作S510~操作S530。
根据本公开的实施例、电子设备900还可以包括输入/输出(I/O)接口905、输入/输出(I/O)接口905也连接至总线904。系统900还可以包括连接至I/O接口905的以下部件中的一项或多项:包括键盘、鼠标等的输入部分906;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分907;包括硬盘等的存储部分908;以及包括诸如LAA卡、调制解调器等的网络接口卡的通信部分909。通信部分909经由诸如因特网的网络执行通信处理。驱动器910也根据需要连接至I/O接口905。可拆卸介质911、诸如磁盘、光盘、磁光盘、半导体存储器等等、根据需要安装在驱动器910上、以便于从其上读出的计算机程序根据需要被安装入存储部分908。
根据本公开的实施例、根据本公开实施例的方法流程可以被实现为计算机软件程序。例如、本公开的实施例包括一种计算机程序产品、其包括承载在计算机可读存储介质上的计算机程序、该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中、该计算机程序可以通过通信部分909从网络上被下载和安装、和/或从可拆卸介质911被安装。在该计算机程序被处理器901执行时、执行本公开实施例的系统中限定的上述功能。根据本公开的实施例、上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
本公开还提供了一种计算机可读存储介质、该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在、而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序、当上述一个或者多个程序被执行时、实现根据本公开实施例的版本一致性的检测方法,包括图3中所示的操作S310~操作S330,图4中所示的操作S410~操作S420以及图5中所示的操作S510~操作S530。
根据本公开的实施例、计算机可读存储介质可以是非易失性的计算机可读存储介质、例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(ENROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中、计算机可读存储介质可以是任何包含或存储程序的有形介质、该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。例如、根据本公开的实施例、计算机可读存储介质可以包括上文描述的ROM 902和/或RAM 903和/或ROM 902和RAM 903以外的一个或多个存储器。
附图中的流程图和框图、图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上、流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分、上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意、在有些作为替换的实现中、方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如、两个接连地表示的方框实际上可以基本并行地执行、它们有时也可以按相反的顺序执行、这依所涉及的功能而定。也要注意的是、框图或流程图中的每个方框、以及框图或流程图中的方框的组合、可以用执行规定的功能或操作的专用的基于硬件的系统来实现、或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解、本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合、即使这样的组合或结合没有明确记载于本公开中。特别地、在不脱离本公开精神和教导的情况下、本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
以上对本公开的实施例进行了描述。但是、这些实施例仅仅是为了说明的目标、而并非为了限制本公开的范围。尽管在以上分别描述了各实施例、但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围、本领域技术人员可以做出多种替代和修改、这些替代和修改都应落在本公开的范围之内。

Claims (14)

1.一种版本一致性的检测方法,包括:
从应用程序的版本库中获取第一应用程序文件,其中,所述第一应用程序文件用于表征所述应用程序的应用程序版本;
连接所述应用程序的数据库,并基于逆向工程生成第二应用程序文件,其中,所述第二应用程序文件用于表征所述应用程序的数据库版本;
基于所述第一应用程序文件与所述第二应用程序文件的比对,获得所述应用程序版本与所述数据库版本一致性的检测结果。
2.根据权利要求1所述的方法,其中,所述连接所述应用程序的数据库,并基于逆向工程生成第二应用程序文件包括:
调用文件生成插件,其中,所述文件生成插件的配置文件包括所述数据库的表名;
基于所述数据库的表名,连接所述应用程序的数据库;
对所述数据库的表结构进行解析,并基于逆向工程生成第二应用程序文件。
3.根据权利要求1所述的方法,其中,所述基于所述第一应用程序文件与所述第二应用程序文件的比对,获得所述应用程序版本与所述数据库版本一致性的检测结果包括:
基于所述第一应用程序文件的表结构与所述第二应用程序文件的表结构的比对,获得表结构一致性的第一检测结果;
基于所述第一应用程序文件的表字段与所述第二应用程序文件的表字段的比对,获得表字段一致性的第二检测结果;
基于所述第一检测结果和所述第二检测结果,获得所述应用程序版本与所述数据库版本一致性的检测结果。
4.根据权利要求3所述的方法,其中,所述基于所述第一检测结果和所述第二检测结果,获得所述应用程序版本与所述数据库版本一致性的检测结果包括:
在所述第一检测结果表明表结构不一致的情况下,获得所述应用程序版本与所述数据库版本不一致的检测结果;和/或
在所述第二检测结果表明表字段不一致的情况下,获得所述应用程序版本与所述数据库版本不一致的检测结果。
5.根据权利要求3所述的方法,其中,所述基于所述第一应用程序文件的表结构与所述第二应用程序文件的表结构的比对,获得表结构一致性的第一检测结果包括:
基于所述第一应用程序文件中的映射文件的解析,获得第一表结构;
基于所述第二应用程序文件中的映射文件的解析,获得第二表结构;
基于所述第一表结构和所述第二表结构的比对,检测所述第二表结构是否有新增或者删除;
在存在所述新增或者删除的情况下,获得表结构不一致的第一检测结果。
6.根据权利要求3所述的方法,其中,所述基于所述第一应用程序文件的表字段与所述第二应用程序文件的表字段的比对,获得表字段一致性的第二检测结果包括:
基于所述第一应用程序文件中的映射文件的解析,获得第一表字段;
基于所述第二应用程序文件中的映射文件的解析,获得第二表字段;
基于所述第一表字段和所述第二表字段的比对,检测所述第二表字段是否有修改;
在存在所述修改的情况下,获得表字段不一致的第二检测结果。
7.根据权利要求3所述的方法,其中,所述基于所述第一应用程序文件的表字段与所述第二应用程序文件的表字段的比对,获得表字段一致性的第二检测结果包括:
基于所述第一应用程序文件中的类定义文件的解析,获得第三表字段;
基于所述第二应用程序文件中的类定义文件的解析,获得第四表字段;
基于所述第三表字段和所述第四表字段的比对,检测所述第三表字段与所述第四表字段的一致性;
在所述第三表字段与所述第四表字段不一致的情况下,获得表字段不一致的第二检测结果。
8.根据权利要求7的方法,其中,所述方法还包括:
在所述第三表字段与所述第四表字段一致的情况下,基于所述第三表字段,获得与所述第三表字段对应的第一输入参数和第一输出参数;
基于所述第四表字段,获得与所述第四表字段对应的第二输入参数和第二输出参数;
基于所述第一输入参数和所述第二输入参数的比对,获得输入参数一致性的第三检测结果;
基于所述第一输出参数和所述第二输出参数的比对,获得输出参数一致性的第四检测结果;
基于所述第三检测结果和所述第四检测结果,获得表字段一致性的第二检测结果。
9.根据权利要求8所述的方法,其中,所述基于所述第三检测结果和所述第四检测结果,获得表字段一致性的第二检测结果包括:
在所述第三检测结果表明输入参数不一致的情况下,获得所述表字段不一致的检测结果;和/或
在所述第四检测结果表明输出参数不一致的情况下,获得所述表字段不一致的检测结果。
10.根据权利要求3所述的方法,其中,所述基于所述第一应用程序文件的表字段与所述第二应用程序文件的表字段的比对,获得表字段一致性的第二检测结果包括:
基于所述第一应用程序文件中的接口定义文件的解析,获得第五表字段;
基于所述第二应用程序文件中的接口定义文件的解析,获得第六表字段;
基于所述第五表字段和所述第六表字段的比对,检测所述第五表字段与所述第六表字段的一致性;
在所述第五表字段与所述第六表字段不一致的情况下,获得表字段不一致的第二检测结果。
11.根据权利要求1所述的方法,其中,所述方法还包括:
在所述应用程序版本与所述数据库版本不一致的情况下,停止所述应用程序的版本构建;
生成并发送告警信息。
12.一种版本一致性的检测装置,包括:
第一应用程序文件获得模块,用于从应用程序的版本库中获取第一应用程序文件,其中,所述第一应用程序文件用于表征所述应用程序的应用程序版本;
第二应用程序文件生成模块,用于连接所述应用程序的数据库,并基于逆向工程生成第二应用程序文件,其中,所述第二应用程序文件用于表征所述应用程序的数据库版本;
检测结果获得模块,用于基于所述第一应用程序文件与所述第二应用程序文件的比对,获得所述应用程序版本与所述数据库版本一致性的检测结果。
13.一种电子设备,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现权利要求1至11中任一项所述的方法。
14.一种计算机可读存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现权利要求1至11中任一项所述的方法。
CN202011610405.9A 2020-12-30 2020-12-30 版本一致性的检测方法、装置、电子设备和介质 Active CN112650526B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011610405.9A CN112650526B (zh) 2020-12-30 2020-12-30 版本一致性的检测方法、装置、电子设备和介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011610405.9A CN112650526B (zh) 2020-12-30 2020-12-30 版本一致性的检测方法、装置、电子设备和介质

Publications (2)

Publication Number Publication Date
CN112650526A true CN112650526A (zh) 2021-04-13
CN112650526B CN112650526B (zh) 2024-02-06

Family

ID=75364148

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011610405.9A Active CN112650526B (zh) 2020-12-30 2020-12-30 版本一致性的检测方法、装置、电子设备和介质

Country Status (1)

Country Link
CN (1) CN112650526B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115392175A (zh) * 2022-08-25 2022-11-25 苏州浪潮智能科技有限公司 一种电路设计错误处理方法、装置、介质
CN116627848A (zh) * 2023-07-24 2023-08-22 成都中科合迅科技有限公司 应用程序的自动化测试方法和系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110231956A (zh) * 2019-06-20 2019-09-13 腾讯科技(深圳)有限公司 应用程序版本构建的方法、系统及装置
CN111930842A (zh) * 2020-08-10 2020-11-13 中国工商银行股份有限公司 一种数据核对方法及装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110231956A (zh) * 2019-06-20 2019-09-13 腾讯科技(深圳)有限公司 应用程序版本构建的方法、系统及装置
CN111930842A (zh) * 2020-08-10 2020-11-13 中国工商银行股份有限公司 一种数据核对方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
马德棚;: "《Android应用差异性检测与分析》", 《无线互联科技》, no. 2, pages 77 - 78 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115392175A (zh) * 2022-08-25 2022-11-25 苏州浪潮智能科技有限公司 一种电路设计错误处理方法、装置、介质
CN115392175B (zh) * 2022-08-25 2024-01-23 苏州浪潮智能科技有限公司 一种电路设计错误处理方法、装置、介质
CN116627848A (zh) * 2023-07-24 2023-08-22 成都中科合迅科技有限公司 应用程序的自动化测试方法和系统
CN116627848B (zh) * 2023-07-24 2023-09-29 成都中科合迅科技有限公司 应用程序的自动化测试方法和系统

Also Published As

Publication number Publication date
CN112650526B (zh) 2024-02-06

Similar Documents

Publication Publication Date Title
US11100154B2 (en) Data integration tool
US11726969B2 (en) Matching metastructure for data modeling
US8065323B2 (en) Offline validation of data in a database system for foreign key constraints
US11526656B2 (en) Logical, recursive definition of data transformations
US9792203B2 (en) Isolated testing of distributed development projects
JP2020510925A (ja) テストケースを利用してテストを遂行する方法および装置
US11080305B2 (en) Relational log entry instituting system
US11714629B2 (en) Software dependency management
US7490098B2 (en) Apparatus, system, and method for processing hierarchical data in disparate data repositories
US20090254881A1 (en) Code generation techniques for administrative tasks
US10445675B2 (en) Confirming enforcement of business rules specified in a data access tier of a multi-tier application
US7634766B2 (en) Method and apparatus for pattern-based system design analysis using a meta model
US20180157584A1 (en) Implicit coordination of deployment and regression testing across data centers and system clusters
US11487742B2 (en) Consistency checks between database systems
US11379198B1 (en) Call graph enhancement using stitching algorithm
CN112650526B (zh) 版本一致性的检测方法、装置、电子设备和介质
CN115599386A (zh) 代码生成方法、装置、设备及存储介质
US20200097260A1 (en) Software application developer tools platform
US11487645B2 (en) Predictive test case coverage
CN116414855A (zh) 信息处理方法及装置、电子设备和计算机可读存储介质
CN115794858A (zh) 查询语句处理方法、装置、设备及存储介质
CN112883695A (zh) 生成报表模板和显示数据报表的方法、装置、设备和介质
US20240126679A1 (en) Metadata comparison of application programming interface (api) payloads
CN116339755A (zh) 数据库对象的安装方法、装置、设备和介质
Olsbo Application for improving software project status visibility

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
GR01 Patent grant
GR01 Patent grant