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