周顯明1,李建軍1,2
(1.中國電子科技集團公司第三十二研究所,上海 200233;2. 廣西大學 計算機與電子信息學院,廣西 南寧 530004)
摘要:隨著國產基礎軟件的快速發展,市場上涌現了大量的國產化數據庫管理系統(DBMS)產品,文章分析并給出了國產化數據庫管理系統軟件測試內容、測試方法和測試技術等,對于從事國產化數據庫管理系統測試驗證的技術人員有一定的參考借鑒意義。
關鍵詞:國產化;數據庫管理系統;測試驗證;測試規范
0引言
在信息化建設日益重要的今天,核心基礎軟件的作用越來越被政府和企業的信息化主管所重視。其中,數據庫作為基礎軟件的重要組成之一,對于IT系統的重要性不言而喻。基于國產基礎軟硬件平臺電子政務系統的應用,是保障國家信息安全、促進基于國產基礎軟硬件技術發展的有力手段。近幾年,隨著國產基礎軟硬件在性能和穩定性方面的快速發展,出現了大量基于國產化數據庫管理系統構建的電子政務系統,但是由于國產軟硬件技術與國外同類技術相比仍存在較大差距,一些國產化數據庫管理系統在國產基礎軟硬件平臺下運行一段時間后,會出現各種問題,對國產化數據庫管理系統進行第三方檢測成為亟待解決的實際問題。因此研究其軟件測試方法和技術具有重要的意義,國內外研究人員已經對數據庫管理系統的測試進行了大量研究[13],但目前還未形成系統成熟的測試方法,本文主要針對國產化數據庫管理系統的測試內容和測試方法進行研究。
1DBMS測試內容
國產數據庫基礎軟件的測試主要從數據庫管理系統的基本功能組件[4] 進行,包括事務處理、支持數據類型、內置函數、完整性約束、數據庫管理、基表管理、視圖、索引管理、存儲過程和觸發器等。
2DBMS組件測試
2.1事務處理
事務控制能夠控制事務的開始、結束、回滾及自動提交事務。測試時應覆蓋以下內容:
(1)使用事務控制語句設定事務提交狀態(自動提交),設定完成后執行事務(不包含begin語句)并回滾,查看回滾后的結果(回滾語句無作用),驗證軟件是否支持自動提交事務;
(2)使用事務控制語句(開始、結束、提交)執行事務,查看語句執行結束后的數據庫信息(事務控制語句已執行),驗證事務的開始、結束、提交功能的正確性;
(3)使用事務控制語句執行事務,查看語句執行結束后的數據庫信息(未執行該事務),驗證事務回滾功能的正確性。
支持事務隔離級別:SERIALIZABLE、READ COMMITTED。測試時應覆蓋以下內容:
(1)設定事務隔離級別為SERIALIZABLE,并開啟2個會話,會話1修改數據庫,會話2進行查詢,查看會話2的查詢結果是否包含會話1的修改數據(不包含修改數據結果),驗證軟件是否滿足SERIALIZABLE隔離級別的要求;
(2)設定事務隔離級別為READ COMMITTED,并開啟2個會話,會話1修改數據庫,會話2進行查詢,查看會話2的查詢結果是否包含會話1的修改數據(包含修改數據結果),驗證軟件是否滿足READ COMMITTED隔離級別的要求。
2.2支持數據類型
設定能對以下各數據類型進行增刪改查:字符串、數值、日期時間、布爾、位串、二進制串、大對象、XML、時間間隔。
測試時應覆蓋以下內容:
(1)在數據庫表中添加數據,添加的數據類型包括字符串、數值、日期時間、布爾、位串、二進制串、大對象、XML、時間間隔,完成后對所添加的數據進行查詢,查看查詢結果顯示的數據是否正確,驗證數據庫是否支持各數據類型的添加、查詢;
(2)在已有的數據庫表中修改、刪除數據類型,并進行查詢,驗證數據庫是否支持數據類型的修改、刪除。
2.3支持多字符集
測試時,設定服務器及客戶端為不同字符集(GBK、ASCII、GB18030、UNICODE),使用客戶端訪問數據庫,查看顯示的數據信息是否正確,驗證軟件支持客戶端和服務器端編碼不一致時數據訪問的正確性。
2.4提供內置函數
驗證數據庫管理系統提供字符串函數、數學函數、格式化函數、日期時間函數、聚集函數、管理函數。
使用查詢語句對數據庫進行查詢,語句查詢條件中包含有字符串函數、數學函數、格式化函數、日期時間函數、聚集函數、管理函數的限定條件,查看查詢結果,驗證軟件是否提供各內置函數。
2.5提供完整性約束
(1)實體完整性[5]
驗證數據庫表對象支持主鍵,當用戶輸入數據不滿足實體完整性時,會報錯。
通過設定主鍵值為空或內容與原記錄重復,查看軟件是否提示錯誤信息,驗證軟件是否滿足實體完整性要求。
(2)參照完整性
數據庫表對象支持外鍵,當用戶輸入數據不滿足參照完整性時,會報錯。測試時通過建立兩張基本表,使用外鍵建立依賴關系,在表中進行插入數據且數據中的外鍵值為空或所對應的值不存在(不滿足參照完整性),查看軟件是否提示錯誤信息,驗證軟件是否滿足參照完整性要求。
(3)用戶定義完整性
數據庫表對象支持各種約束,當用戶輸入數據不滿足約束時,會報錯。
測試時應覆蓋以下內容:通過設定完整性約束(如非空值約束、唯一性約束等),并在錄入數據時違反設定的完整性約束,查看軟件是否提示錯誤信息,驗證軟件是否滿足用戶定義完整性要求。
2.6多數據庫管理
驗證DBMS支持可擴展的邏輯和物理存儲結構,每個服務器可以支持多個獨立的數據庫,用戶可以動態地創建數據庫,每個數據庫相對獨立。
(1)通過創建多個數據庫,在數據庫中創建表對象,查看創建的數據庫和表對象是否正確,驗證軟件是否支持多個獨立的數據庫;
(2)通過配置數據文件的存儲位置、空間、大小,并在各數據庫中添加內容,查看各數據庫數據存儲位置是否正確,驗證軟件是否支持可擴展的邏輯和物理存儲結構。
2.7基表管理
驗證數據庫管理系統軟件能夠對數據庫表進行管理,測試時可參考以下方法:
(1)通過表新建、表刪除、表截斷操作,查看軟件是否完成表的新建、刪除和截斷,驗證軟件基表創建、刪除和截斷功能的正確性;
(2)通過對表記錄進行插入、刪除、更新操作,查詢該表,查看軟件是否完成相應操作,驗證表記錄插入、刪除、更新功能的正確性;
(3)通過在設計表中進行列的增加、刪除和類型修改,查詢該表,查看軟件是否完成相應操作,驗證列的增加、刪除和類型修改功能的正確性。
2.8視圖
支持視圖管理,包括視圖的創建、刪除、查找,對可更新視圖數據的增加、修改、刪除。
測試時應覆蓋以下內容:
(1)使用語句創建視圖,所創建視圖包括可更新視圖和不可更新視圖,并對視圖進行刪除、查詢操作,驗證視圖的創建、刪除、查詢功能的正確性;
(2)在已有可更新視圖的基礎上增加、刪除、修改視圖的數據內容,并查詢與視圖相關的基表信息,查看修改的數據在基表中是否已被修改,驗證可更新視圖是否能夠增加、刪除、修改數據;
(3)在不可更新視圖上進行增加、刪除、修改操作,查看軟件是否對不可更新視圖的增加、刪除、修改操作進行提示,驗證軟件是否提示錯誤。
2.9存儲過程和函數
支持存儲過程的定義、刪除、查詢、更新、重編譯;支持采用流程控制和SQL語句書寫存儲過程,若干個有聯系的過程可以組合在一起構成程序包,以完成復雜的判斷和較復雜的運算。
測試時應覆蓋以下內容:
(1)在數據庫中創建存儲過程(包含控制語句、條件表達式、數學函數、存儲過程的嵌套調用),并調用該存儲過程,查看數據庫內容確定該存儲過程是否被正確執行,驗證軟件是否支持存儲過程的創建;
(2)對已有的存儲過程進行查詢,查看查詢結果(存儲過程信息、存儲過程狀態)信息,驗證是否能夠對系統的存儲過程進行查詢;
(3)對已有的存儲過程進行重命名、重編譯,并調用修改后的存儲過程,查看數據庫內容確定該修改后存儲過程是否被正確執行,驗證存儲過程能夠重命名、重編譯;
(4)刪除已有的存儲過程,并查詢系統的存儲過程確定該存儲過程是否被刪除,驗證軟件能夠刪除存儲過程。
(5)在多用戶的環境下,賦予其他用戶(非數據庫所有者)執行權限,并使用其他用戶執行存儲過程,查看數據庫內容確定該存儲過程是否正確執行,驗證是否支持將存儲過程的執行權限賦予其他用戶。
2.10觸發器
觸發器測試時應覆蓋以下內容:
(1)在數據庫表、視圖中創建觸發器(觸發事件:DELETE、 INSERT 、UPDATE;觸發類型:事前觸發、事后觸發、語句級觸發、行級觸發),并觸發觸發器事務,查看審計信息中是否實現觸發器功能及事前、事后觸發的正確性,驗證是否支持觸發器的相應功能及是否支持各類觸發事件及觸發類型;
(2)對數據庫表、視圖中已創建的觸發器進行修改(變更觸發事件、變更觸發類型、變更觸發事務),并觸發觸發器事務,查看審計信息的事務信息(執行修改后的觸發事務),驗證軟件能夠對觸發器進行修改;
(3)刪除數據庫表、視圖中已創建的觸發器,并使用原觸發器觸發事件對數據庫進行操作,查看審計信息的事務信息(原觸發器觸發事務未執行),驗證軟件是否能夠刪除觸發器。
3結束語
數據庫作為國產化基礎軟件的重要組成之一,如何對國產化數據庫管理系統進行第三方檢測成為亟待解決的實際問題。本文研究了國產化數據庫管理系統的測試方法和要點,對于國產化數據庫管理系統的測試具有一定的參考價值。本研究成果已被用于多個國產化DBMS測試工作中,取得了較好的效果,下一階段的研究方向為如何采用業界的基準測試工具進行性能評測。
參考文獻
[1] 亓偉,葉曉俊,王建民. ODBC標準符合性測試框架[J]. 計算機工程,2005,31(20):101-103.
[2] 竇潔.基于國產基礎軟硬件平臺的辦公系統性能測試與優化[D].北京:中國科學院大學,2014 .
[3] 胡恩博.DBMS測試淺探[J]. 湖南第一師范學院學報,2009,9(1):166-167.
[4] 任冬梅.軟件測試技術基礎[M].北京:清華大學出版社,2008.
[5] 陳瑜,彭甫陽.關系數據庫管理系統的SQL—致性測試和性能基準測試[J]. 計算機工程與應用, 1999,35(12):85-87.