劉冠梅
摘要:測(cè)試驅(qū)動(dòng)開(kāi)發(fā)是一種強(qiáng)調(diào)測(cè)試先行開(kāi)發(fā)的軟件開(kāi)發(fā)方式。本文先介紹測(cè)試驅(qū)動(dòng)開(kāi)發(fā)TDD的特點(diǎn),基于TDD實(shí)現(xiàn)圖形用戶(hù)界面的難點(diǎn)主要闡述了測(cè)試驅(qū)動(dòng)開(kāi)發(fā)在天大語(yǔ)言TJUL整個(gè)圖形界面GUI的實(shí)現(xiàn)應(yīng)用,最后對(duì)此次TDD實(shí)踐效果進(jìn)行評(píng)估。相比傳統(tǒng)手工測(cè)試,采用TDD方式實(shí)現(xiàn)GUI是一種有序、效率高的開(kāi)發(fā)方法。
關(guān)鍵詞:測(cè)試驅(qū)動(dòng)開(kāi)發(fā) TJUL 圖形用戶(hù)界面
中圖分類(lèi)號(hào):TP31 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9416(2014)08-0171-01
1 引言
現(xiàn)今社會(huì),快速變化和多樣性已成為時(shí)代的特點(diǎn)。人們尋求各種途徑來(lái)保證軟件的質(zhì)量。測(cè)試驅(qū)動(dòng)開(kāi)發(fā)TDD的出現(xiàn),將測(cè)試工作提高到一個(gè)新的高度——測(cè)試先于編碼。關(guān)于TDD的研究及實(shí)踐大部分集中在德國(guó)和美國(guó),在亞洲還沒(méi)有盛行開(kāi)來(lái)。[1]盡管TDD在國(guó)內(nèi)軟件開(kāi)發(fā)行業(yè)還沒(méi)有得到很好的實(shí)踐和驗(yàn)證,但它至少可能是一個(gè)解決當(dāng)前問(wèn)題值得嘗試的途徑。本文先分析測(cè)試驅(qū)動(dòng)實(shí)現(xiàn)GUI的難點(diǎn)所在及解決辦法,然后結(jié)合實(shí)際采用測(cè)試驅(qū)動(dòng)開(kāi)發(fā)TDD方法實(shí)現(xiàn)TJUL語(yǔ)言圖形化界面GUI,最后對(duì)實(shí)踐效果進(jìn)行評(píng)估。
2 GUI實(shí)現(xiàn)
2.1 測(cè)試驅(qū)動(dòng)GUI實(shí)現(xiàn)的難點(diǎn)
圖形用戶(hù)界面GUI的測(cè)試是一種比較特殊的測(cè)試。它不完全是對(duì)邏輯的驗(yàn)證、對(duì)運(yùn)算結(jié)果的判斷,還包括很強(qiáng)的與用戶(hù)的交互性。圖形界面被測(cè)目標(biāo)除了包括點(diǎn)擊按鈕觸發(fā)事件之類(lèi)的客觀內(nèi)容外,還有很多是與用戶(hù)的主觀因素緊密結(jié)合的:如顯示字體的大小、顏色是否美觀、比例是否勻稱(chēng)等。GUI測(cè)試要求操作的順序性、規(guī)律性強(qiáng),如層疊的下拉菜單。對(duì)于圖形界面的實(shí)現(xiàn),若繼續(xù)按照原有方式來(lái)驅(qū)動(dòng)實(shí)現(xiàn),則會(huì)導(dǎo)致待顯示的GUI內(nèi)部部件變成外部可存取的。
一方面要保證面向?qū)ο笤O(shè)計(jì)的數(shù)據(jù)封裝性,另一方面又要滿(mǎn)足TDD自動(dòng)化回歸測(cè)試要求。鑒于圖形用戶(hù)界面測(cè)試的特殊性,需要轉(zhuǎn)換測(cè)試策略,改用模擬測(cè)試方法,即通過(guò)模擬查找、觸發(fā)本應(yīng)由傳統(tǒng)測(cè)試人員手工進(jìn)行的GUI部件事件:如點(diǎn)擊按鈕、給文本框輸入信息、鼠標(biāo)雙擊事件等,從而實(shí)現(xiàn)了測(cè)試的自動(dòng)化。
2.2 測(cè)試驅(qū)動(dòng)實(shí)現(xiàn)GUI
在最高層次上開(kāi)始測(cè)試,應(yīng)考慮應(yīng)用程序?qū)⒆鍪裁炊皇强紤]單個(gè)方法如何實(shí)現(xiàn)。通過(guò)功能劃分進(jìn)行測(cè)試,盡量為它所做的每件事編寫(xiě)測(cè)試。
這里以“文件-打開(kāi)”菜單項(xiàng)操作部分為例,說(shuō)明如何測(cè)試驅(qū)動(dòng)實(shí)現(xiàn)圖形用戶(hù)界面GUI。對(duì)于打開(kāi)文件這一項(xiàng)測(cè)試任務(wù),需做的測(cè)試如下:
測(cè)試1:當(dāng)點(diǎn)擊打開(kāi)菜單項(xiàng)時(shí),當(dāng)且僅當(dāng)只彈出一個(gè)文件選擇對(duì)話(huà)框,并且對(duì)話(huà)框?yàn)榇蜷_(kāi)類(lèi)型。
測(cè)試2:編輯文本區(qū)域置空,結(jié)果和錯(cuò)誤文本區(qū)域回到初始化狀態(tài)。
測(cè)試3:標(biāo)題、打開(kāi)的默認(rèn)路徑是否正確,文本字段、確定、取消按鈕等部件是否顯示得當(dāng)。
測(cè)試4:當(dāng)從對(duì)話(huà)框中選擇了一文件并點(diǎn)擊確定后,文本編輯區(qū)能將其內(nèi)容顯示出來(lái),同時(shí)文件選擇對(duì)話(huà)框消失。
測(cè)試5:當(dāng)從文本框中輸入一文件名并點(diǎn)擊確定后,文本編輯區(qū)能將其內(nèi)容顯示出來(lái),同時(shí)文件選擇對(duì)話(huà)框消失。
測(cè)試6:當(dāng)輸入一個(gè)不存在的文件時(shí),應(yīng)彈出一個(gè)消息對(duì)話(huà)框,提示此文件不存在。
測(cè)試7:當(dāng)選擇取消按鈕之后,將什么也不做,即各個(gè)文本編輯區(qū)仍為初始狀態(tài),同時(shí)文件選擇對(duì)話(huà)框消失。
針對(duì)上述測(cè)試任務(wù)集,創(chuàng)建測(cè)試用例TestOpenFileItemAction,讓它派生自JFCTestCase類(lèi),首先在setUp()布置模擬測(cè)試環(huán)境:
當(dāng)布置完測(cè)試預(yù)置環(huán)境Fixture后,依據(jù)上述測(cè)試任務(wù)單,編寫(xiě)相應(yīng)測(cè)試方法。例如testTextContents()模擬測(cè)試點(diǎn)擊打開(kāi)后,各文本區(qū)域是否回到初始態(tài);測(cè)試方法testDialogCompents()模擬測(cè)試當(dāng)前是否僅彈出一個(gè)文件選擇對(duì)話(huà)框,以及對(duì)話(huà)框的各個(gè)部件是否存在、顯示得當(dāng);testOpenFromInputFile()模擬測(cè)試從文本字段中輸入要打開(kāi)的文件,比較文本編輯區(qū)內(nèi)容是否與源文件匹配;testReadWrongFile()模擬測(cè)試從文本字段中輸入不存在的文件的情況;testCancel()模擬測(cè)試選擇取消按鈕之后,文本編輯仍為空,并且文件選擇對(duì)話(huà)框立即消失等等。這里列舉選擇文件的測(cè)試方法:
為使編譯測(cè)試通過(guò),需在圖形界面框架類(lèi)AnalyFrame的初始化工作中增加相應(yīng)的菜單、監(jiān)聽(tīng)器及響應(yīng)菜單事件的處理。等綠條出現(xiàn)測(cè)試得以通過(guò)后,對(duì)代碼進(jìn)行重構(gòu)。
3 結(jié)語(yǔ)
本文先介紹了TDD開(kāi)發(fā)方法的特點(diǎn),然后結(jié)合實(shí)際,重點(diǎn)闡述了TDD實(shí)現(xiàn)圖形用戶(hù)界面GUI的難點(diǎn)及特殊性,并以一菜單項(xiàng)事件響應(yīng)功能為例具體介紹如何模擬測(cè)試驅(qū)動(dòng)實(shí)現(xiàn)整個(gè)圖形用戶(hù)界面,最后對(duì)此次實(shí)踐結(jié)果進(jìn)行評(píng)估。從評(píng)估結(jié)果來(lái)看,整個(gè)測(cè)試集的運(yùn)行在很短時(shí)間內(nèi)就可完成,這比傳統(tǒng)手工測(cè)試要快很多,而且優(yōu)勢(shì)性還體現(xiàn)在后期功能需擴(kuò)充完善時(shí),無(wú)需像傳統(tǒng)手工測(cè)試一樣要重新一步步測(cè)試一遍。
參考文獻(xiàn)
[1]陳果.基于測(cè)試驅(qū)動(dòng)開(kāi)發(fā)的軟件測(cè)試管理系統(tǒng)的研究[D].北京:中國(guó)科學(xué)院空間科學(xué)與應(yīng)用研究中心,2004.endprint
摘要:測(cè)試驅(qū)動(dòng)開(kāi)發(fā)是一種強(qiáng)調(diào)測(cè)試先行開(kāi)發(fā)的軟件開(kāi)發(fā)方式。本文先介紹測(cè)試驅(qū)動(dòng)開(kāi)發(fā)TDD的特點(diǎn),基于TDD實(shí)現(xiàn)圖形用戶(hù)界面的難點(diǎn)主要闡述了測(cè)試驅(qū)動(dòng)開(kāi)發(fā)在天大語(yǔ)言TJUL整個(gè)圖形界面GUI的實(shí)現(xiàn)應(yīng)用,最后對(duì)此次TDD實(shí)踐效果進(jìn)行評(píng)估。相比傳統(tǒng)手工測(cè)試,采用TDD方式實(shí)現(xiàn)GUI是一種有序、效率高的開(kāi)發(fā)方法。
關(guān)鍵詞:測(cè)試驅(qū)動(dòng)開(kāi)發(fā) TJUL 圖形用戶(hù)界面
中圖分類(lèi)號(hào):TP31 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9416(2014)08-0171-01
1 引言
現(xiàn)今社會(huì),快速變化和多樣性已成為時(shí)代的特點(diǎn)。人們尋求各種途徑來(lái)保證軟件的質(zhì)量。測(cè)試驅(qū)動(dòng)開(kāi)發(fā)TDD的出現(xiàn),將測(cè)試工作提高到一個(gè)新的高度——測(cè)試先于編碼。關(guān)于TDD的研究及實(shí)踐大部分集中在德國(guó)和美國(guó),在亞洲還沒(méi)有盛行開(kāi)來(lái)。[1]盡管TDD在國(guó)內(nèi)軟件開(kāi)發(fā)行業(yè)還沒(méi)有得到很好的實(shí)踐和驗(yàn)證,但它至少可能是一個(gè)解決當(dāng)前問(wèn)題值得嘗試的途徑。本文先分析測(cè)試驅(qū)動(dòng)實(shí)現(xiàn)GUI的難點(diǎn)所在及解決辦法,然后結(jié)合實(shí)際采用測(cè)試驅(qū)動(dòng)開(kāi)發(fā)TDD方法實(shí)現(xiàn)TJUL語(yǔ)言圖形化界面GUI,最后對(duì)實(shí)踐效果進(jìn)行評(píng)估。
2 GUI實(shí)現(xiàn)
2.1 測(cè)試驅(qū)動(dòng)GUI實(shí)現(xiàn)的難點(diǎn)
圖形用戶(hù)界面GUI的測(cè)試是一種比較特殊的測(cè)試。它不完全是對(duì)邏輯的驗(yàn)證、對(duì)運(yùn)算結(jié)果的判斷,還包括很強(qiáng)的與用戶(hù)的交互性。圖形界面被測(cè)目標(biāo)除了包括點(diǎn)擊按鈕觸發(fā)事件之類(lèi)的客觀內(nèi)容外,還有很多是與用戶(hù)的主觀因素緊密結(jié)合的:如顯示字體的大小、顏色是否美觀、比例是否勻稱(chēng)等。GUI測(cè)試要求操作的順序性、規(guī)律性強(qiáng),如層疊的下拉菜單。對(duì)于圖形界面的實(shí)現(xiàn),若繼續(xù)按照原有方式來(lái)驅(qū)動(dòng)實(shí)現(xiàn),則會(huì)導(dǎo)致待顯示的GUI內(nèi)部部件變成外部可存取的。
一方面要保證面向?qū)ο笤O(shè)計(jì)的數(shù)據(jù)封裝性,另一方面又要滿(mǎn)足TDD自動(dòng)化回歸測(cè)試要求。鑒于圖形用戶(hù)界面測(cè)試的特殊性,需要轉(zhuǎn)換測(cè)試策略,改用模擬測(cè)試方法,即通過(guò)模擬查找、觸發(fā)本應(yīng)由傳統(tǒng)測(cè)試人員手工進(jìn)行的GUI部件事件:如點(diǎn)擊按鈕、給文本框輸入信息、鼠標(biāo)雙擊事件等,從而實(shí)現(xiàn)了測(cè)試的自動(dòng)化。
2.2 測(cè)試驅(qū)動(dòng)實(shí)現(xiàn)GUI
在最高層次上開(kāi)始測(cè)試,應(yīng)考慮應(yīng)用程序?qū)⒆鍪裁炊皇强紤]單個(gè)方法如何實(shí)現(xiàn)。通過(guò)功能劃分進(jìn)行測(cè)試,盡量為它所做的每件事編寫(xiě)測(cè)試。
這里以“文件-打開(kāi)”菜單項(xiàng)操作部分為例,說(shuō)明如何測(cè)試驅(qū)動(dòng)實(shí)現(xiàn)圖形用戶(hù)界面GUI。對(duì)于打開(kāi)文件這一項(xiàng)測(cè)試任務(wù),需做的測(cè)試如下:
測(cè)試1:當(dāng)點(diǎn)擊打開(kāi)菜單項(xiàng)時(shí),當(dāng)且僅當(dāng)只彈出一個(gè)文件選擇對(duì)話(huà)框,并且對(duì)話(huà)框?yàn)榇蜷_(kāi)類(lèi)型。
測(cè)試2:編輯文本區(qū)域置空,結(jié)果和錯(cuò)誤文本區(qū)域回到初始化狀態(tài)。
測(cè)試3:標(biāo)題、打開(kāi)的默認(rèn)路徑是否正確,文本字段、確定、取消按鈕等部件是否顯示得當(dāng)。
測(cè)試4:當(dāng)從對(duì)話(huà)框中選擇了一文件并點(diǎn)擊確定后,文本編輯區(qū)能將其內(nèi)容顯示出來(lái),同時(shí)文件選擇對(duì)話(huà)框消失。
測(cè)試5:當(dāng)從文本框中輸入一文件名并點(diǎn)擊確定后,文本編輯區(qū)能將其內(nèi)容顯示出來(lái),同時(shí)文件選擇對(duì)話(huà)框消失。
測(cè)試6:當(dāng)輸入一個(gè)不存在的文件時(shí),應(yīng)彈出一個(gè)消息對(duì)話(huà)框,提示此文件不存在。
測(cè)試7:當(dāng)選擇取消按鈕之后,將什么也不做,即各個(gè)文本編輯區(qū)仍為初始狀態(tài),同時(shí)文件選擇對(duì)話(huà)框消失。
針對(duì)上述測(cè)試任務(wù)集,創(chuàng)建測(cè)試用例TestOpenFileItemAction,讓它派生自JFCTestCase類(lèi),首先在setUp()布置模擬測(cè)試環(huán)境:
當(dāng)布置完測(cè)試預(yù)置環(huán)境Fixture后,依據(jù)上述測(cè)試任務(wù)單,編寫(xiě)相應(yīng)測(cè)試方法。例如testTextContents()模擬測(cè)試點(diǎn)擊打開(kāi)后,各文本區(qū)域是否回到初始態(tài);測(cè)試方法testDialogCompents()模擬測(cè)試當(dāng)前是否僅彈出一個(gè)文件選擇對(duì)話(huà)框,以及對(duì)話(huà)框的各個(gè)部件是否存在、顯示得當(dāng);testOpenFromInputFile()模擬測(cè)試從文本字段中輸入要打開(kāi)的文件,比較文本編輯區(qū)內(nèi)容是否與源文件匹配;testReadWrongFile()模擬測(cè)試從文本字段中輸入不存在的文件的情況;testCancel()模擬測(cè)試選擇取消按鈕之后,文本編輯仍為空,并且文件選擇對(duì)話(huà)框立即消失等等。這里列舉選擇文件的測(cè)試方法:
為使編譯測(cè)試通過(guò),需在圖形界面框架類(lèi)AnalyFrame的初始化工作中增加相應(yīng)的菜單、監(jiān)聽(tīng)器及響應(yīng)菜單事件的處理。等綠條出現(xiàn)測(cè)試得以通過(guò)后,對(duì)代碼進(jìn)行重構(gòu)。
3 結(jié)語(yǔ)
本文先介紹了TDD開(kāi)發(fā)方法的特點(diǎn),然后結(jié)合實(shí)際,重點(diǎn)闡述了TDD實(shí)現(xiàn)圖形用戶(hù)界面GUI的難點(diǎn)及特殊性,并以一菜單項(xiàng)事件響應(yīng)功能為例具體介紹如何模擬測(cè)試驅(qū)動(dòng)實(shí)現(xiàn)整個(gè)圖形用戶(hù)界面,最后對(duì)此次實(shí)踐結(jié)果進(jìn)行評(píng)估。從評(píng)估結(jié)果來(lái)看,整個(gè)測(cè)試集的運(yùn)行在很短時(shí)間內(nèi)就可完成,這比傳統(tǒng)手工測(cè)試要快很多,而且優(yōu)勢(shì)性還體現(xiàn)在后期功能需擴(kuò)充完善時(shí),無(wú)需像傳統(tǒng)手工測(cè)試一樣要重新一步步測(cè)試一遍。
參考文獻(xiàn)
[1]陳果.基于測(cè)試驅(qū)動(dòng)開(kāi)發(fā)的軟件測(cè)試管理系統(tǒng)的研究[D].北京:中國(guó)科學(xué)院空間科學(xué)與應(yīng)用研究中心,2004.endprint
摘要:測(cè)試驅(qū)動(dòng)開(kāi)發(fā)是一種強(qiáng)調(diào)測(cè)試先行開(kāi)發(fā)的軟件開(kāi)發(fā)方式。本文先介紹測(cè)試驅(qū)動(dòng)開(kāi)發(fā)TDD的特點(diǎn),基于TDD實(shí)現(xiàn)圖形用戶(hù)界面的難點(diǎn)主要闡述了測(cè)試驅(qū)動(dòng)開(kāi)發(fā)在天大語(yǔ)言TJUL整個(gè)圖形界面GUI的實(shí)現(xiàn)應(yīng)用,最后對(duì)此次TDD實(shí)踐效果進(jìn)行評(píng)估。相比傳統(tǒng)手工測(cè)試,采用TDD方式實(shí)現(xiàn)GUI是一種有序、效率高的開(kāi)發(fā)方法。
關(guān)鍵詞:測(cè)試驅(qū)動(dòng)開(kāi)發(fā) TJUL 圖形用戶(hù)界面
中圖分類(lèi)號(hào):TP31 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9416(2014)08-0171-01
1 引言
現(xiàn)今社會(huì),快速變化和多樣性已成為時(shí)代的特點(diǎn)。人們尋求各種途徑來(lái)保證軟件的質(zhì)量。測(cè)試驅(qū)動(dòng)開(kāi)發(fā)TDD的出現(xiàn),將測(cè)試工作提高到一個(gè)新的高度——測(cè)試先于編碼。關(guān)于TDD的研究及實(shí)踐大部分集中在德國(guó)和美國(guó),在亞洲還沒(méi)有盛行開(kāi)來(lái)。[1]盡管TDD在國(guó)內(nèi)軟件開(kāi)發(fā)行業(yè)還沒(méi)有得到很好的實(shí)踐和驗(yàn)證,但它至少可能是一個(gè)解決當(dāng)前問(wèn)題值得嘗試的途徑。本文先分析測(cè)試驅(qū)動(dòng)實(shí)現(xiàn)GUI的難點(diǎn)所在及解決辦法,然后結(jié)合實(shí)際采用測(cè)試驅(qū)動(dòng)開(kāi)發(fā)TDD方法實(shí)現(xiàn)TJUL語(yǔ)言圖形化界面GUI,最后對(duì)實(shí)踐效果進(jìn)行評(píng)估。
2 GUI實(shí)現(xiàn)
2.1 測(cè)試驅(qū)動(dòng)GUI實(shí)現(xiàn)的難點(diǎn)
圖形用戶(hù)界面GUI的測(cè)試是一種比較特殊的測(cè)試。它不完全是對(duì)邏輯的驗(yàn)證、對(duì)運(yùn)算結(jié)果的判斷,還包括很強(qiáng)的與用戶(hù)的交互性。圖形界面被測(cè)目標(biāo)除了包括點(diǎn)擊按鈕觸發(fā)事件之類(lèi)的客觀內(nèi)容外,還有很多是與用戶(hù)的主觀因素緊密結(jié)合的:如顯示字體的大小、顏色是否美觀、比例是否勻稱(chēng)等。GUI測(cè)試要求操作的順序性、規(guī)律性強(qiáng),如層疊的下拉菜單。對(duì)于圖形界面的實(shí)現(xiàn),若繼續(xù)按照原有方式來(lái)驅(qū)動(dòng)實(shí)現(xiàn),則會(huì)導(dǎo)致待顯示的GUI內(nèi)部部件變成外部可存取的。
一方面要保證面向?qū)ο笤O(shè)計(jì)的數(shù)據(jù)封裝性,另一方面又要滿(mǎn)足TDD自動(dòng)化回歸測(cè)試要求。鑒于圖形用戶(hù)界面測(cè)試的特殊性,需要轉(zhuǎn)換測(cè)試策略,改用模擬測(cè)試方法,即通過(guò)模擬查找、觸發(fā)本應(yīng)由傳統(tǒng)測(cè)試人員手工進(jìn)行的GUI部件事件:如點(diǎn)擊按鈕、給文本框輸入信息、鼠標(biāo)雙擊事件等,從而實(shí)現(xiàn)了測(cè)試的自動(dòng)化。
2.2 測(cè)試驅(qū)動(dòng)實(shí)現(xiàn)GUI
在最高層次上開(kāi)始測(cè)試,應(yīng)考慮應(yīng)用程序?qū)⒆鍪裁炊皇强紤]單個(gè)方法如何實(shí)現(xiàn)。通過(guò)功能劃分進(jìn)行測(cè)試,盡量為它所做的每件事編寫(xiě)測(cè)試。
這里以“文件-打開(kāi)”菜單項(xiàng)操作部分為例,說(shuō)明如何測(cè)試驅(qū)動(dòng)實(shí)現(xiàn)圖形用戶(hù)界面GUI。對(duì)于打開(kāi)文件這一項(xiàng)測(cè)試任務(wù),需做的測(cè)試如下:
測(cè)試1:當(dāng)點(diǎn)擊打開(kāi)菜單項(xiàng)時(shí),當(dāng)且僅當(dāng)只彈出一個(gè)文件選擇對(duì)話(huà)框,并且對(duì)話(huà)框?yàn)榇蜷_(kāi)類(lèi)型。
測(cè)試2:編輯文本區(qū)域置空,結(jié)果和錯(cuò)誤文本區(qū)域回到初始化狀態(tài)。
測(cè)試3:標(biāo)題、打開(kāi)的默認(rèn)路徑是否正確,文本字段、確定、取消按鈕等部件是否顯示得當(dāng)。
測(cè)試4:當(dāng)從對(duì)話(huà)框中選擇了一文件并點(diǎn)擊確定后,文本編輯區(qū)能將其內(nèi)容顯示出來(lái),同時(shí)文件選擇對(duì)話(huà)框消失。
測(cè)試5:當(dāng)從文本框中輸入一文件名并點(diǎn)擊確定后,文本編輯區(qū)能將其內(nèi)容顯示出來(lái),同時(shí)文件選擇對(duì)話(huà)框消失。
測(cè)試6:當(dāng)輸入一個(gè)不存在的文件時(shí),應(yīng)彈出一個(gè)消息對(duì)話(huà)框,提示此文件不存在。
測(cè)試7:當(dāng)選擇取消按鈕之后,將什么也不做,即各個(gè)文本編輯區(qū)仍為初始狀態(tài),同時(shí)文件選擇對(duì)話(huà)框消失。
針對(duì)上述測(cè)試任務(wù)集,創(chuàng)建測(cè)試用例TestOpenFileItemAction,讓它派生自JFCTestCase類(lèi),首先在setUp()布置模擬測(cè)試環(huán)境:
當(dāng)布置完測(cè)試預(yù)置環(huán)境Fixture后,依據(jù)上述測(cè)試任務(wù)單,編寫(xiě)相應(yīng)測(cè)試方法。例如testTextContents()模擬測(cè)試點(diǎn)擊打開(kāi)后,各文本區(qū)域是否回到初始態(tài);測(cè)試方法testDialogCompents()模擬測(cè)試當(dāng)前是否僅彈出一個(gè)文件選擇對(duì)話(huà)框,以及對(duì)話(huà)框的各個(gè)部件是否存在、顯示得當(dāng);testOpenFromInputFile()模擬測(cè)試從文本字段中輸入要打開(kāi)的文件,比較文本編輯區(qū)內(nèi)容是否與源文件匹配;testReadWrongFile()模擬測(cè)試從文本字段中輸入不存在的文件的情況;testCancel()模擬測(cè)試選擇取消按鈕之后,文本編輯仍為空,并且文件選擇對(duì)話(huà)框立即消失等等。這里列舉選擇文件的測(cè)試方法:
為使編譯測(cè)試通過(guò),需在圖形界面框架類(lèi)AnalyFrame的初始化工作中增加相應(yīng)的菜單、監(jiān)聽(tīng)器及響應(yīng)菜單事件的處理。等綠條出現(xiàn)測(cè)試得以通過(guò)后,對(duì)代碼進(jìn)行重構(gòu)。
3 結(jié)語(yǔ)
本文先介紹了TDD開(kāi)發(fā)方法的特點(diǎn),然后結(jié)合實(shí)際,重點(diǎn)闡述了TDD實(shí)現(xiàn)圖形用戶(hù)界面GUI的難點(diǎn)及特殊性,并以一菜單項(xiàng)事件響應(yīng)功能為例具體介紹如何模擬測(cè)試驅(qū)動(dòng)實(shí)現(xiàn)整個(gè)圖形用戶(hù)界面,最后對(duì)此次實(shí)踐結(jié)果進(jìn)行評(píng)估。從評(píng)估結(jié)果來(lái)看,整個(gè)測(cè)試集的運(yùn)行在很短時(shí)間內(nèi)就可完成,這比傳統(tǒng)手工測(cè)試要快很多,而且優(yōu)勢(shì)性還體現(xiàn)在后期功能需擴(kuò)充完善時(shí),無(wú)需像傳統(tǒng)手工測(cè)試一樣要重新一步步測(cè)試一遍。
參考文獻(xiàn)
[1]陳果.基于測(cè)試驅(qū)動(dòng)開(kāi)發(fā)的軟件測(cè)試管理系統(tǒng)的研究[D].北京:中國(guó)科學(xué)院空間科學(xué)與應(yīng)用研究中心,2004.endprint