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