數據庫測試 軟件測試
隨著軟件業的迅猛發展,我們的開發也從以前的單層結構進入了三層架構甚至現在多層架構的設計,而數據庫從以前一個默默無聞的后臺倉庫,逐漸成為了數據庫系統,而數據庫開發設計人員成為了炙手可熱的核心人員。以前我們往往把數據庫操作寫在應用層,從而提高各個模塊的獨立性和易用性,而現在越來越多的數據庫操作被作為存儲過程直接放在數據庫上進行執行來提高執行效率和提高安全性。
數據庫開發既然在軟件開發的比重逐步提高,隨之而來的問題也突出。我們以前往往重視對代碼的測試工作,隨著流程技術的日益完善,軟件質量得到了大幅度的提高,但數據庫方面的測試仍然處于空白。我們從來沒有真正將數據庫作為一個獨立的系統進行測試,而是通過對代碼的測試工作間接對數據庫進行一定的測試。隨著數據庫開發的日益升溫,數據庫測試也需要獨立出來進行符合自身特點的測試工作。數據庫開發和應用開發并沒有實質上的區別,所以軟件測試的方法同樣適用于數據庫測試
從測試過程的角度來說我們也可以把數據庫測試分為
系統測試
傳統軟件系統測試的測試重點是需求覆蓋,而對于我們的數據庫測試同樣也需要對需求覆蓋進行保證。那么數據庫在初期設計中也需要對這個進行分析,測試.例如存儲過程,視圖,觸發器,約束,規則等我們都需要進行需求的驗證確保這些功能設計是符合需求的.另一方面我們需要確認數據庫設計文檔和最終的數據庫相同,當設計文檔變化時我們同樣要驗證改修改是否落實到數據庫上。
這個階段我們的測試主要通過數據庫設計評審來實現。
集成測試
集成測試是主要針對接口進行的測試工作,從數據庫的角度來說和普通測試稍微有些區別對于數據庫測試來說,需要考慮的是
數據項的修改操作
數據項的增加操作
數據項的刪除操作
數據表增加滿
數據表刪除空
刪除空表中的記錄
數據表的并發操作
針對存儲過程的接口測試
結合業務邏輯做關聯表的接口測試
同樣我們需要對這些接口考慮采用等價類、邊界值、錯誤猜測等方法進行測試
單元測試
單元測試側重于邏輯覆蓋,相對對于復雜的代碼來說,數據庫開發的單元測試相對簡單些,可以通過語句覆蓋和走讀的方式完成
系統測試相對來說比較困難,這要求有很高的數據庫設計能力和豐富的數據庫測試經驗。而集成測試和單元測試就相對簡單了。
而我們也可以從測試關注點的角度對數據庫進行分類
功能測試
對數據庫功能的測試我們可以依賴與工具進行
DBunit
一款開源的數據庫功能測試框架,可以使用類似與Junit的方式對數據庫的基本操作進行白盒的單元測試,對輸入輸出進行校驗
QTP
文章來源于領測軟件測試網 http://www.k11sc111.com/