隨著Internet和Intranet/Extranet的快速增長,Web已經對商業、工業、教育、政府和娛樂及我們的工作和生活產生了深遠的影響。因為Web能提供支持所有類型內容連接的信息發布,容易為最終用戶存取,更多傳統的信息和數據庫系統正在被移植到互聯網上;電子商務正迅速增長,范圍廣泛的、復雜的分布式應用也正在Web環境中出現;赪eb的系統在變得越來越復雜的同時,Web應用軟件的缺陷危機也更加嚴重、更加廣泛。
在Web工程過程中,基于Web系統的測試、確認和驗收已成為一項重要而富有挑戰性的工作。Web測試也毫無例外地必須進行自動化測試。以期能通過自動化測試工具按照測試工程師的預定計劃進行自動化測試,來減輕手工測試的勞動量,從而達到提高軟件質量的目的。
兩種基于Web的測試方法
筆者長期以來一直從事Exchange Server 2007、E14(未來的Exchange Server 2009)的基于Web的幫助功能及UI測試,OWA(Outlook Web Access)的功能和UI測試。在實際工作中也深感各種應用Web化已經是大勢所趨。
Microsoft Exchange的Web功能和UI測試大部分是基于自動化測試,在此希望和大家一起討論和分享一下Web自動化測試的方法和經驗。
基于Web的測試基本上采用兩種思路和方法:一種可以稱為“Browsers測試”(瀏覽器端測試)。這種測試通常是模擬瀏覽器端的一些操作,比如在TextBox輸入一些文本,選擇ComboBox中的某個選項。因為可以得到具體的操作界面,這種方法更多地應用到UI和Localization方面的測試。在進行OWA的46種語言的Localization方面測試時,我們就采用了這種方法,對各種操作產生出來的界面進行抓圖,然后對這些screenshot進行分析,以發現一些UI和Localization方面的問題。
另一種方法稱為“Protocol測試”(協議測試)。這種方法是建立在HTTP協議級的測試,通過POST或Web Service向服務器發送請求,然后對服務器響應回來的數據進行解析、驗證。對一些功能測試,會更多地采用這種方法。最簡單的應用就是檢查鏈接的有效性,向服務器發送URL請求,檢查響應回來的數據,來判斷鏈接是否指向正確的頁面。
在實際項目中,我們可以根據具體需求進行選擇。以下是這兩種方法優缺點的比較:
測試方法 | 優點 | 缺點 |
瀏覽器測試 | 能夠測試客戶真實的操作場景 | 慢 |
協議測試 | 快,穩定 | 不能對UI和一些javascript:tagshow(event, '%BD%C5%B1%BE');" href="javascript:;" target=_self>腳本進行測試 |
覽器端測試的具體應用
對于這種模擬瀏覽器端操作的測試,微軟已經有了非常成熟的測試框架,其中應用比較廣泛的是ECHO和KAF。ECHO是一個可以驅動Web UI的、面向對象的測試架構,它允許終端用戶使用XML或受.Net托管的編程語言,如C#來編寫自動化測試用例。而KAF可謂ECHO的后繼者,目前基于ECHO的測試項目都在逐漸向KAF遷移。這是因為KAF不但包括ECHO的大部分功能,而且支持多種瀏覽器(目前支持IE和Firefox),對頁面上的動態元素也有很好的支持,靈活性更強。當然這些測試架構都是微軟內部使用的工具,是不允許對外發布的。但大部分的Web UI測試架構都是建立在如下的設計思路,按照這樣的設計思路,我們完全可以構建封裝適合自己項目的Web UI測試架構進行瀏覽器端的測試(見圖1)。

圖1
文章來源于領測軟件測試網 http://www.k11sc111.com/