《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 測試測量 > 設(shè)計(jì)應(yīng)用 > 國產(chǎn)化數(shù)據(jù)庫管理系統(tǒng)軟件測試方法和技術(shù)研究
國產(chǎn)化數(shù)據(jù)庫管理系統(tǒng)軟件測試方法和技術(shù)研究
2016年微型機(jī)與應(yīng)用第21期
周顯明1,,李建軍1,,2
1.中國電子科技集團(tuán)公司第三十二研究所,上海 200233,;2. 廣西大學(xué) 計(jì)算機(jī)與電子信息學(xué)院,,廣西 南寧 530004
摘要: 隨著國產(chǎn)基礎(chǔ)軟件的快速發(fā)展,,市場上涌現(xiàn)了大量的國產(chǎn)化數(shù)據(jù)庫管理系統(tǒng)(DBMS)產(chǎn)品,,文章分析并給出了國產(chǎn)化數(shù)據(jù)庫管理系統(tǒng)軟件測試內(nèi)容,、測試方法和測試技術(shù)等,,對(duì)于從事國產(chǎn)化數(shù)據(jù)庫管理系統(tǒng)測試驗(yàn)證的技術(shù)人員有一定的參考借鑒意義,。
Abstract:
Key words :

  周顯明1,,李建軍1,2

  (1.中國電子科技集團(tuán)公司第三十二研究所,上海 200233,;2. 廣西大學(xué) 計(jì)算機(jī)與電子信息學(xué)院,,廣西 南寧 530004)

       摘要:隨著國產(chǎn)基礎(chǔ)軟件的快速發(fā)展,市場上涌現(xiàn)了大量的國產(chǎn)化數(shù)據(jù)庫管理系統(tǒng)(DBMS)產(chǎn)品,,文章分析并給出了國產(chǎn)化數(shù)據(jù)庫管理系統(tǒng)軟件測試內(nèi)容,、測試方法和測試技術(shù)等,對(duì)于從事國產(chǎn)化數(shù)據(jù)庫管理系統(tǒng)測試驗(yàn)證的技術(shù)人員有一定的參考借鑒意義,。

  關(guān)鍵詞:國產(chǎn)化,;數(shù)據(jù)庫管理系統(tǒng);測試驗(yàn)證,;測試規(guī)范

0引言

  在信息化建設(shè)日益重要的今天,,核心基礎(chǔ)軟件的作用越來越被政府和企業(yè)的信息化主管所重視。其中,,數(shù)據(jù)庫作為基礎(chǔ)軟件的重要組成之一,,對(duì)于IT系統(tǒng)的重要性不言而喻?;趪a(chǎn)基礎(chǔ)軟硬件平臺(tái)電子政務(wù)系統(tǒng)的應(yīng)用,,是保障國家信息安全、促進(jìn)基于國產(chǎn)基礎(chǔ)軟硬件技術(shù)發(fā)展的有力手段,。近幾年,,隨著國產(chǎn)基礎(chǔ)軟硬件在性能和穩(wěn)定性方面的快速發(fā)展,出現(xiàn)了大量基于國產(chǎn)化數(shù)據(jù)庫管理系統(tǒng)構(gòu)建的電子政務(wù)系統(tǒng),,但是由于國產(chǎn)軟硬件技術(shù)與國外同類技術(shù)相比仍存在較大差距,,一些國產(chǎn)化數(shù)據(jù)庫管理系統(tǒng)在國產(chǎn)基礎(chǔ)軟硬件平臺(tái)下運(yùn)行一段時(shí)間后,會(huì)出現(xiàn)各種問題,對(duì)國產(chǎn)化數(shù)據(jù)庫管理系統(tǒng)進(jìn)行第三方檢測成為亟待解決的實(shí)際問題,。因此研究其軟件測試方法和技術(shù)具有重要的意義,,國內(nèi)外研究人員已經(jīng)對(duì)數(shù)據(jù)庫管理系統(tǒng)的測試進(jìn)行了大量研究[13],但目前還未形成系統(tǒng)成熟的測試方法,,本文主要針對(duì)國產(chǎn)化數(shù)據(jù)庫管理系統(tǒng)的測試內(nèi)容和測試方法進(jìn)行研究,。

