天天看點

網站測試自動化系統—系統應該有的功能

1.         在實驗室裡面自動選擇機器來執行測試過程,比如說為了測試一個軟體産品,以Office舉例。因為微軟已經為Windows釋出了很多的版本,Windows XP, Windows Vista, Windows 7等,而每一個版本的Windows還有不同的變種,例如Vista有企業版,旗艦版,專業版等等,每個變種提供的功能有一點的差别。另外,還要考慮在64位和32位作業系統上安裝,還有國際化測試等等。這樣一來,為了完全測試Office,測試矩陣肯定非常大,也許需要測試幾百個平台,即使以每個平台需要一台測試機估計的話,也需要幾百台機器。如果是純粹人工來管理這些機器的話,不僅費時費力,而且出錯的幾率會很大—比如說你不能找一台32位處理器的機器安裝64位的作業系統。是以,一般來說,一個大的軟體産品團隊都會使用或者自己編寫工具來管理測試機。

測試網站也是一樣的,需要考慮到浏覽器之間的相容性,不同測試類型需要不同的測試機器,以及國際化等方面的因素,同樣會要求不少的機器執行測試。因為這個軟體的制作涉及到分布式開發的一些理念,是以我不會在這系列的文章裡講解如何實作這種系統。

2.         自動準備測試環境,既然機器已經從測試機叢集中挑選出來了,下一步就是準備測試環境,例如重裝系統(當然啦,Ghost還原也行),安裝産品所依賴的軟體,以及安裝最新版本的産品(每日編譯完成以後生成的新版本),将自動化測試用例程式拷貝到測試機,準備測試資料等等。

3.         執行自動化測試用例。這一過程,包括我們通常了解的将需要手工執行的測試用例使用編碼的方式使之自動運作。另外,這一過程還包括一些可選的子過程:

a)        自動生成測試用例所需要的測試資料,生成随機的合法的測試資料不是一件容易的工作。雖然你可以random()之類的函數生成随機資料,但是采用這種簡單的方法很難生成合法的資料。比如說,為了測試網站的使用者登入系統,大部分網站都是要求使用者名不能包括特殊字元,這樣你就需要在随機生成資料的過程中添加一些限制條件。

再比如,如果你是在測試一個函數庫,例如.NET Framework。一般來說,使用者(程式員)使用函數庫的時候無非就是一些API的排列組合。我們可以先針對每個公開的API設計單元測試代碼,然後編寫一個程式将這些單元測試用例随機組合,生成新的測試用例。舉個例子,假設要測試資料庫連接配接方面的API,先單獨根據Open, ReadData, Close等函數編寫好單元測試用例,然後由程式将這些用例随機排列成一些新的用例。當然,随機排列的問題就是會生成非法的調用序列,比如Close, ReadData, Open這個序列的就是非法的。是以測試用例随機産生程式的一個很重要的工作就是在測試工程師的配合下,移除掉這些非法的序列。

4.         測試結果收集自動化,因為是同時在多台機器上執行測試用例,要求測試人員手工收集測試結果是一個很麻煩的過程;是以這一部分由程式自動完成是非常必要的, 一般來說,測試用例執行完畢以後,自動化測試腳本會将測試結果自動釋出到一個中心資料庫上。項目管理團隊會通過一些報表服務—例如SQL Server Reporting Services等系統來評估以下幾個内容:

a)        産品哪些元件的風險比較高,即容易出錯或者沒有完整地測試過。

b)        産品的健壯程度。

c)         是否可以釋出産品,或者延期釋出?

這篇文章大緻總結了自動化測試系統應該完成的任務,本來應該當作緒論寫的。不過我覺得可能很多人對純理論的東西不感興趣,是以将一些實作細節放在前面先寫了。

未完待續……

本文轉自 donjuan 部落格園部落格,原文連結:  http://www.cnblogs.com/killmyday/archive/2010/03/27/1698411.html ,如需轉載請自行聯系原作者