CN106325902B - 数据库软件升级检测方法及装置 - Google Patents

数据库软件升级检测方法及装置 Download PDF

Info

Publication number
CN106325902B
CN106325902B CN201510354661.9A CN201510354661A CN106325902B CN 106325902 B CN106325902 B CN 106325902B CN 201510354661 A CN201510354661 A CN 201510354661A CN 106325902 B CN106325902 B CN 106325902B
Authority
CN
China
Prior art keywords
statement
software
database
change
tested
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.)
Active
Application number
CN201510354661.9A
Other languages
English (en)
Other versions
CN106325902A (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.)
ZTE Corp
Original Assignee
ZTE Corp
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 ZTE Corp filed Critical ZTE Corp
Priority to CN201510354661.9A priority Critical patent/CN106325902B/zh
Priority to PCT/CN2016/070439 priority patent/WO2016206361A1/zh
Publication of CN106325902A publication Critical patent/CN106325902A/zh
Application granted granted Critical
Publication of CN106325902B publication Critical patent/CN106325902B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明提供了一种数据库软件升级检测方法及装置,其中,该方法获取待测试软件数据库的升级程序语句,截取该升级程序语句中的变更语句,该变更语句是已发布软件数据库的实例转变为该待测试软件数据库的实例的语句,获取已发布软件数据库的初始化语句,并从该初始化语句中抽取与该变更语句中数据库表名对应的数据库表以及字段信息,该数据库表以及字段信息包括:约束信息和字段类型信息,在检测该变更语句的执行是否违反该约束信息之后,检测该变更语句是否匹配该字段类型信息,解决了数据库的软件升级测试效率低,成本高的问题,提高了数据库的软件升级测试效率,降低了测试成本。

Description

