張鵬飛
廣東農工商職業技術學院510507
在整個軟件開發過程中,優秀的測試軟件是實現保證軟件開發質量、程序運行兼容性的重要途徑,通過軟件進行程序的自動化測試可以減少軟件測試的開銷、降低軟件開發的難度。但目前不少軟件測試工具由于并沒有統一的測試腳本標準,導致了其在測試自動化環節中很容易形成不兼容、甚至相互排斥的現象,從而導致進行軟件測試時需要反復解決軟件測試兼容的問題,而非軟件本身的測試。加上由于當前的自動化測試執行工具大都提供了自己的腳本語言和執行方法,這些腳本語言所含的信息非常豐富,操作性也很強,并且這些腳本信息所產生的維護性也非常高,導致執行腳本的語言解析能力開發難度也隨之增大,例如:Mercury Interactive公司的WinRunner,其軟件在整個執行過程中,需要人們提前設置大量的解釋器才能完成測試過程,這就導致了整個軟件測試的過程花費的時間很長,測試的難度增大。
所謂自動化測試框架,即是應用于自動化測試所使用的框架。按照框架的定義,自動化測試框架要么是提供可重用的基礎自動化測試模塊,如:selenium、watir等,它們主要提供最基礎的自動化測試功能,比如打開一個程序,模擬鼠標和鍵盤來點擊或操作被測試對象,最后再驗證被測對象的屬性以判斷程序的正確性;要么是可以提供自動化測試執行和管理功能的架構模塊,如:robot,STAF等,它們本身不提供基礎的自動化測試支持,只是用于組織、管理和執行那些獨立的自動化測試用例,測試完成后再統計測試結果,通常這類框架一般都會集成一個基礎自動化測試模塊,如:robot框架就可以集成selenium框架。
為了能夠更好的闡述測試工具中XML測試腳本和其他測試驅動程序間的相互轉化功能的實現,本文將設計一個基于XML的測試轉化工具,使其能夠通過將XML格式的腳本進行轉化的方式,將整個XML文檔內的數據進行分析和轉化,轉化之后的文件能夠在JAVA和C++當中運行。
從該軟件的功能實現上看,我們所需要設計的軟件應當具備以下功能:
(1)XML的腳本描述方式;
(2)自定義標簽的設置方式;
(3)JAVA和C++的程序轉換方式;
(4)JAVA類的測試方式;
(5)C++類的測試方式。
由于本軟件的開發目的是為了能夠將測試文檔進行轉化,因此在軟件開發的過程中,應當注意到整個測試腳本和測試語言之間的差異,例如:C++和C語言的差異,Java和C++之間的語言差異等,以便減少在軟件開發過程中由于語言差異而導致測試腳本出現錯誤的幾率。
本文所闡述的XML自動化轉化過程具體業務流程如圖1所示:

圖1 類自動測試業務流程
如圖1,待測代碼和測試數據需要編程人員編寫XML的測試腳本,此腳本能夠導入測試程序當中,而且還可以轉換成為HTML的測試用例報告,還能夠直接轉換成為測試驅動程序的代碼,整個測試驅動程序經過編譯執行之后,對于測試代碼的執行結果,測試系統會將其保存到測試日志當中,將測試日志和測試腳本相互結合,就轉換成了最終的測試報告。
根據模塊的可復用性,我們可以將整個測試用例劃分成以下的模塊進行。
(1)模塊功能
輸入測試用例和待測試的類,識別待測類的語法成分,生成XML測試腳本并輸出。
(2)模塊構成
腳本生成模塊是由程序運行的子模塊相互組合而成,主要有:
讀入程序模塊:此模塊將測試文件和測試程序讀入程序當中。
代碼格式化:將程序匯總中的程序通過轉化的形式進行讀取,并刪除注釋、成員函數等。
識別程序:對程序中的關鍵字符和關鍵代碼進行識別,提取出程序中的類名、函數名、參數名等,進行保存。
XML生成模塊:將讀入的代碼和程序通過標準化XML以及設計好的程序標簽進行轉化,設計出其運行的代碼和程序。
(3)模塊業務流程
腳本自動生成模塊讀入待測試的類源代碼,經代碼格式化,結合關鍵字符表進行關鍵字識別后,由DOM生成符合CTSS(Class Test Script Schema,類測試腳本模型)的XML腳本大綱;然后讀入測試數據,填入XML腳本大綱中,生成XML測試腳本并輸出。
根據上述基于XML的設計過程,實現了測試用例生成代碼和工具,通過反復測試,我們可以實現如下的設計目標和成果:
(1)在不同測試程序之間,程序運行無誤。
(2)在XML文檔轉換過程中,XML文檔能夠自動生成對應的檢查措施,并能夠導入到新的檢測自動化軟件當中。
(3)只要嚴格按照設計的XML文檔編寫要求書寫標簽,就能獲得可執行的正確測試代碼。
從整個程序的測試結果和測試技術的開發過程來看,使用XML技術建立起來的腳本數據模型,能夠很輕松的解決各個測試程序相互之間不兼容的問題,另外由于XML文檔結構清晰,更易于進行維護。使用此方法,配合輔助軟件和工具,不但能夠從總體上減輕程序員編寫代碼的負擔,而且能夠降低測試腳本的編寫難度和復雜度,通過富有自定義標簽能力的腳本內容,提升了自動化測試程序的靈活性和可擴展性,也減輕了程序的復雜性和冗余度。我們通過實例所開發出的自動化程序測試工具,也完全證明了這種方式是一種實際可行,并可再生的設計方案。
[l]陸璐,王柏勇編著.軟件自動化測試技術[M].北京交通大學出版社,2006.
[2]Ron Patton;張曉松,王鈺,曹躍等(譯).軟件測試(原書第二版)[M].北京:機械工業出版社,2006:23-28.
[3]ClarkeEM,GrambergO,PeledD.Model Checking.England:The MIT Press,1999.