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

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

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

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

  關鍵詞:國產化;數據庫管理系統,;測試驗證,;測試規(guī)范

0引言

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

1DBMS測試內容

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

2DBMS組件測試

  2.1事務處理

  事務控制能夠控制事務的開始,、結束,、回滾及自動提交事務。測試時應覆蓋以下內容:

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

 ?。?)使用事務控制語句(開始、結束,、提交)執(zhí)行事務,,查看語句執(zhí)行結束后的數據庫信息(事務控制語句已執(zhí)行),驗證事務的開始,、結束,、提交功能的正確性;

 ?。?)使用事務控制語句執(zhí)行事務,,查看語句執(zhí)行結束后的數據庫信息(未執(zhí)行該事務),驗證事務回滾功能的正確性,。

  支持事務隔離級別:SERIALIZABLE,、READ COMMITTED。測試時應覆蓋以下內容:

 ?。?)設定事務隔離級別為SERIALIZABLE,,并開啟2個會話,會話1修改數據庫,,會話2進行查詢,,查看會話2的查詢結果是否包含會話1的修改數據(不包含修改數據結果),驗證軟件是否滿足SERIALIZABLE隔離級別的要求,;

 ?。?)設定事務隔離級別為READ COMMITTED,并開啟2個會話,,會話1修改數據庫,,會話2進行查詢,查看會話2的查詢結果是否包含會話1的修改數據(包含修改數據結果),,驗證軟件是否滿足READ COMMITTED隔離級別的要求,。

  2.2支持數據類型

  設定能對以下各數據類型進行增刪改查:字符串、數值,、日期時間,、布爾、位串,、二進制串,、大對象、XML,、時間間隔,。

  測試時應覆蓋以下內容:

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

 ?。?)在已有的數據庫表中修改、刪除數據類型,,并進行查詢,,驗證數據庫是否支持數據類型的修改、刪除,。

  2.3支持多字符集

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

  2.4提供內置函數

  驗證數據庫管理系統提供字符串函數,、數學函數、格式化函數,、日期時間函數,、聚集函數、管理函數,。

  使用查詢語句對數據庫進行查詢,,語句查詢條件中包含有字符串函數、數學函數,、格式化函數,、日期時間函數、聚集函數、管理函數的限定條件,,查看查詢結果,,驗證軟件是否提供各內置函數。

  2.5提供完整性約束

 ?。?)實體完整性[5]

  驗證數據庫表對象支持主鍵,,當用戶輸入數據不滿足實體完整性時,會報錯,。

  通過設定主鍵值為空或內容與原記錄重復,,查看軟件是否提示錯誤信息,驗證軟件是否滿足實體完整性要求,。

 ?。?)參照完整性

  數據庫表對象支持外鍵,當用戶輸入數據不滿足參照完整性時,,會報錯,。測試時通過建立兩張基本表,使用外鍵建立依賴關系,,在表中進行插入數據且數據中的外鍵值為空或所對應的值不存在(不滿足參照完整性),,查看軟件是否提示錯誤信息,驗證軟件是否滿足參照完整性要求,。

 ?。?)用戶定義完整性

  數據庫表對象支持各種約束,當用戶輸入數據不滿足約束時,,會報錯,。

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

  2.6多數據庫管理

  驗證DBMS支持可擴展的邏輯和物理存儲結構,,每個服務器可以支持多個獨立的數據庫,用戶可以動態(tài)地創(chuàng)建數據庫,,每個數據庫相對獨立,。

  (1)通過創(chuàng)建多個數據庫,,在數據庫中創(chuàng)建表對象,,查看創(chuàng)建的數據庫和表對象是否正確,驗證軟件是否支持多個獨立的數據庫,;

 ?。?)通過配置數據文件的存儲位置,、空間、大小,,并在各數據庫中添加內容,,查看各數據庫數據存儲位置是否正確,驗證軟件是否支持可擴展的邏輯和物理存儲結構,。

  2.7基表管理

  驗證數據庫管理系統軟件能夠對數據庫表進行管理,,測試時可參考以下方法:

  (1)通過表新建,、表刪除,、表截斷操作,查看軟件是否完成表的新建,、刪除和截斷,,驗證軟件基表創(chuàng)建、刪除和截斷功能的正確性,;

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

 ?。?)通過在設計表中進行列的增加、刪除和類型修改,,查詢該表,,查看軟件是否完成相應操作,驗證列的增加,、刪除和類型修改功能的正確性,。

  2.8視圖

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

  測試時應覆蓋以下內容:

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

  (2)在已有可更新視圖的基礎上增加,、刪除,、修改視圖的數據內容,并查詢與視圖相關的基表信息,,查看修改的數據在基表中是否已被修改,,驗證可更新視圖是否能夠增加、刪除,、修改數據,;

  (3)在不可更新視圖上進行增加,、刪除,、修改操作,查看軟件是否對不可更新視圖的增加,、刪除,、修改操作進行提示,驗證軟件是否提示錯誤,。

  2.9存儲過程和函數

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

  測試時應覆蓋以下內容:

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

 ?。?)對已有的存儲過程進行查詢,查看查詢結果(存儲過程信息,、存儲過程狀態(tài))信息,,驗證是否能夠對系統的存儲過程進行查詢;

 ?。?)對已有的存儲過程進行重命名,、重編譯,并調用修改后的存儲過程,,查看數據庫內容確定該修改后存儲過程是否被正確執(zhí)行,,驗證存儲過程能夠重命名、重編譯,;

 ?。?)刪除已有的存儲過程,并查詢系統的存儲過程確定該存儲過程是否被刪除,,驗證軟件能夠刪除存儲過程,。

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

  2.10觸發(fā)器

  觸發(fā)器測試時應覆蓋以下內容:

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

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

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

3結束語

  數據庫作為國產化基礎軟件的重要組成之一,如何對國產化數據庫管理系統進行第三方檢測成為亟待解決的實際問題,。本文研究了國產化數據庫管理系統的測試方法和要點,,對于國產化數據庫管理系統的測試具有一定的參考價值。本研究成果已被用于多個國產化DBMS測試工作中,,取得了較好的效果,,下一階段的研究方向為如何采用業(yè)界的基準測試工具進行性能評測。

  參考文獻

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

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

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

  [4] 任冬梅.軟件測試技術基礎[M].北京:清華大學出版社,,2008.

 ?。?] 陳瑜,彭甫陽.關系數據庫管理系統的SQL—致性測試和性能基準測試[J]. 計算機工程與應用, 1999,,35(12):85-87.


此內容為AET網站原創(chuàng),,未經授權禁止轉載。