数据库软件升级检测方法及装置
技术领域
本发明涉及通信领域,具体而言,涉及一种数据库软件升级检测方法及装置。
背景技术
计算机软件在运行过程中,会不断出现新的问题。有些是代码漏洞引起的故障,有些是软硬件环境发生变化引起的适应性缺陷,也有些是用户在使用过程中提出的新需求。这些问题一般通过软件升级到更新的版本来解决。另一方面,为了增强软件的竞争力,也需要不断升级来完善产品。因此,软件升级在后期维护中变得越来越必要,越来越常见,成为软件生命周期中一个不可或缺的过程。
软件研发发布的一系列版本,一般要求比较高的版本支持从低版本的升级,这就是软件升级。例如某个软件发布了Version 1.0、Version 2.0、Version 3.0三个大版本;针对Version 1.0又分别发布了若干补丁版本,例如Version 1.0Service Pack 1、Version1.0Service Pack2等;针对Version 2.0和Version 3.0也分别发布若干补丁版本。以大版本升级为例(暂不考虑补丁版本),该软件新开发Version 4.0版本需要支持如下升级路径测试:
1.支持从Version 1.0升级到Version 4.0;
2.支持从Version 2.0升级到Version 4.0;
3.支持从Version 3.0升级到Version 4.0;
4.支持从Version 1.0升级到Version 2.0,再升级到Version 4.0;
5.支持从Version 2.0升级到Version 3.0,再升级到Version 4.0;
6.支持从Version 1.0升级到Version 3.0,再升级到Version 4.0;
7.支持从Version 1.0升级到Version 2.0,再升级到Version 3.0,再升级到Version 4.0;
前三种升级测试路径是显然的。后四种路径也是实际需要的,因为全新安装的Version 2.0版本和从Version 1.0升级得到的Version 2.0版本是会存在差异的,虽然对客户来说这种差异往往是感觉不明显的,但是在数据库结构与数据上往往会存在差异。从中可以看出,随着发布版本不断增多,版本升级测试路径将越来越多。假设已经发布了n(n>=1)个软件版本(即存在n个源版本),那么发布第n+1个软件版本时,需要测试的升级路径数就是C(n,1)+C(n,2)+C(n,3)+…+C(n,n)=2^n-1。另外,如果软件支持多种操作***与数据库类型组合,例如Windows+SQL Server中/英文、Linux+Oracle中/英文、Solaris+Oracle中/英文,那么升级测试路径再把测试环境考虑上(ω表示测试环境个数),测试路径组合数就变为为ω(2^n-1)。随着版本数目的增多,测试路径数可以说是***式增长的。同时,要进行一次版本升级测试,都需要经过若干过程(源版本软件安装、源版本软件基本数据的生成和一定量的历史数据产生、升级过程,以及升级后一致性测试等几个环节),人力与物力投入是比较大的。
基于数据库的软件升级中,数据库的升级测试是比较重要的环节,同时也是错误多发的区域。数据库应用程序测试与一般软件程序测试的主要区别是数据库应用程序测试需要在数据库实例(数据库状态)下运行测试用例,而测试结果也与数据库状态有关。相同的数据库结构在不同数据库数据记录下形成的不同数据库状态,会导致相同测试用例的不同测试输出。然而,由于升级测试路径组合数指数增长,数据库状态组合数也随之指数增长,在实际测试中,成本是非常高的。
针对相关技术中,数据库的软件升级测试效率低,成本高的问题,目前还没有有效的解决方案。
发明内容
本发明提供了一种数据库软件升级检测方法及装置,以至少解决相关技术中数据库的软件升级测试效率低,成本高的问题。
根据本发明的一个方面,提供了一种数据库软件升级检测方法,包括:
获取待测试软件数据库的升级程序语句,截取所述升级程序语句中的变更语句,所述变更语句是已发布软件数据库的实例转变为所述待测试软件数据库的实例的语句;
获取已发布软件数据库的初始化语句,并从所述初始化语句中抽取与所述变更语句中数据库表名对应的数据库表以及字段信息,所述数据库表以及字段信息包括:约束信息和字段类型信息;
在检测所述变更语句的执行是否违反所述约束信息之后,检测所述变更语句是否匹配所述字段类型信息。
进一步地,截取所述升级程序语句中的变更语句之前,
扫描所述升级程序语句是否存在判断语句,所述判断语句用于检测所述变更语句的执行是否违反所述约束信息;
若存在的所述判断语句,则检测所述变更语句的执行是否违反所述约束信息。
进一步地,所述已发布软件数据库的已发布软件包括所述待测试软件数据库中待测软件支持的所有源版本软件;
所述已发布软件和所述待测试软件用软件的版本号唯一确定。
进一步地,所述初始化语句为全新安装所述待测试软件数据库应用软件需要执行的数据库语句。
进一步地,所述变更语句包括以下至少之一:
***INSERT语句,删除DELETE语句,更新UPDATE语句,创建CREATE语句,删除表DROP语句,修改ALTER语句。
进一步地,所述约束信息包括以下至少之一:主键约束,外键约束,唯一UNIQUE约束,检查CHECK约束,缺省DEFAULT定义,允许空值;
所述字段类型信息包括以下至少之一:字段类型,字段最大宽度。
根据本发明的另一个方面,还提供了一种数据库软件升级检测装置,包括:
第一获取模块,用于获取待测试软件数据库的升级程序语句,截取所述升级程序语句中的变更语句,所述变更语句是已发布软件数据库的实例转变为所述待测试软件数据库的实例的语句;
第二获取模块,用于获取已发布软件数据库的初始化语句,并从所述初始化语句中抽取与所述变更语句中数据库表名对应的数据库表以及字段信息,所述数据库表以及字段信息包括:约束信息和字段类型信息;
第一检测模块,用于在检测所述变更语句的执行是否违反所述约束信息之后,检测所述变更语句是否匹配所述字段类型信息。
进一步地,所述装置还包括:
判断模块,用于扫描所述升级程序语句是否存在判断语句,所述判断语句用于检测所述变更语句的执行是否违反所述约束信息;
第二检测模块,用于若存在的所述判断语句,则检测所述变更语句的执行是否违反所述约束信息。
进一步地,所述已发布软件数据库的已发布软件包括所述待测试软件数据库中待测软件支持的所有源版本软件;
所述已发布软件和所述待测试软件用软件的版本号唯一确定。
进一步地,所述初始化语句为全新安装所述待测试软件数据库应用软件需要执行的数据库语句。
进一步地,所述变更语句包括以下至少之一:
***INSERT语句,删除DELETE语句,更新UPDATE语句,创建CREATE语句,删除表DROP语句,修改ALTER语句。
进一步地,所述约束信息包括以下至少之一:主键约束,外键约束,唯一UNIQUE约束,检查CHECK约束,缺省DEFAULT定义,允许空值;
所述字段类型信息包括以下至少之一:字段类型,字段最大宽度。
通过本发明,获取待测试软件数据库的升级程序语句,截取该升级程序语句中的变更语句,该变更语句是已发布软件数据库的实例转变为该待测试软件数据库的实例的语句,获取已发布软件数据库的初始化语句,并从该初始化语句中抽取与该变更语句中数据库表名对应的数据库表以及字段信息,该数据库表以及字段信息包括:约束信息和字段类型信息,在检测该变更语句的执行是否违反该约束信息之后,检测该变更语句是否匹配该字段类型信息,解决了数据库的软件升级测试效率低,成本高的问题,提高了数据库的软件升级测试效率,降低了测试成本。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种数据库软件升级检测方法的流程图;
图2是根据本发明实施例的一种数据库软件升级检测装置的结构框图;
图3是根据本发明优选实施例的数据库软件升级检测方法整体流程示意图;
图4是根据本发明优选实施例的扫描待测试软件数据库升级程序流程示意图;
图5是根据本发明优选实施例的扫描已发布软件数据库初始化程序流程示意图;
图6是根据本发明优选实施例的变更语句错误检测流程示意图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
在本实施例中提供了一种数据库软件升级检测方法,图1是根据本发明实施例的一种数据库软件升级检测方法的流程图,如图1所示,该流程包括如下步骤:
步骤S102,获取待测试软件数据库的升级程序语句,截取该升级程序语句中的变更语句,该变更语句是已发布软件数据库的实例转变为该待测试软件数据库的实例的语句;
步骤S104,获取已发布软件数据库的初始化语句,并从该初始化语句中抽取与该变更语句中数据库表名对应的数据库表以及字段信息,该数据库表以及字段信息包括:约束信息和字段类型信息;
步骤S106,在检测该变更语句的执行是否违反该约束信息之后,检测该变更语句是否匹配该字段类型信息。
通过上述步骤,获取待测试软件数据库的升级程序语句,截取该升级程序语句中的变更语句,该变更语句是已发布软件数据库的实例转变为该待测试软件数据库的实例的语句,获取已发布软件数据库的初始化语句,并从该初始化语句中抽取与该变更语句中数据库表名对应的数据库表以及字段信息,该数据库表以及字段信息包括:约束信息和字段类型信息在检测该变更语句的执行是否违反该约束信息之后,检测该变更语句是否匹配该字段类型信息,解决了数据库的软件升级测试效率低,成本高的问题,提高了数据库的软件升级测试效率,降低了测试成本。
在本实施例中,扫描该升级程序语句是否存在判断语句,该判断语句用于检测该变更语句的执行是否违反该约束信息;
若存在的该判断语句,则检测该变更语句的执行是否违反该约束信息。
在本实施例中,该已发布软件数据库的已发布软件包括该待测试软件数据库中待测软件支持的所有源版本软件,该已发布软件和该待测试软件用软件的版本号唯一确定。
在本实施例中,该初始化语句为全新安装该待测试软件数据库应用软件需要执行的数据库语句。
在本实施例中,该变更语句包括以下至少之一:
***INSERT语句,删除DELETE语句,更新UPDATE语句,创建CREATE语句,删除表DROP语句,修改ALTER语句。
在本实施例中,该约束信息包括以下至少之一:主键约束,外键约束,唯一UNIQUE约束,检查CHECK约束,缺省DEFAULT定义,允许空值;该字段类型信息包括以下至少之一:字段类型,字段最大宽度。
在本实施例中还提供了一种数据库软件升级检测装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图2是根据本发明实施例的一种数据库软件升级检测装置的结构框图,如图2所示,该装置包括:
第一获取模块22,用于获取待测试软件数据库的升级程序语句,截取该升级程序语句中的变更语句,该变更语句是已发布软件数据库的实例转变为该待测试软件数据库的实例的语句;
第二获取模块24,用于获取已发布软件数据库的初始化语句,并从该初始化语句中抽取与该变更语句中数据库表名对应的数据库表以及字段信息,该数据库表以及字段信息包括:约束信息和字段类型信息;
第一检测模块26,用于在检测该变更语句的执行是否违反该约束信息之后,检测该变更语句是否匹配该字段类型信息。
通过上述装置,获取待测试软件数据库的升级程序语句,截取该升级程序语句中的变更语句,该变更语句是已发布软件数据库的实例转变为该待测试软件数据库的实例的语句,获取已发布软件数据库的初始化语句,并从该初始化语句中抽取与该变更语句中数据库表名对应的数据库表以及字段信息,该数据库表以及字段信息包括:约束信息和字段类型信息在检测该变更语句的执行是否违反该约束信息之后,检测该变更语句是否匹配该字段类型信息,解决了数据库的软件升级测试效率低,成本高的问题,提高了数据库的软件升级测试效率,降低了测试成本。
在本实施例中,该装置还包括:
判断模块,用于扫描该升级程序语句是否存在判断语句,该判断语句用于检测该变更语句的执行是否违反该约束信息;
第二检测模块,用于若存在的该判断语句,则检测该变更语句的执行是否违反该约束信息。
下面结合优选实施例和实施方式对本发明进行详细说明。
本优选实施例提供了一种数据库软件升级检测方法,不需要动态搭建升级测试环境,操作简单、低成本、快可速发现数据库升级程序存在的故障,提高数据库应用软件升级测试效率。
该方法不需要动态准备升级测试环境就可以提前发现数据库升级程序错误。使错误被尽早发现,同时降低了测试成本,提高了测试精准度。该方法包括以下步骤:
1)获取待测试软件数据库升级程序语句,在所述变更语句中获取到数据库表名。
2)获取已发布软件数据库初始化语句,获取步骤1)得到的数据库表名对应表以及字段信息。
3)检测步骤1)得到的变更语句前是否存在判断语句,判断语句目的在于检查该变更语句的执行是否违反步骤2)得到的对应数据库表及字段约束信息;检测步骤1)得到的变更语句是否违反步骤2)得到的对应数据库表各字段类型信息。
上述数据库软件升级检测方法,所述步骤1)关于数据库变更语句是将数据库实例从一种状态转变为另一种实例状态的语句,也就是将已发布软件数据库实例转变为新的待测试软件数据库实例的语句。变更语句是数据库升级程序语句的核心内容;所述步骤1)数据库升级程序语句信息将用于步骤3)的检测过程。
上述数据库软件升级检测方法,所述步骤2)关于已发布软件可以是待测试软件需要支持升级的所有源版本软件,可以使用软件版本号唯一确定;所述步骤2)关于数据库初始化语句是全新安装数据库应用软件需要执行的数据库语句;所述步骤2)数据库表及字段信息将用于步骤3)的检测过程。
上述数据库软件升级检测方法,所述步骤3)关于判断语句是一种选择性判断,也就是说如果判断语句结果为真,则执行其后的数据库变更语句;如果判断语句结果为假,则不执行其后的数据库变更语句。以确保数据库变更语句的正确执行。
图3是根据本发明优选实施例的数据库软件升级检测方法整体流程示意图,如图3所示,包括三个步骤:
步骤1:针对输入的待测试数据库应用软件版本,获取其数据库升级程序变更语句。
具体而言,所述数据库程序语言可以为任意一种结构化查询语言(SQL),数据库可以为所有关系型数据库。所述数据库升级程序变更语句包括INSERT、DELETE、UPDATE、CREATE、DROP、ALTER语句。不需要安装待测试数据库应用软件,只需要提供待测试数据库应用软件文件。
图4是根据本发明优选实施例的扫描待测试软件数据库升级程序流程示意图,如图4所示,图4为上述步骤1的流程示意图。包括四个步骤:
步骤401:针对输入的待测试数据库应用软件版本,扫描其升级程序。所述升级程序就是该软件用于升级已发布软件版本时需要执行的程序集合。
步骤402:在升级程序中获取数据库升级程序语句。数据库升级程序语句在步骤3中将再次使用。
步骤403:获取数据库升级程序变更语句。
步骤404:在数据库升级程序变更语句中截取数据库表名。所述截取过程依据结构化查询语言语法规则。
举例而言,若扫描升级程序后得到的数据库升级语句集合中,存在一条变更语句insert into PM_NEPODEF_TABLE(MOCID,NETYPEID,POID,PONAME,PODES,POTABLENAME)values('an_port','ZXDSL9852V','50009','IGMP端口统计','IGMP端口统计','ZXDSL9852V_50009'),依据语法规则“INSERT INTO table(columns)VALUES(columnsValues)”,可以抽取出表名PM_NEPODEF_TABLE,并将包含该变更语句在内的所有数据库升级程序语句集合储存备用。
步骤2:针对输入的已发布数据库应用软件,获取数据库初始化语句。
具体而言,所述已发布数据库应用软件可以为任意一个已经发布过的需要待测试应用软件支持升级的源版本。所述数据库初始化程序语句为全新安装该版本应用软件过程中初始执行的数据库程序语句。不需要安装已发布数据库应用软件,只需要提供已发布数据库应用软件文件,依据版本号来定位版本。
图5是根据本发明优选实施例的扫描已发布软件数据库初始化程序流程示意图,如图5所示,图5为步骤2的流程示意图。包括三个步骤:
步骤501:针对输入的已发布数据库应用软件,扫描其安装程序。所述安装程序就是该软件用于初始安装时需要执行的程序集合。
步骤502:在安装程序中依据步骤1得到的数据库表名定向搜索获取表的初始化程序。
步骤503:抽取数据库表及字段信息,包括约束信息和字段类型信息。所述约束信息包括主键约束、外键约束、UNIQUE约束、CHECK约束、DEFAULT定义、允许空值;所述字段类型信息包括字段类型、字段最大宽度。所述数据库表及字段信息将用于步骤3。
举例而言,扫描得到已发布数据库应用软件数据库初始化程序语句,依据数据库表名PM_NEPODEF_TABLE锁定相关初始化程序语句为:
Figure BDA0000744479290000081
Figure BDA0000744479290000091
依据语法规则,抽取约束信息和字段类型信息,最终结果如下表1展示:
表1
Figure BDA0000744479290000092
步骤3:检测步骤1得到的变更语句前是否存在正确的判断,检测步骤1得到的变更语句是否违反步骤2得到的数据库初始化语句。
具体而言,所述判断语句可以是任意结构化查询语言中判断语句,该语句结果为真或者假,用于控制后续一段语句的执行与否。
图6是根据本发明优选实施例的变更语句错误检测流程示意图,如图6所示,图6为步骤3的流程示意图,包括两个步骤:
步骤601:在步骤1所得数据库升级程序语句集合中对应数据库变更语句前搜索是否存在判断语句,判断语句目的在于检查该变更语句的执行是否违反步骤2得到的对应数据库表及字段约束信息。如果存在,则进一步检测是否有效于该变更语句,也就是说判断其是否违反步骤2得到的表的约束信息。
步骤602:在步骤1所得数据库变更语句中检测其中涉及的字段值是否与步骤2得到的字段类型以及字段最大宽度相匹配。
举例而言,示例INSERT INTO table(colums)VALUES(columnValues)变更语句错误检测。首先,在待测数据库应用软件升级程序集合中的变更语句insert into PM_NEPODEF_TABLE(MOCID,NETYPEID,POID,PONAME,PODES,POTABLENAME)values('an_port','ZXDSL9852V','50009','IGMP端口统计','IGMP端口统计','ZXDSL9852V_50009')前搜索是否存在判断语句,例如如果存在如下语句:
if exists(select*from PM_NEPODEF_TABLE where NETYPEID='ZXDSL9852V'and MOCID='an_port'and POID='50009'and POTABLENAME='ZXDSL9852V_50009')
则进一步检测对应字段是否包含主键约束NETYPEID,MOCID,POID,POTABLENAME,并且对应字段值是否与变更语句中字段值类型一致或者前者包含后者的范围。在所述步骤中,还需要检测变更语句中所有涉及的字段(MOCID,NETYPEID,POID,PONAME,PODES,POTABLENAME)对应的取值'an_port','ZXDSL9852V','50009','IGMP端口统计','IGMP端口统计','ZXDSL9852V_50009'在类型、在字段宽度上是否与表PM_NEPODEF_TABLE的字段类型信息相匹配。
综上所述,本优选实施例提供了一种快速地、不需要动态安装搭建测试环境、可提前发现数据库应用软件升级程序错误的静态测试方法。在一定程度上降低了由于升级路径***式增长导致的高成本测试投入的风险,为尽早发现程序错误,尽早将升级软件版本推向市场提供了保障。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以被设置为存储用于执行上述实施例方法步骤的程序代码:
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行上述实施例的方法步骤。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (12)

