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