1DBMS測試內(nèi)容

  國產(chǎn)數(shù)據(jù)庫基礎(chǔ)軟件的測試主要從數(shù)據(jù)庫管理系統(tǒng)的基本功能組件[4] 進(jìn)行,包括事務(wù)處理,、支持?jǐn)?shù)據(jù)類型,、內(nèi)置函數(shù)、完整性約束,、數(shù)據(jù)庫管理,、基表管理、視圖,、索引管理,、存儲(chǔ)過程和觸發(fā)器等。

2DBMS組件測試

  2.1事務(wù)處理

  事務(wù)控制能夠控制事務(wù)的開始,、結(jié)束,、回滾及自動(dòng)提交事務(wù)。測試時(shí)應(yīng)覆蓋以下內(nèi)容:

 ?。?)使用事務(wù)控制語句設(shè)定事務(wù)提交狀態(tài)(自動(dòng)提交),,設(shè)定完成后執(zhí)行事務(wù)(不包含begin語句)并回滾,查看回滾后的結(jié)果(回滾語句無作用),,驗(yàn)證軟件是否支持自動(dòng)提交事務(wù),;

  (2)使用事務(wù)控制語句(開始,、結(jié)束,、提交)執(zhí)行事務(wù),查看語句執(zhí)行結(jié)束后的數(shù)據(jù)庫信息(事務(wù)控制語句已執(zhí)行),,驗(yàn)證事務(wù)的開始,、結(jié)束、提交功能的正確性,;

  (3)使用事務(wù)控制語句執(zhí)行事務(wù),,查看語句執(zhí)行結(jié)束后的數(shù)據(jù)庫信息(未執(zhí)行該事務(wù)),,驗(yàn)證事務(wù)回滾功能的正確性。

  支持事務(wù)隔離級(jí)別:SERIALIZABLE,、READ COMMITTED,。測試時(shí)應(yīng)覆蓋以下內(nèi)容:

  (1)設(shè)定事務(wù)隔離級(jí)別為SERIALIZABLE,并開啟2個(gè)會(huì)話,,會(huì)話1修改數(shù)據(jù)庫,,會(huì)話2進(jìn)行查詢,查看會(huì)話2的查詢結(jié)果是否包含會(huì)話1的修改數(shù)據(jù)(不包含修改數(shù)據(jù)結(jié)果),,驗(yàn)證軟件是否滿足SERIALIZABLE隔離級(jí)別的要求,;

  (2)設(shè)定事務(wù)隔離級(jí)別為READ COMMITTED,,并開啟2個(gè)會(huì)話,,會(huì)話1修改數(shù)據(jù)庫,會(huì)話2進(jìn)行查詢,,查看會(huì)話2的查詢結(jié)果是否包含會(huì)話1的修改數(shù)據(jù)(包含修改數(shù)據(jù)結(jié)果),,驗(yàn)證軟件是否滿足READ COMMITTED隔離級(jí)別的要求。

  2.2支持?jǐn)?shù)據(jù)類型

  設(shè)定能對(duì)以下各數(shù)據(jù)類型進(jìn)行增刪改查:字符串,、數(shù)值,、日期時(shí)間、布爾,、位串,、二進(jìn)制串、大對(duì)象,、XML,、時(shí)間間隔。

  測試時(shí)應(yīng)覆蓋以下內(nèi)容:

 ?。?)在數(shù)據(jù)庫表中添加數(shù)據(jù),,添加的數(shù)據(jù)類型包括字符串、數(shù)值,、日期時(shí)間,、布爾、位串,、二進(jìn)制串,、大對(duì)象、XML,、時(shí)間間隔,,完成后對(duì)所添加的數(shù)據(jù)進(jìn)行查詢,查看查詢結(jié)果顯示的數(shù)據(jù)是否正確,,驗(yàn)證數(shù)據(jù)庫是否支持各數(shù)據(jù)類型的添加,、查詢;

 ?。?)在已有的數(shù)據(jù)庫表中修改,、刪除數(shù)據(jù)類型,,并進(jìn)行查詢,驗(yàn)證數(shù)據(jù)庫是否支持?jǐn)?shù)據(jù)類型的修改,、刪除,。

  2.3支持多字符集

  測試時(shí),設(shè)定服務(wù)器及客戶端為不同字符集(GBK,、ASCII,、GB18030、UNICODE),,使用客戶端訪問數(shù)據(jù)庫,,查看顯示的數(shù)據(jù)信息是否正確,驗(yàn)證軟件支持客戶端和服務(wù)器端編碼不一致時(shí)數(shù)據(jù)訪問的正確性,。

  2.4提供內(nèi)置函數(shù)

  驗(yàn)證數(shù)據(jù)庫管理系統(tǒng)提供字符串函數(shù),、數(shù)學(xué)函數(shù)、格式化函數(shù),、日期時(shí)間函數(shù),、聚集函數(shù)、管理函數(shù),。

  使用查詢語句對(duì)數(shù)據(jù)庫進(jìn)行查詢,,語句查詢條件中包含有字符串函數(shù)、數(shù)學(xué)函數(shù),、格式化函數(shù),、日期時(shí)間函數(shù)、聚集函數(shù),、管理函數(shù)的限定條件,,查看查詢結(jié)果,驗(yàn)證軟件是否提供各內(nèi)置函數(shù),。

  2.5提供完整性約束

 ?。?)實(shí)體完整性[5]

  驗(yàn)證數(shù)據(jù)庫表對(duì)象支持主鍵,當(dāng)用戶輸入數(shù)據(jù)不滿足實(shí)體完整性時(shí),,會(huì)報(bào)錯(cuò),。

  通過設(shè)定主鍵值為空或內(nèi)容與原記錄重復(fù),查看軟件是否提示錯(cuò)誤信息,,驗(yàn)證軟件是否滿足實(shí)體完整性要求,。

  (2)參照完整性

  數(shù)據(jù)庫表對(duì)象支持外鍵,,當(dāng)用戶輸入數(shù)據(jù)不滿足參照完整性時(shí),,會(huì)報(bào)錯(cuò)。測試時(shí)通過建立兩張基本表,,使用外鍵建立依賴關(guān)系,,在表中進(jìn)行插入數(shù)據(jù)且數(shù)據(jù)中的外鍵值為空或所對(duì)應(yīng)的值不存在(不滿足參照完整性),查看軟件是否提示錯(cuò)誤信息,,驗(yàn)證軟件是否滿足參照完整性要求,。

  (3)用戶定義完整性

  數(shù)據(jù)庫表對(duì)象支持各種約束,,當(dāng)用戶輸入數(shù)據(jù)不滿足約束時(shí),,會(huì)報(bào)錯(cuò)。

  測試時(shí)應(yīng)覆蓋以下內(nèi)容:通過設(shè)定完整性約束(如非空值約束,、唯一性約束等),,并在錄入數(shù)據(jù)時(shí)違反設(shè)定的完整性約束,查看軟件是否提示錯(cuò)誤信息,,驗(yàn)證軟件是否滿足用戶定義完整性要求,。

  2.6多數(shù)據(jù)庫管理

  驗(yàn)證DBMS支持可擴(kuò)展的邏輯和物理存儲(chǔ)結(jié)構(gòu),每個(gè)服務(wù)器可以支持多個(gè)獨(dú)立的數(shù)據(jù)庫,,用戶可以動(dòng)態(tài)地創(chuàng)建數(shù)據(jù)庫,,每個(gè)數(shù)據(jù)庫相對(duì)獨(dú)立。

 ?。?)通過創(chuàng)建多個(gè)數(shù)據(jù)庫,,在數(shù)據(jù)庫中創(chuàng)建表對(duì)象,查看創(chuàng)建的數(shù)據(jù)庫和表對(duì)象是否正確,,驗(yàn)證軟件是否支持多個(gè)獨(dú)立的數(shù)據(jù)庫,;

  (2)通過配置數(shù)據(jù)文件的存儲(chǔ)位置,、空間,、大小,并在各數(shù)據(jù)庫中添加內(nèi)容,,查看各數(shù)據(jù)庫數(shù)據(jù)存儲(chǔ)位置是否正確,,驗(yàn)證軟件是否支持可擴(kuò)展的邏輯和物理存儲(chǔ)結(jié)構(gòu)。

  2.7基表管理

  驗(yàn)證數(shù)據(jù)庫管理系統(tǒng)軟件能夠?qū)?shù)據(jù)庫表進(jìn)行管理,,測試時(shí)可參考以下方法:

 ?。?)通過表新建、表刪除,、表截?cái)嗖僮?,查看軟件是否完成表的新建、刪除和截?cái)?,?yàn)證軟件基表創(chuàng)建,、刪除和截?cái)喙δ艿恼_性;

 ?。?)通過對(duì)表記錄進(jìn)行插入,、刪除,、更新操作,查詢該表,,查看軟件是否完成相應(yīng)操作,,驗(yàn)證表記錄插入、刪除,、更新功能的正確性,;

  (3)通過在設(shè)計(jì)表中進(jìn)行列的增加,、刪除和類型修改,,查詢該表,查看軟件是否完成相應(yīng)操作,,驗(yàn)證列的增加,、刪除和類型修改功能的正確性。

  2.8視圖

  支持視圖管理,,包括視圖的創(chuàng)建,、刪除、查找,,對(duì)可更新視圖數(shù)據(jù)的增加,、修改、刪除,。

  測試時(shí)應(yīng)覆蓋以下內(nèi)容:

 ?。?)使用語句創(chuàng)建視圖,所創(chuàng)建視圖包括可更新視圖和不可更新視圖,,并對(duì)視圖進(jìn)行刪除,、查詢操作,驗(yàn)證視圖的創(chuàng)建,、刪除,、查詢功能的正確性;

 ?。?)在已有可更新視圖的基礎(chǔ)上增加,、刪除、修改視圖的數(shù)據(jù)內(nèi)容,,并查詢與視圖相關(guān)的基表信息,,查看修改的數(shù)據(jù)在基表中是否已被修改,驗(yàn)證可更新視圖是否能夠增加,、刪除,、修改數(shù)據(jù);

 ?。?)在不可更新視圖上進(jìn)行增加,、刪除,、修改操作,查看軟件是否對(duì)不可更新視圖的增加,、刪除,、修改操作進(jìn)行提示,驗(yàn)證軟件是否提示錯(cuò)誤,。

  2.9存儲(chǔ)過程和函數(shù)

  支持存儲(chǔ)過程的定義、刪除,、查詢,、更新、重編譯,;支持采用流程控制和SQL語句書寫存儲(chǔ)過程,,若干個(gè)有聯(lián)系的過程可以組合在一起構(gòu)成程序包,以完成復(fù)雜的判斷和較復(fù)雜的運(yùn)算,。

  測試時(shí)應(yīng)覆蓋以下內(nèi)容:

 ?。?)在數(shù)據(jù)庫中創(chuàng)建存儲(chǔ)過程(包含控制語句、條件表達(dá)式,、數(shù)學(xué)函數(shù),、存儲(chǔ)過程的嵌套調(diào)用),并調(diào)用該存儲(chǔ)過程,,查看數(shù)據(jù)庫內(nèi)容確定該存儲(chǔ)過程是否被正確執(zhí)行,,驗(yàn)證軟件是否支持存儲(chǔ)過程的創(chuàng)建;

 ?。?)對(duì)已有的存儲(chǔ)過程進(jìn)行查詢,,查看查詢結(jié)果(存儲(chǔ)過程信息、存儲(chǔ)過程狀態(tài))信息,,驗(yàn)證是否能夠?qū)ο到y(tǒng)的存儲(chǔ)過程進(jìn)行查詢,;

  (3)對(duì)已有的存儲(chǔ)過程進(jìn)行重命名,、重編譯,,并調(diào)用修改后的存儲(chǔ)過程,查看數(shù)據(jù)庫內(nèi)容確定該修改后存儲(chǔ)過程是否被正確執(zhí)行,,驗(yàn)證存儲(chǔ)過程能夠重命名,、重編譯;

 ?。?)刪除已有的存儲(chǔ)過程,,并查詢系統(tǒng)的存儲(chǔ)過程確定該存儲(chǔ)過程是否被刪除,驗(yàn)證軟件能夠刪除存儲(chǔ)過程,。

 ?。?)在多用戶的環(huán)境下,,賦予其他用戶(非數(shù)據(jù)庫所有者)執(zhí)行權(quán)限,并使用其他用戶執(zhí)行存儲(chǔ)過程,,查看數(shù)據(jù)庫內(nèi)容確定該存儲(chǔ)過程是否正確執(zhí)行,,驗(yàn)證是否支持將存儲(chǔ)過程的執(zhí)行權(quán)限賦予其他用戶。

  2.10觸發(fā)器

  觸發(fā)器測試時(shí)應(yīng)覆蓋以下內(nèi)容:

 ?。?)在數(shù)據(jù)庫表,、視圖中創(chuàng)建觸發(fā)器(觸發(fā)事件:DELETE、 INSERT ,、UPDATE,;觸發(fā)類型:事前觸發(fā)、事后觸發(fā),、語句級(jí)觸發(fā),、行級(jí)觸發(fā)),并觸發(fā)觸發(fā)器事務(wù),,查看審計(jì)信息中是否實(shí)現(xiàn)觸發(fā)器功能及事前,、事后觸發(fā)的正確性,驗(yàn)證是否支持觸發(fā)器的相應(yīng)功能及是否支持各類觸發(fā)事件及觸發(fā)類型,;

 ?。?)對(duì)數(shù)據(jù)庫表、視圖中已創(chuàng)建的觸發(fā)器進(jìn)行修改(變更觸發(fā)事件,、變更觸發(fā)類型,、變更觸發(fā)事務(wù)),并觸發(fā)觸發(fā)器事務(wù),,查看審計(jì)信息的事務(wù)信息(執(zhí)行修改后的觸發(fā)事務(wù)),,驗(yàn)證軟件能夠?qū)τ|發(fā)器進(jìn)行修改;

 ?。?)刪除數(shù)據(jù)庫表,、視圖中已創(chuàng)建的觸發(fā)器,并使用原觸發(fā)器觸發(fā)事件對(duì)數(shù)據(jù)庫進(jìn)行操作,,查看審計(jì)信息的事務(wù)信息(原觸發(fā)器觸發(fā)事務(wù)未執(zhí)行),,驗(yàn)證軟件是否能夠刪除觸發(fā)器。