1.一种数据库软件升级检测方法,其特征在于,包括:
获取待测试软件数据库的升级程序语句,截取所述升级程序语句中的变更语句,所述变更语句是已发布软件数据库的实例转变为所述待测试软件数据库的实例的语句;
获取已发布软件数据库的初始化语句,并从所述初始化语句中抽取与所述变更语句中数据库表名对应的数据库表以及字段信息,所述数据库表以及字段信息包括:约束信息和字段类型信息;
在检测所述变更语句的执行是否违反所述约束信息之后,检测所述变更语句是否匹配所述字段类型信息。
2.根据权利要求1所述的方法,其特征在于,截取所述升级程序语句中的变更语句之前,
扫描所述升级程序语句是否存在判断语句,所述判断语句用于检测所述变更语句的执行是否违反所述约束信息;
若存在的所述判断语句,则检测所述变更语句的执行是否违反所述约束信息。
3.根据权利要求1所述的方法,其特征在于,还包括,
所述已发布软件数据库的已发布软件包括所述待测试软件数据库中待测软件支持的所有源版本软件;
所述已发布软件和所述待测试软件用软件的版本号唯一确定。
4.根据权利要求1所述的方法,其特征在于,还包括,
所述初始化语句为全新安装所述待测试软件数据库应用软件需要执行的数据库语句。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述变更语句包括以下至少之一:
***INSERT语句,删除DELETE语句,更新UPDATE语句,创建CREATE语句,删除表DROP语句,修改ALTER语句。
6.根据权利要求5所述的方法,其特征在于,还包括,
所述约束信息包括以下至少之一:主键约束,外键约束,唯一UNIQUE约束,检查CHECK约束,缺省DEFAULT定义,允许空值;
所述字段类型信息包括以下至少之一:字段类型,字段最大宽度。
7.一种数据库软件升级检测装置,其特征在于,包括:
第一获取模块,用于获取待测试软件数据库的升级程序语句,截取所述升级程序语句中的变更语句,所述变更语句是已发布软件数据库的实例转变为所述待测试软件数据库的实例的语句;
第二获取模块,用于获取已发布软件数据库的初始化语句,并从所述初始化语句中抽取与所述变更语句中数据库表名对应的数据库表以及字段信息,所述数据库表以及字段信息包括:约束信息和字段类型信息;
第一检测模块,用于在检测所述变更语句的执行是否违反所述约束信息之后,检测所述变更语句是否匹配所述字段类型信息。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
判断模块,用于扫描所述升级程序语句是否存在判断语句,所述判断语句用于检测所述变更语句的执行是否违反所述约束信息;
第二检测模块,用于若存在的所述判断语句,则检测所述变更语句的执行是否违反所述约束信息。
9.根据权利要求7所述的装置,其特征在于,还包括,
所述已发布软件数据库的已发布软件包括所述待测试软件数据库中待测软件支持的所有源版本软件;
所述已发布软件和所述待测试软件用软件的版本号唯一确定。
10.根据权利要求7所述的装置,其特征在于,还包括,
所述初始化语句为全新安装所述待测试软件数据库应用软件需要执行的数据库语句。
11.根据权利要求7至10任一项所述的装置,其特征在于,所述变更语句包括以下至少之一:
***INSERT语句,删除DELETE语句,更新UPDATE语句,创建CREATE语句,删除表DROP语句,修改ALTER语句。
12.根据权利要求10所述的装置,其特征在于,还包括,
所述约束信息包括以下至少之一:主键约束,外键约束,唯一UNIQUE约束,检查CHECK约束,缺省DEFAULT定义,允许空值;
所述字段类型信息包括以下至少之一:字段类型,字段最大宽度。
CN201510354661.9A 2015-06-24 2015-06-24 数据库软件升级检测方法及装置 Active CN106325902B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201510354661.9A CN106325902B (zh) 2015-06-24 2015-06-24 数据库软件升级检测方法及装置
PCT/CN2016/070439 WO2016206361A1 (zh) 2015-06-24 2016-01-07 数据库软件升级检测方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510354661.9A CN106325902B (zh) 2015-06-24 2015-06-24 数据库软件升级检测方法及装置

