本發(fā)明涉及通信領域,具體而言,涉及一種數(shù)據(jù)庫軟件升級檢測方法及裝置。
背景技術:
::計算機軟件在運行過程中,會不斷出現(xiàn)新的問題。有些是代碼漏洞引起的故障,有些是軟硬件環(huán)境發(fā)生變化引起的適應性缺陷,也有些是用戶在使用過程中提出的新需求。這些問題一般通過軟件升級到更新的版本來解決。另一方面,為了增強軟件的競爭力,也需要不斷升級來完善產(chǎn)品。因此,軟件升級在后期維護中變得越來越必要,越來越常見,成為軟件生命周期中一個不可或缺的過程。軟件研發(fā)發(fā)布的一系列版本,一般要求比較高的版本支持從低版本的升級,這就是軟件升級。例如某個軟件發(fā)布了Version1.0、Version2.0、Version3.0三個大版本;針對Version1.0又分別發(fā)布了若干補丁版本,例如Version1.0ServicePack1、Version1.0ServicePack2等;針對Version2.0和Version3.0也分別發(fā)布若干補丁版本。以大版本升級為例(暫不考慮補丁版本),該軟件新開發(fā)Version4.0版本需要支持如下升級路徑測試:1.支持從Version1.0升級到Version4.0;2.支持從Version2.0升級到Version4.0;3.支持從Version3.0升級到Version4.0;4.支持從Version1.0升級到Version2.0,再升級到Version4.0;5.支持從Version2.0升級到Version3.0,再升級到Version4.0;6.支持從Version1.0升級到Version3.0,再升級到Version4.0;7.支持從Version1.0升級到Version2.0,再升級到Version3.0,再升級到Version4.0;前三種升級測試路徑是顯然的。后四種路徑也是實際需要的,因為全新安裝的Version2.0版本和從Version1.0升級得到的Version2.0版本是會存在差異的,雖然對客戶來說這種差異往往是感覺不明顯的,但是在數(shù)據(jù)庫結構與數(shù)據(jù)上往往會存在差異。從中可以看出,隨著發(fā)布版本不斷增多,版本升級測試路徑將越來越多。假設已經(jīng)發(fā)布了n(n>=1)個軟件版本(即存在n個源版本),那么發(fā)布第n+1個軟件版本時,需要測試的升級路徑數(shù)就是C(n,1)+C(n,2)+C(n,3)+…+C(n,n)=2^n-1。另外,如果軟件支持多種操作系統(tǒng)與數(shù)據(jù)庫類型組合,例如Windows+SQLServer中/英文、Linux+Oracle中/英文、 Solaris+Oracle中/英文,那么升級測試路徑再把測試環(huán)境考慮上(ω表示測試環(huán)境個數(shù)),測試路徑組合數(shù)就變?yōu)闉棣?2^n-1)。隨著版本數(shù)目的增多,測試路徑數(shù)可以說是爆炸式增長的。同時,要進行一次版本升級測試,都需要經(jīng)過若干過程(源版本軟件安裝、源版本軟件基本數(shù)據(jù)的生成和一定量的歷史數(shù)據(jù)產(chǎn)生、升級過程,以及升級后一致性測試等幾個環(huán)節(jié)),人力與物力投入是比較大的?;跀?shù)據(jù)庫的軟件升級中,數(shù)據(jù)庫的升級測試是比較重要的環(huán)節(jié),同時也是錯誤多發(fā)的區(qū)域。數(shù)據(jù)庫應用程序測試與一般軟件程序測試的主要區(qū)別是數(shù)據(jù)庫應用程序測試需要在數(shù)據(jù)庫實例(數(shù)據(jù)庫狀態(tài))下運行測試用例,而測試結果也與數(shù)據(jù)庫狀態(tài)有關。相同的數(shù)據(jù)庫結構在不同數(shù)據(jù)庫數(shù)據(jù)記錄下形成的不同數(shù)據(jù)庫狀態(tài),會導致相同測試用例的不同測試輸出。然而,由于升級測試路徑組合數(shù)指數(shù)增長,數(shù)據(jù)庫狀態(tài)組合數(shù)也隨之指數(shù)增長,在實際測試中,成本是非常高的。針對相關技術中,數(shù)據(jù)庫的軟件升級測試效率低,成本高的問題,目前還沒有有效的解決方案。技術實現(xiàn)要素:本發(fā)明提供了一種數(shù)據(jù)庫軟件升級檢測方法及裝置,以至少解決相關技術中數(shù)據(jù)庫的軟件升級測試效率低,成本高的問題。根據(jù)本發(fā)明的一個方面,提供了一種數(shù)據(jù)庫軟件升級檢測方法,包括:獲取待測試軟件數(shù)據(jù)庫的升級程序語句,截取所述升級程序語句中的變更語句,所述變更語句是已發(fā)布軟件數(shù)據(jù)庫的實例轉變?yōu)樗龃郎y試軟件數(shù)據(jù)庫的實例的語句;獲取已發(fā)布軟件數(shù)據(jù)庫的初始化語句,并從所述初始化語句中抽取與所述變更語句中數(shù)據(jù)庫表名對應的數(shù)據(jù)庫表以及字段信息,所述數(shù)據(jù)庫表以及字段信息包括:約束信息和字段類型信息;在檢測所述變更語句的執(zhí)行是否違反所述約束信息之后,檢測所述變更語句是否匹配所述字段類型信息。進一步地,截取所述升級程序語句中的變更語句之前,掃描所述升級程序語句是否存在判斷語句,所述判斷語句用于檢測所述變更語句的執(zhí)行是否違反所述約束信息;若存在的所述判斷語句,則檢測所述變更語句的執(zhí)行是否違反所述約束信息。進一步地,所述已發(fā)布軟件數(shù)據(jù)庫的已發(fā)布軟件包括所述待測試軟件數(shù)據(jù)庫中待測軟件支持的所有源版本軟件;所述已發(fā)布軟件和所述待測試軟件用軟件的版本號唯一確定。進一步地,所述初始化語句為全新安裝所述待測試軟件數(shù)據(jù)庫應用軟件需要執(zhí)行的數(shù)據(jù)庫語句。進一步地,所述變更語句包括以下至少之一:插入INSERT語句,刪除DELETE語句,更新UPDATE語句,創(chuàng)建CREATE語句,刪除表DROP語句,修改ALTER語句。進一步地,所述約束信息包括以下至少之一:主鍵約束,外鍵約束,唯一UNIQUE約束,檢查CHECK約束,缺省DEFAULT定義,允許空值;所述字段類型信息包括以下至少之一:字段類型,字段最大寬度。根據(jù)本發(fā)明的另一個方面,還提供了一種數(shù)據(jù)庫軟件升級檢測裝置,包括:第一獲取模塊,用于獲取待測試軟件數(shù)據(jù)庫的升級程序語句,截取所述升級程序語句中的變更語句,所述變更語句是已發(fā)布軟件數(shù)據(jù)庫的實例轉變?yōu)樗龃郎y試軟件數(shù)據(jù)庫的實例的語句;第二獲取模塊,用于獲取已發(fā)布軟件數(shù)據(jù)庫的初始化語句,并從所述初始化語句中抽取與所述變更語句中數(shù)據(jù)庫表名對應的數(shù)據(jù)庫表以及字段信息,所述數(shù)據(jù)庫表以及字段信息包括:約束信息和字段類型信息;第一檢測模塊,用于在檢測所述變更語句的執(zhí)行是否違反所述約束信息之后,檢測所述變更語句是否匹配所述字段類型信息。進一步地,所述裝置還包括:判斷模塊,用于掃描所述升級程序語句是否存在判斷語句,所述判斷語句用于檢測所述變更語句的執(zhí)行是否違反所述約束信息;第二檢測模塊,用于若存在的所述判斷語句,則檢測所述變更語句的執(zhí)行是否違反所述約束信息。進一步地,所述已發(fā)布軟件數(shù)據(jù)庫的已發(fā)布軟件包括所述待測試軟件數(shù)據(jù)庫中待測軟件支持的所有源版本軟件;所述已發(fā)布軟件和所述待測試軟件用軟件的版本號唯一確定。進一步地,所述初始化語句為全新安裝所述待測試軟件數(shù)據(jù)庫應用軟件需要執(zhí)行的數(shù)據(jù)庫語句。進一步地,所述變更語句包括以下至少之一:插入INSERT語句,刪除DELETE語句,更新UPDATE語句,創(chuàng)建CREATE語句,刪除表DROP語句,修改ALTER語句。進一步地,所述約束信息包括以下至少之一:主鍵約束,外鍵約束,唯一UNIQUE約束,檢查CHECK約束,缺省DEFAULT定義,允許空值;所述字段類型信息包括以下至少之一:字段類型,字段最大寬度。通過本發(fā)明,獲取待測試軟件數(shù)據(jù)庫的升級程序語句,截取該升級程序語句中的變更語句,該變更語句是已發(fā)布軟件數(shù)據(jù)庫的實例轉變?yōu)樵摯郎y試軟件數(shù)據(jù)庫的實例的語句,獲取已發(fā)布軟件數(shù)據(jù)庫的初始化語句,并從該初始化語句中抽取與該變更語句中數(shù)據(jù)庫表名對應的數(shù)據(jù)庫表以及字段信息,該數(shù)據(jù)庫表以及字段信息包括:約束信息和字段類型信息,在檢測該變更語句的執(zhí)行是否違反該約束信息之后,檢測該變更語句是否匹配該字段類型信息,解決了數(shù)據(jù)庫的軟件升級測試效率低,成本高的問題,提高了數(shù)據(jù)庫的軟件升級測試效率,降低了測試成本。附圖說明此處所說明的附圖用來提供對本發(fā)明的進一步理解,構成本申請的一部分,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構成對本發(fā)明的不當限定。在附圖中:圖1是根據(jù)本發(fā)明實施例的一種數(shù)據(jù)庫軟件升級檢測方法的流程圖;圖2是根據(jù)本發(fā)明實施例的一種數(shù)據(jù)庫軟件升級檢測裝置的結構框圖;圖3是根據(jù)本發(fā)明優(yōu)選實施例的數(shù)據(jù)庫軟件升級檢測方法整體流程示意圖;圖4是根據(jù)本發(fā)明優(yōu)選實施例的掃描待測試軟件數(shù)據(jù)庫升級程序流程示意圖;圖5是根據(jù)本發(fā)明優(yōu)選實施例的掃描已發(fā)布軟件數(shù)據(jù)庫初始化程序流程示意圖;圖6是根據(jù)本發(fā)明優(yōu)選實施例的變更語句錯誤檢測流程示意圖。具體實施方式下文中將參考附圖并結合實施例來詳細說明本發(fā)明。需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互組合。需要說明的是,本發(fā)明的說明書和權利要求書及上述附圖中的術語“第一”、“第二”等是用于區(qū)別類似的對象,而不必用于描述特定的順序或先后次序。在本實施例中提供了一種數(shù)據(jù)庫軟件升級檢測方法,圖1是根據(jù)本發(fā)明實施例的一種數(shù)據(jù)庫軟件升級檢測方法的流程圖,如圖1所示,該流程包括如下步驟:步驟S102,獲取待測試軟件數(shù)據(jù)庫的升級程序語句,截取該升級程序語句中的變更語句,該變更語句是已發(fā)布軟件數(shù)據(jù)庫的實例轉變?yōu)樵摯郎y試軟件數(shù)據(jù)庫的實例的語句;步驟S104,獲取已發(fā)布軟件數(shù)據(jù)庫的初始化語句,并從該初始化語句中抽取與該變更語句中數(shù)據(jù)庫表名對應的數(shù)據(jù)庫表以及字段信息,該數(shù)據(jù)庫表以及字段信息包括:約束信息和字段類型信息;步驟S106,在檢測該變更語句的執(zhí)行是否違反該約束信息之后,檢測該變更語句是否匹配該字段類型信息。通過上述步驟,獲取待測試軟件數(shù)據(jù)庫的升級程序語句,截取該升級程序語句中的變更語句,該變更語句是已發(fā)布軟件數(shù)據(jù)庫的實例轉變?yōu)樵摯郎y試軟件數(shù)據(jù)庫的實例的語句,獲取已發(fā)布軟件數(shù)據(jù)庫的初始化語句,并從該初始化語句中抽取與該變更語句中數(shù)據(jù)庫表名對應的數(shù)據(jù)庫表以及字段信息,該數(shù)據(jù)庫表以及字段信息包括:約束信息和字段類型信息在檢測該變更語句的執(zhí)行是否違反該約束信息之后,檢測該變更語句是否匹配該字段類型信息,解決了數(shù)據(jù)庫的軟件升級測試效率低,成本高的問題,提高了數(shù)據(jù)庫的軟件升級測試效率,降低了測試成本。在本實施例中,掃描該升級程序語句是否存在判斷語句,該判斷語句用于檢測該變更語句的執(zhí)行是否違反該約束信息;若存在的該判斷語句,則檢測該變更語句的執(zhí)行是否違反該約束信息。在本實施例中,該已發(fā)布軟件數(shù)據(jù)庫的已發(fā)布軟件包括該待測試軟件數(shù)據(jù)庫中待測軟件支持的所有源版本軟件,該已發(fā)布軟件和該待測試軟件用軟件的版本號唯一確定。在本實施例中,該初始化語句為全新安裝該待測試軟件數(shù)據(jù)庫應用軟件需要執(zhí)行的數(shù)據(jù)庫語句。在本實施例中,該變更語句包括以下至少之一:插入INSERT語句,刪除DELETE語句,更新UPDATE語句,創(chuàng)建CREATE語句,刪除表DROP語句,修改ALTER語句。在本實施例中,該約束信息包括以下至少之一:主鍵約束,外鍵約束,唯一UNIQUE約束,檢查CHECK約束,缺省DEFAULT定義,允許空值;該字段類型信息包括以下至少之一:字段類型,字段最大寬度。在本實施例中還提供了一種數(shù)據(jù)庫軟件升級檢測裝置,該裝置用于實現(xiàn)上述實施例及優(yōu)選實施方式,已經(jīng)進行過說明的不再贅述。如以下所使用的,術語“模塊”可以實現(xiàn)預定功能的軟件和/或硬件的組合。盡管以下實施例所描述的裝置較佳地以軟件來實現(xiàn),但是硬件,或者軟件和硬件的組合的實現(xiàn)也是可能并被構想的。圖2是根據(jù)本發(fā)明實施例的一種數(shù)據(jù)庫軟件升級檢測裝置的結構框圖,如圖2所示,該裝置包括:第一獲取模塊22,用于獲取待測試軟件數(shù)據(jù)庫的升級程序語句,截取該升級程序語 句中的變更語句,該變更語句是已發(fā)布軟件數(shù)據(jù)庫的實例轉變?yōu)樵摯郎y試軟件數(shù)據(jù)庫的實例的語句;第二獲取模塊24,用于獲取已發(fā)布軟件數(shù)據(jù)庫的初始化語句,并從該初始化語句中抽取與該變更語句中數(shù)據(jù)庫表名對應的數(shù)據(jù)庫表以及字段信息,該數(shù)據(jù)庫表以及字段信息包括:約束信息和字段類型信息;第一檢測模塊26,用于在檢測該變更語句的執(zhí)行是否違反該約束信息之后,檢測該變更語句是否匹配該字段類型信息。通過上述裝置,獲取待測試軟件數(shù)據(jù)庫的升級程序語句,截取該升級程序語句中的變更語句,該變更語句是已發(fā)布軟件數(shù)據(jù)庫的實例轉變?yōu)樵摯郎y試軟件數(shù)據(jù)庫的實例的語句,獲取已發(fā)布軟件數(shù)據(jù)庫的初始化語句,并從該初始化語句中抽取與該變更語句中數(shù)據(jù)庫表名對應的數(shù)據(jù)庫表以及字段信息,該數(shù)據(jù)庫表以及字段信息包括:約束信息和字段類型信息在檢測該變更語句的執(zhí)行是否違反該約束信息之后,檢測該變更語句是否匹配該字段類型信息,解決了數(shù)據(jù)庫的軟件升級測試效率低,成本高的問題,提高了數(shù)據(jù)庫的軟件升級測試效率,降低了測試成本。在本實施例中,該裝置還包括:判斷模塊,用于掃描該升級程序語句是否存在判斷語句,該判斷語句用于檢測該變更語句的執(zhí)行是否違反該約束信息;第二檢測模塊,用于若存在的該判斷語句,則檢測該變更語句的執(zhí)行是否違反該約束信息。下面結合優(yōu)選實施例和實施方式對本發(fā)明進行詳細說明。本優(yōu)選實施例提供了一種數(shù)據(jù)庫軟件升級檢測方法,不需要動態(tài)搭建升級測試環(huán)境,操作簡單、低成本、快可速發(fā)現(xiàn)數(shù)據(jù)庫升級程序存在的故障,提高數(shù)據(jù)庫應用軟件升級測試效率。該方法不需要動態(tài)準備升級測試環(huán)境就可以提前發(fā)現(xiàn)數(shù)據(jù)庫升級程序錯誤。使錯誤被盡早發(fā)現(xiàn),同時降低了測試成本,提高了測試精準度。該方法包括以下步驟:1)獲取待測試軟件數(shù)據(jù)庫升級程序語句,在所述變更語句中獲取到數(shù)據(jù)庫表名。2)獲取已發(fā)布軟件數(shù)據(jù)庫初始化語句,獲取步驟1)得到的數(shù)據(jù)庫表名對應表以及字段信息。3)檢測步驟1)得到的變更語句前是否存在判斷語句,判斷語句目的在于檢查該變更語句的執(zhí)行是否違反步驟2)得到的對應數(shù)據(jù)庫表及字段約束信息;檢測步驟1)得到的變更語句是否違反步驟2)得到的對應數(shù)據(jù)庫表各字段類型信息。上述數(shù)據(jù)庫軟件升級檢測方法,所述步驟1)關于數(shù)據(jù)庫變更語句是將數(shù)據(jù)庫實例從一種狀態(tài)轉變?yōu)榱硪环N實例狀態(tài)的語句,也就是將已發(fā)布軟件數(shù)據(jù)庫實例轉變?yōu)樾碌拇郎y試軟件數(shù)據(jù)庫實例的語句。變更語句是數(shù)據(jù)庫升級程序語句的核心內(nèi)容;所述步驟1)數(shù)據(jù)庫升級程序語句信息將用于步驟3)的檢測過程。上述數(shù)據(jù)庫軟件升級檢測方法,所述步驟2)關于已發(fā)布軟件可以是待測試軟件需要支持升級的所有源版本軟件,可以使用軟件版本號唯一確定;所述步驟2)關于數(shù)據(jù)庫初始化語句是全新安裝數(shù)據(jù)庫應用軟件需要執(zhí)行的數(shù)據(jù)庫語句;所述步驟2)數(shù)據(jù)庫表及字段信息將用于步驟3)的檢測過程。上述數(shù)據(jù)庫軟件升級檢測方法,所述步驟3)關于判斷語句是一種選擇性判斷,也就是說如果判斷語句結果為真,則執(zhí)行其后的數(shù)據(jù)庫變更語句;如果判斷語句結果為假,則不執(zhí)行其后的數(shù)據(jù)庫變更語句。以確保數(shù)據(jù)庫變更語句的正確執(zhí)行。圖3是根據(jù)本發(fā)明優(yōu)選實施例的數(shù)據(jù)庫軟件升級檢測方法整體流程示意圖,如圖3所示,包括三個步驟:步驟1:針對輸入的待測試數(shù)據(jù)庫應用軟件版本,獲取其數(shù)據(jù)庫升級程序變更語句。具體而言,所述數(shù)據(jù)庫程序語言可以為任意一種結構化查詢語言(SQL),數(shù)據(jù)庫可以為所有關系型數(shù)據(jù)庫。所述數(shù)據(jù)庫升級程序變更語句包括INSERT、DELETE、UPDATE、CREATE、DROP、ALTER語句。不需要安裝待測試數(shù)據(jù)庫應用軟件,只需要提供待測試數(shù)據(jù)庫應用軟件文件。圖4是根據(jù)本發(fā)明優(yōu)選實施例的掃描待測試軟件數(shù)據(jù)庫升級程序流程示意圖,如圖4所示,圖4為上述步驟1的流程示意圖。包括四個步驟:步驟401:針對輸入的待測試數(shù)據(jù)庫應用軟件版本,掃描其升級程序。所述升級程序就是該軟件用于升級已發(fā)布軟件版本時需要執(zhí)行的程序集合。步驟402:在升級程序中獲取數(shù)據(jù)庫升級程序語句。數(shù)據(jù)庫升級程序語句在步驟3中將再次使用。步驟403:獲取數(shù)據(jù)庫升級程序變更語句。步驟404:在數(shù)據(jù)庫升級程序變更語句中截取數(shù)據(jù)庫表名。所述截取過程依據(jù)結構化查詢語言語法規(guī)則。舉例而言,若掃描升級程序后得到的數(shù)據(jù)庫升級語句集合中,存在一條變更語句insertintoPM_NEPODEF_TABLE(MOCID,NETYPEID,POID,PONAME,PODES,POTABLENAME)values('an_port','ZXDSL9852V','50009','IGMP端口統(tǒng)計','IGMP端口統(tǒng)計','ZXDSL9852V_50009'),依據(jù)語法規(guī)則“INSERTINTOtable(columns)VALUES(columnsValues)”,可以抽取出表名PM_NEPODEF_TABLE,并將包含該變更語句在內(nèi) 的所有數(shù)據(jù)庫升級程序語句集合儲存?zhèn)溆?。步驟2:針對輸入的已發(fā)布數(shù)據(jù)庫應用軟件,獲取數(shù)據(jù)庫初始化語句。具體而言,所述已發(fā)布數(shù)據(jù)庫應用軟件可以為任意一個已經(jīng)發(fā)布過的需要待測試應用軟件支持升級的源版本。所述數(shù)據(jù)庫初始化程序語句為全新安裝該版本應用軟件過程中初始執(zhí)行的數(shù)據(jù)庫程序語句。不需要安裝已發(fā)布數(shù)據(jù)庫應用軟件,只需要提供已發(fā)布數(shù)據(jù)庫應用軟件文件,依據(jù)版本號來定位版本。圖5是根據(jù)本發(fā)明優(yōu)選實施例的掃描已發(fā)布軟件數(shù)據(jù)庫初始化程序流程示意圖,如圖5所示,圖5為步驟2的流程示意圖。包括三個步驟:步驟501:針對輸入的已發(fā)布數(shù)據(jù)庫應用軟件,掃描其安裝程序。所述安裝程序就是該軟件用于初始安裝時需要執(zhí)行的程序集合。步驟502:在安裝程序中依據(jù)步驟1得到的數(shù)據(jù)庫表名定向搜索獲取表的初始化程序。步驟503:抽取數(shù)據(jù)庫表及字段信息,包括約束信息和字段類型信息。所述約束信息包括主鍵約束、外鍵約束、UNIQUE約束、CHECK約束、DEFAULT定義、允許空值;所述字段類型信息包括字段類型、字段最大寬度。所述數(shù)據(jù)庫表及字段信息將用于步驟3。舉例而言,掃描得到已發(fā)布數(shù)據(jù)庫應用軟件數(shù)據(jù)庫初始化程序語句,依據(jù)數(shù)據(jù)庫表名PM_NEPODEF_TABLE鎖定相關初始化程序語句為:依據(jù)語法規(guī)則,抽取約束信息和字段類型信息,最終結果如下表1展示:表1步驟3:檢測步驟1得到的變更語句前是否存在正確的判斷,檢測步驟1得到的變更語句是否違反步驟2得到的數(shù)據(jù)庫初始化語句。具體而言,所述判斷語句可以是任意結構化查詢語言中判斷語句,該語句結果為真或者假,用于控制后續(xù)一段語句的執(zhí)行與否。圖6是根據(jù)本發(fā)明優(yōu)選實施例的變更語句錯誤檢測流程示意圖,如圖6所示,圖6為步驟3的流程示意圖,包括兩個步驟:步驟601:在步驟1所得數(shù)據(jù)庫升級程序語句集合中對應數(shù)據(jù)庫變更語句前搜索是否存在判斷語句,判斷語句目的在于檢查該變更語句的執(zhí)行是否違反步驟2得到的對應數(shù)據(jù)庫表及字段約束信息。如果存在,則進一步檢測是否有效于該變更語句,也就是說判斷其是否違反步驟2得到的表的約束信息。步驟602:在步驟1所得數(shù)據(jù)庫變更語句中檢測其中涉及的字段值是否與步驟2得到的字段類型以及字段最大寬度相匹配。舉例而言,示例INSERTINTOtable(colums)VALUES(columnValues)變更語句錯誤檢測。首先,在待測數(shù)據(jù)庫應用軟件升級程序集合中的變更語句insertintoPM_NEPODEF_TABLE(MOCID,NETYPEID,POID,PONAME,PODES,POTABLENAME)values('an_port','ZXDSL9852V','50009','IGMP端口統(tǒng)計','IGMP端口統(tǒng)計','ZXDSL9852V_50009')前搜索是否存在判斷語句,例如如果存在如下語句:ifexists(select*fromPM_NEPODEF_TABLEwhereNETYPEID='ZXDSL9852V'andMOCID='an_port'andPOID='50009'andPOTABLENAME='ZXDSL9852V_50009')則進一步檢測對應字段是否包含主鍵約束NETYPEID,MOCID,POID,POTABLENAME,并且對應字段值是否與變更語句中字段值類型一致或者前者包含后者的范圍。在所述步驟中,還需要檢測變更語句中所有涉及的字段(MOCID,NETYPEID,POID,PONAME,PODES,POTABLENAME)對應的取值'an_port','ZXDSL9852V','50009','IGMP端口統(tǒng)計','IGMP端口統(tǒng)計','ZXDSL9852V_50009'在類型、在字段寬度上是否與表PM_NEPODEF_TABLE的字段類型信息相匹配。綜上所述,本優(yōu)選實施例提供了一種快速地、不需要動態(tài)安裝搭建測試環(huán)境、可提前發(fā)現(xiàn)數(shù)據(jù)庫應用軟件升級程序錯誤的靜態(tài)測試方法。在一定程度上降低了由于升級路徑爆炸式增長導致的高成本測試投入的風險,為盡早發(fā)現(xiàn)程序錯誤,盡早將升級軟件版本推向市場提供了保障。通過以上的實施方式的描述,本領域的技術人員可以清楚地了解到根據(jù)上述實施例的方法可借助軟件加必需的通用硬件平臺的方式來實現(xiàn),當然也可以通過硬件,但很多情況下前者是更佳的實施方式。基于這樣的理解,本發(fā)明的技術方案本質(zhì)上或者說對現(xiàn)有技術做出貢獻的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)(如ROM/RAM、磁碟、光盤)中,包括若干指令用以使得一臺終端設備(可以是手機,計算機,服務器,或者網(wǎng)絡設備等)執(zhí)行本發(fā)明各個實施例所述的方法。本發(fā)明的實施例還提供了一種存儲介質(zhì)。可選地,在本實施例中,上述存儲介質(zhì)可以被設置為存儲用于執(zhí)行上述實施例方法步驟的程序代碼:可選地,在本實施例中,上述存儲介質(zhì)可以包括但不限于:U盤、只讀存儲器(ROM,Read-OnlyMemory)、隨機存取存儲器(RAM,RandomAccessMemory)、移動硬盤、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)??蛇x地,在本實施例中,處理器根據(jù)存儲介質(zhì)中已存儲的程序代碼執(zhí)行上述實施例的方法步驟。顯然,本領域的技術人員應該明白,上述的本發(fā)明的各模塊或各步驟可以用通用的計算裝置來實現(xiàn),它們可以集中在單個的計算裝置上,或者分布在多個計算裝置所組成的網(wǎng)絡上,可選地,它們可以用計算裝置可執(zhí)行的程序代碼來實現(xiàn),從而,可以將它們存儲在存儲裝置中由計算裝置來執(zhí)行,并且在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟,或者將它們分別制作成各個集成電路模塊,或者將它們中的多個模塊或步驟制作成單個集成電路模塊來實現(xiàn)。這樣,本發(fā)明不限制于任何特定的硬件和軟件結合。以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領域的技術人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。當前第1頁1 2 3 當前第1頁1 2 3