3結(jié)束語

  數(shù)據(jù)庫作為國產(chǎn)化基礎(chǔ)軟件的重要組成之一,,如何對(duì)國產(chǎn)化數(shù)據(jù)庫管理系統(tǒng)進(jìn)行第三方檢測成為亟待解決的實(shí)際問題,。本文研究了國產(chǎn)化數(shù)據(jù)庫管理系統(tǒng)的測試方法和要點(diǎn),對(duì)于國產(chǎn)化數(shù)據(jù)庫管理系統(tǒng)的測試具有一定的參考價(jià)值,。本研究成果已被用于多個(gè)國產(chǎn)化DBMS測試工作中,,取得了較好的效果,下一階段的研究方向?yàn)槿绾尾捎脴I(yè)界的基準(zhǔn)測試工具進(jìn)行性能評(píng)測。

  參考文獻(xiàn)

 ?。?] 亓偉,葉曉俊,王建民. ODBC標(biāo)準(zhǔn)符合性測試框架[J]. 計(jì)算機(jī)工程,,2005,31(20):101-103.

 ?。?] 竇潔.基于國產(chǎn)基礎(chǔ)軟硬件平臺(tái)的辦公系統(tǒng)性能測試與優(yōu)化[D].北京:中國科學(xué)院大學(xué),,2014 .

  [3] 胡恩博.DBMS測試淺探[J]. 湖南第一師范學(xué)院學(xué)報(bào),,2009,,9(1):166-167.

  [4] 任冬梅.軟件測試技術(shù)基礎(chǔ)[M].北京:清華大學(xué)出版社,,2008.

 ?。?] 陳瑜,彭甫陽.關(guān)系數(shù)據(jù)庫管理系統(tǒng)的SQL—致性測試和性能基準(zhǔn)測試[J]. 計(jì)算機(jī)工程與應(yīng)用, 1999,,35(12):85-87.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。