摘 要: 提出了一種數(shù)據庫系統(tǒng)測試的輔助工具,用于解決規(guī)范化管理的數(shù)據庫系統(tǒng)測試項目中測試數(shù)據構建及測試結果保留效率低下的問題。其具體做法是,采用Excel工作表規(guī)范設計輸入數(shù)據和預期結果,再利用該工具完成一些簡單設定,可實現(xiàn)構造數(shù)據庫測試數(shù)據、獲取測試結果及實現(xiàn)執(zhí)行結果與預期結果比較等功能。經多個數(shù)據庫使用結果表明,該工具能生成規(guī)范的測試結果,并能減輕測試人員負擔,提高了測試效率。
關鍵詞: 數(shù)據庫系統(tǒng);測試工具;單元測試;回歸測試
規(guī)范化管理的軟件測試項目,從過程上劃分為:單元測試、集成測試、系統(tǒng)測試和驗收測試。如果在各個階段的測試中發(fā)現(xiàn)缺陷,在進行缺陷對應后還必須進行回歸測試。因此,規(guī)范化管理的軟件測試項目,其測試用例的設計必須包括輸入數(shù)據、執(zhí)行條件和預期結果。針對數(shù)據庫系統(tǒng)的測試項目,其測試用例的輸入數(shù)據、執(zhí)行條件和預期結果絕大部分體現(xiàn)在數(shù)據庫中的數(shù)據上,而這些數(shù)據在測試用例設計時,通常采用與關系數(shù)據庫模型類似的Excel工作表來呈現(xiàn)。規(guī)范化管理的軟件測試項目,針對各測試階段的每一個測試用例都必須留下完備的測試結果,而針對數(shù)據庫系統(tǒng)的測試結果很大一部分是數(shù)據庫中的數(shù)據。為便于清晰地呈現(xiàn)這些結果,通常是將測試結果存放在Excel工作表中。本文提出的測試工具正是對應這種規(guī)范化管理的測試項目而設計開發(fā)的。
采用自動化測試工具進行測試,能減輕測試人員負擔、提高測試效率及測試的準確性[1-2]。雖然20世紀90年代以來人們就充分認識到測試工具的重要性,軟件開發(fā)機構也相繼開發(fā)出了一些卓有成效的測試工具產品,但由于測試工具購入的成本及使用培訓成本較高,商用測試工具給軟件項目帶來的時間效率及經濟效率受到一定的限制;同時,由于軟件項目本身的復雜性,很難將測試工具充分貫穿于軟件測試項目。因此,在實際項目開發(fā)中,很多軟件開發(fā)組織并不采用商用軟件測試工具,而是針對項目特點,自行研發(fā)針對性強的輕量級輔助測試工具來改善測試過程。研究者針對數(shù)據庫系統(tǒng)的測試進行了大量探索,但探索的內容主要體現(xiàn)在測試方法和測試腳本的開發(fā)方面[1-4],對實際測試過程中細節(jié)部分的測試效率問題探索較少。而本文提出的測試工具主要針對在規(guī)范化管理的測試項目中,需要頻繁構建數(shù)據庫輸入和獲取測試結果這一特點而設計開發(fā)的,它能改善測試過程、提高測試效率。
1 應用需求
由于數(shù)據庫系統(tǒng)會頻繁涉及到對數(shù)據庫數(shù)據的操作,因此,測試用例的設計多數(shù)體現(xiàn)在數(shù)據庫數(shù)據的設計上。各測試用例的實施過程為制作測試數(shù)據、測試實施和結果判斷。其中,制作測試數(shù)據需要用設計的測試用例數(shù)據去更新數(shù)據庫,測試實施后需要判斷數(shù)據庫中相關數(shù)據是否與預期結果相吻合。作為測試證據的測試結果需要記錄下的信息包含:測試執(zhí)行前數(shù)據庫相關表的數(shù)據和測試執(zhí)行后相關表的數(shù)據。由此可見,在一個測試用例的測試過程中,需要分3次操作數(shù)據庫,其中1次為更新數(shù)據,另外2次為抽出數(shù)據。采用SQL-Server的數(shù)據庫系統(tǒng),通常使用企業(yè)管理器來操作數(shù)據庫數(shù)據;采用Oracle的數(shù)據庫系統(tǒng),通常使用Object Browser來操控數(shù)據庫數(shù)據。目前在測試過程中,采用這些工具操控數(shù)據,基本上還是人工操作,因此,仍然存在誤操作及操作效率低下的問題。如果能將測試過程中對數(shù)據的各種操作交給計算機來完成,可提高測試效率,避免誤操作的發(fā)生,并起到輔助測試的作用。為實現(xiàn)這一輔助測試功能,下面通過對餐飲管理系統(tǒng)點菜畫面的單元測試的用例設計和測試結果保留模式進行分析,探索計算機輔助測試的方法。
1.1 測試用例設計模式
圖1是采用Excel設計的點菜畫面的單元測試項目書,鑒于篇幅,這里只顯示了說明所需要的測試項目,對其他項目進行了隱藏。圖中用例編號(Case No)31用于測試點菜畫面的保存按鈕按下,在輸入檢查無誤的情況下,畫面中的數(shù)據是否正確登錄數(shù)據庫。
在進行數(shù)據庫系統(tǒng)的測試用例設計時,由于涉及的數(shù)據項較多,不便在測試項目書中列舉數(shù)據庫中的數(shù)據,通常采用Excel工作簿的另一張工作表來描述數(shù)據庫相關的輸入數(shù)據和預期結果,常用的設計格式如圖2所示。其中的信息包含:測試用例編號、測試執(zhí)行前后標記、表名、字段名及數(shù)據明細。其中的數(shù)據明細不是來自于數(shù)據庫,而是來自于人工設計;在測試執(zhí)行前需要用圖2中執(zhí)行前的數(shù)據去更新數(shù)據庫,采用人工方式可直接按行拷貝數(shù)據粘貼到數(shù)據庫表中,如果要求表中只包含所設計的測試數(shù)據,還需要先刪除表中的數(shù)據再拷貝粘貼數(shù)據。當涉及到多個表時,就需要人工不斷在Excel工作表和數(shù)據庫工具之間來回切換,操作十分繁瑣。如果按照一定的規(guī)范(圖2的樣式)設計測試用例,便可采用編程手段實現(xiàn)將Excel工作表中的數(shù)據自動寫入數(shù)據庫。
1.2 測試結果保留模式
很多項目也把測試結果稱作測試證據,留下測試結果除了便于測試人員判斷結果的正誤,很大程度上留下測試的證據也是為了便于管理。因此,保留的測試結果應詳細體現(xiàn)實施每一個測試用例的輸入數(shù)據、執(zhí)行條件、執(zhí)行過程及執(zhí)行結果,這些信息應足以體現(xiàn)測試用例的執(zhí)行過程,并且按照這些信息能再現(xiàn)測試結果。數(shù)據庫系統(tǒng)的測試結果通常采用Excel工作表來記錄,它既能保留截圖信息,又能直觀地保留數(shù)據庫中的數(shù)據。圖3是點菜畫面的Case No31-32的測試結果,包含測試執(zhí)行前后數(shù)據庫數(shù)據及畫面顯示內容的截圖。對其分析可知,采用編程手段實現(xiàn)抽出數(shù)據庫中數(shù)據并按圖3的格式保留數(shù)據是可以做到的。
2 工具的實現(xiàn)
分析測試用例設計模式和測試結果保留模式可得,在測試過程中對數(shù)據的處理包含兩部分:(1)將工作表中設計的測試數(shù)據追加到數(shù)據庫;(2)將數(shù)據庫數(shù)據作為測試結果抽出到Excel工作表中。也就是通過編程將圖2中的數(shù)據追加到數(shù)據庫以及將數(shù)據庫中的數(shù)據抽出可以實現(xiàn)如圖3所示將測試結果顯示在工作表中。因此,數(shù)據庫輔助測試工具可設計成如圖4(此截圖為數(shù)據抽出處理的設置畫面)所示的畫面。圖4操作界面中包含有:對數(shù)據庫的連接關閉處理區(qū)、對Excel文件的打開關閉處理區(qū)、功能選項區(qū)、SQL編輯區(qū)及格式設定區(qū)。其主要功能就是實現(xiàn)輸入數(shù)據做成、測試結果做成及測試配置的保存。下面詳細分析各部分的實現(xiàn)。
2.1 輸入數(shù)據做成處理
輸入數(shù)據做成即是將設計的測試數(shù)據追加到數(shù)據庫中,圖2的數(shù)據包含描述性文字(執(zhí)行前、執(zhí)行后)、表名、字段名、字段值及數(shù)據結束標志(*****END*****),數(shù)據結束標志用于標識某數(shù)據表數(shù)據結束。利用這些數(shù)據可以提取出需要更新的表名、字段名及數(shù)據。利用圖4所示工具,建立數(shù)據庫連接、指定工作表及向數(shù)據庫追加數(shù)據的開始和結束行號,功能選項設為“數(shù)據插入”。單擊執(zhí)行按鈕的處理流程如圖5所示。圖中,“刪除現(xiàn)存數(shù)據”復選按鈕用于選擇更新數(shù)據前是否刪除數(shù)據庫中現(xiàn)存的數(shù)據,若選擇刪除現(xiàn)存數(shù)據,則需要讀取數(shù)據庫中所有用戶表名,逐一刪除后再向數(shù)據庫追加數(shù)據;過程①實現(xiàn)讀取工作表中的表名及字段名,形成INSERT語句到VALUES為止的前半部分SQL語句,當遇到數(shù)據結束標志時,再次調用過程①重置SQL語句的前半部分;過程②實現(xiàn)讀取該行單元格數(shù)據,并將數(shù)據拼接到過程①形成的SQL語句,拼接完成則執(zhí)行該語句,實現(xiàn)數(shù)據向數(shù)據庫的追加。
2.2 測試結果做成處理
測試結果做成處理主要完成用例執(zhí)行前后數(shù)據庫相關表數(shù)據的獲取,其實質就是根據SQL語句抽出數(shù)據,將數(shù)據結果保留到Excel工作表中。如圖4的參數(shù)設定,這里只需要指定開始行號,即指定從工作表的哪一行開始保留抽出數(shù)據,逐一讀取“抽出數(shù)據的SQL語句”中的SQL語句,從語句中取出表名,根據表名獲取字段名寫入工作表,再執(zhí)行SQL語句抽出數(shù)據寫入工作表,同時按照“抽出數(shù)據的格式設定”進行工作表數(shù)據的格式設定,所得測試結果規(guī)范且便于結果判定。
2.3 測試結果比較處理
為了驗證測試結果是否與預期結果相吻合,本測試工具還設計了數(shù)據比較功能。單擊主畫面的“結果比較”按鈕,打開如圖6所示的測試結果比較畫面,在畫面中分別設定參與比較的文件名、工作表名、開始及結束行號,即可對指定部分的數(shù)據進行比較,從而檢驗測試結果是否與預期結果一致。
2.4 測試配置保存處理
圖4所示的執(zhí)行畫面中,完成數(shù)據插入功能畫面設定內容較少,但完成數(shù)據抽出功能涉及的畫面設定較多。為便于回歸測試,本工具還設計了配置保存功能,用于將畫面現(xiàn)有配置保存到指定的ini文件中,便于在需要再次執(zhí)行某測試用例時,可通過“選擇配置”實現(xiàn)讀入指定ini文件內容進行畫面參數(shù)的設定。這一功能將保證回歸測試及驗收測試的測試效率。
本文介紹的數(shù)據庫輔助測試工具在多個項目的測試中已被采用,實踐證明了采用此輔助測試工具進行測試,可快速生成輸入數(shù)據及保留測試結果,其保留的測試結果與單元測試的結果要求的吻合度較高,其效率在單元測試過程中體現(xiàn)更為突出;同時在驗收測試中需要重現(xiàn)測試結果時,采用本工具也能快速完成測試,提高了測試效率;不僅能產生規(guī)范的測試文檔,還能減輕測試負擔。
參考文獻
[1] 曹娜.大型關系數(shù)據庫自動化測試工具的設計與實現(xiàn)[D].武漢:華中科技大學,2009.
[2] 王逸兮.一個數(shù)據庫功能性自動化測試系統(tǒng)的設計與實現(xiàn)[D].武漢:華中科技大學,2011.
[3] 曾強,駱德全,楊昊蘇,等.數(shù)據庫系統(tǒng)測試工具綜述 [J].科技風,2008(16):74.
[4] 王振鐸,陳曉范.數(shù)據庫系統(tǒng)測試方法與技術探討[J].中國民航飛行學院學報,2008(1):49.