Publications (2)

Publication Number Publication Date
CN106325902A CN106325902A (zh) 2017-01-11
CN106325902B true CN106325902B (zh) 2020-09-15

Family

ID=57584565

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510354661.9A Active CN106325902B (zh) 2015-06-24 2015-06-24 数据库软件升级检测方法及装置

Country Status (2)

Country Link
CN (1) CN106325902B (zh)
WO (1) WO2016206361A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107179926A (zh) * 2017-04-28 2017-09-19 国家电网公司 基于动态规划算法的数据库软件升级检测***及方法
CN110865829B (zh) * 2018-08-28 2024-04-16 京东科技控股股份有限公司 数据库升级方法、***、设备及存储介质
CN110659293B (zh) * 2019-09-24 2022-02-11 支付宝(杭州)信息技术有限公司 基于变更代码的数据表确定方法以及装置
CN111221551B (zh) * 2019-10-29 2023-10-31 中盈优创资讯科技有限公司 数据库升级方法及装置
CN113448855A (zh) * 2021-07-07 2021-09-28 中国工商银行股份有限公司 数据库版本包检测方法及装置
CN113741931B (zh) * 2021-08-18 2023-07-25 苏州浪潮智能科技有限公司 软件升级方法、装置、电子设备及可读存储介质
CN116700763B (zh) * 2023-08-07 2023-10-27 长扬科技(北京)股份有限公司 Clickhouse数据库的版本升级方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1971556A (zh) * 2005-11-26 2007-05-30 华为技术有限公司 在后台管理***中实现数据库升级的***和方法
US20110218983A1 (en) * 2000-05-22 2011-09-08 Realnetworks, Inc. System and method of organizing and editing metadata
CN102402559A (zh) * 2010-09-16 2012-04-04 中兴通讯股份有限公司 一种数据库升级脚本的生成方法和装置
CN102890720A (zh) * 2012-10-16 2013-01-23 南京通达海信息技术有限公司 数据库检查维护方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080306986A1 (en) * 2007-06-08 2008-12-11 Accenture Global Services Gmbh Migration of Legacy Applications
CN101650663A (zh) * 2009-08-27 2010-02-17 中兴通讯股份有限公司 一种数据库***及其升级的方法
CN101789021A (zh) * 2010-02-24 2010-07-28 浪潮通信信息***有限公司 一种通用可配置的数据库数据迁移方法
CN104216724B (zh) * 2013-06-03 2018-01-02 阿里巴巴集团控股有限公司 一种网络应用程序接口升级的方法及***
CN104679527B (zh) * 2013-11-26 2017-12-01 ***股份有限公司 虚拟机镜像离线升级方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110218983A1 (en) * 2000-05-22 2011-09-08 Realnetworks, Inc. System and method of organizing and editing metadata
CN1971556A (zh) * 2005-11-26 2007-05-30 华为技术有限公司 在后台管理***中实现数据库升级的***和方法
CN102402559A (zh) * 2010-09-16 2012-04-04 中兴通讯股份有限公司 一种数据库升级脚本的生成方法和装置
CN102890720A (zh) * 2012-10-16 2013-01-23 南京通达海信息技术有限公司 数据库检查维护方法

