黃 蔚
(廈門理工學(xué)院,廈門,361000)
進(jìn)行軟件測試的過程中其測試的核心是一個以關(guān)鍵字驅(qū)動為基礎(chǔ)的自動化回歸測試系統(tǒng)。在測試的過程中通過關(guān)鍵字驅(qū)動以及數(shù)據(jù)驅(qū)動開發(fā)上傳腳本。在這個過程中根據(jù)商業(yè)需求,要自動進(jìn)行多場測試,最后生成測試結(jié)果,這在極大程度上豐富了軟件測試的手段。
通常人們用于軟件測試的主要方法有白盒測試法以及黑盒測試法兩種;進(jìn)行軟件測試的策略可以分為單元測試、集成測試等幾種;從軟件的運(yùn)行狀態(tài)可以具體分為靜態(tài)測試和動態(tài)測試兩種[1]。
軟件自動化測試主要指的是通過對軟件編寫和指導(dǎo)性測試腳本,而且使用自動化測試工具對測試結(jié)果進(jìn)行分析的過程。在這個過程中一個良好的軟件測試腳本可以極大的節(jié)省測試時間提高軟件測試速度。
在進(jìn)行軟件測試的過程中關(guān)鍵字驅(qū)動技術(shù)主要任務(wù)是把數(shù)據(jù)文件轉(zhuǎn)化為測試用例的描述,在這個過程中使用關(guān)鍵字來制定需要執(zhí)行的任務(wù),這些關(guān)鍵字就存在于將要被測試的文件之中。但是,解釋這些關(guān)鍵字時需要用到其他的腳本。利用腳本來解讀存在與測試文件之中的關(guān)鍵字,在此基礎(chǔ)之上選擇相關(guān)的支持腳本,這樣就會使測試軟件和特殊應(yīng)用對控制腳本的約束大大降低。
在進(jìn)行軟件測試的過程中關(guān)鍵字驅(qū)動腳本是一種結(jié)構(gòu)化的腳本,在實(shí)用的過程中其控制腳本主要采用IF語句或者采用循環(huán)語句在被測試的文件之中讀取各種數(shù)據(jù),相關(guān)被測試內(nèi)容的所有信息都包括在了信息數(shù)據(jù)表之中,因此測試信息與實(shí)現(xiàn)的分離是這種技術(shù)的最大特點(diǎn)[2]。
捕獲/回放測試框架的主要優(yōu)點(diǎn)體現(xiàn)在,測試過程中十分簡便,在使用的過程中只要通過錄制就可以獲得所學(xué)要的腳本。其缺點(diǎn)主要體現(xiàn)在沒有邏輯判斷力,同時該框架的維護(hù)性比較差、工作效率比較低。
關(guān)鍵字自動化測試框架的特點(diǎn)可以簡要的概括為三個分離,其主要指的是:界面元素名與測試內(nèi)部對象名的分離;測試描述與具體實(shí)現(xiàn)細(xì)節(jié)的分離;腳本與數(shù)據(jù)的分離;這三個分離互相獨(dú)立,最大程度地減少相互之間的影響。
在進(jìn)行軟件測試的過程中,前面的測試步驟是容易出現(xiàn)錯誤的環(huán)節(jié),其主要原因在于測試工作人員沒有記清楚進(jìn)行測試的環(huán)節(jié),導(dǎo)致了很多測試步驟不能夠進(jìn)行重復(fù)。除此之外,在進(jìn)行軟件開發(fā)的過程中,為了避免開發(fā)軟件的故障,以改善開發(fā)軟件的總體性能,需要對代碼進(jìn)行修改。對軟件代碼進(jìn)行手動修改的效率十分低,在這個過程中使用軟件測試工具,則必須要提供捕獲用戶操作的能力以及代碼被修改后自動重播用戶的操作的功能。
在進(jìn)行操作的過程中捕獲/回放功能可以及時將用戶的鼠標(biāo)和鍵盤輸入的信息記錄下來,當(dāng)然在這個過程之中軟件的具體響應(yīng)也在記錄事項之內(nèi)。當(dāng)對修改后的軟件進(jìn)行測試之時,就可以利用回放功能將之前所做的輸入操作應(yīng)用到被修改的軟件之中,通過前后測試響應(yīng)的比較就可以得出修改后的軟件有沒有發(fā)生新的錯誤[3]。
捕獲/回放工具是通過窗口組件的標(biāo)題來識別窗口。它能有效回放基于測試覆蓋分析和測試用例最小化基礎(chǔ)上最小測試用例集合 。
包括記錄器和回放器。捕獲和回放工具可以將所有的GUI輸入進(jìn)行捕獲。
在進(jìn)行測試之時,記錄器被類裝載器裝入被測試的Java程序之中。在此之后,通過對應(yīng)用程序事件隊列的監(jiān)視,就錄下所有的用戶輸入事件。在此基礎(chǔ)之上按照事件發(fā)生不同順序?qū)r間相關(guān)信息存儲到記錄文本文件中。對于用戶輸入事件,需要保存基本信息和時間間隔,用于同步控制回放。
事件生成器從記錄文件中依次讀出所有的事件。根據(jù)事件記錄文件還原鼠標(biāo)或鍵盤事件。
在進(jìn)行事件的回放時通過對截獲的系統(tǒng)事件與系統(tǒng)記錄的事件之間的對比,可以判斷出在進(jìn)行回放的過程中是否出現(xiàn)以外,并決定是否進(jìn)行下一個事件的回放。
捕獲/回放工具除了可以對用戶的輸入時間進(jìn)行捕獲之外,其更大的作用是能夠?qū)τ脩舻妮斎胧录M(jìn)行回放?;胤诺谋匾獥l件是記錄下連續(xù)兩個輸入事件的間隔時間?;胤艜r,保證發(fā)生的系統(tǒng)事件都按捕獲時的順序出現(xiàn)過。比如某個窗體/容器沒有出現(xiàn)。在進(jìn)行事件回放時,必須要保證回放的事件是真實(shí)有效的[4]。
軟件測試自動化工具對提高軟件測試的效率起到很大的作用。本文在分析自動化測試技術(shù)的基礎(chǔ)上,描述了基于關(guān)鍵字驅(qū)動的自動化測試實(shí)現(xiàn)流程,并根據(jù)工作流程設(shè)計軟件的自動化測試用戶事件的捕獲和回放工具。
[1]舒智勇.軟件測試自動化技術(shù)與實(shí)例詳解[M].北京:電子工業(yè)出版社.
[2]王莉,殷鋒,李奇.軟件自動化測試腳本設(shè)計研究.西南民族大學(xué)學(xué)報(自然科學(xué)版).2006,32(2):357-360
[3]侯勇.關(guān)鍵字驅(qū)動的自動化測試系統(tǒng)的研究:(碩士學(xué)位論文).西安電子科技大學(xué),2006.
[4]張湘輝.軟件開發(fā)的過程與管理[M].北京:清華大學(xué)出版社,2005.