Also Published As

Publication number Publication date
WO2016206361A1 (zh) 2016-12-29
CN106325902A (zh) 2017-01-11

Similar Documents

Publication Publication Date Title
CN106325902B (zh) 数据库软件升级检测方法及装置
KR102341388B1 (ko) 애플리케이션 업그레이드 방법, 장치, 기기 및 저장 매체
US9098375B2 (en) Automatic management of software patch installation
US8032880B2 (en) Multi-branch management for updating software
US10635812B2 (en) Method and apparatus for identifying malicious software
CN102736978A (zh) 一种检测应用程序的安装状态的方法及装置
KR101995285B1 (ko) 취약점이 존재하는 바이너리 패치 방법 및 그 장치
US20210191845A1 (en) Unit testing of components of dataflow graphs
CN104102511A (zh) 一种基于SQL Server的脚本自动升级***及方法
CN104461873A (zh) 一种应用程序的测试方法和装置
CN104537308A (zh) 提供应用安全审计功能的***及方法
CN111708566A (zh) 软件增量更新方法、装置、***及计算机可读存储介质
CN104133699A (zh) 设备***软件升级方法与***
CN107229681B (zh) 一种数据库操作方法及装置
US8738569B1 (en) Systematic verification of database metadata upgrade
CN103902565A (zh) 一种数据访问关系的确定方法及装置
CN102945155A (zh) 一种Linux操作***软件包及其依赖关系缺失检测方法
US10970196B1 (en) Semantic-aware fuzz-based functional testing
CN105528230A (zh) 一种配置参数的设置方法和装置
WO2023172683A1 (en) Populating datastores for integration testing
CN103095698A (zh) 客户端软件的修复方法、装置和通信***
CN115858884A (zh) 一种日志校验方法、装置和产品
US20150347402A1 (en) System and method for enabling a client system to generate file system operations on a file system data set using a virtual namespace
CN111078273B (zh) 一种信息获取方法及装置、存储介质
CN114385318A (zh) 基于kubernetes的并行测试方法、装置及设备

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