測試環境 是指為了完成軟件測試工作所必需的計算機硬件、軟件、網絡設備、歷史數據的總稱。毫無疑問,穩定和可控的測試環境,可以使測試人員花費較少的時間就完成測試用例的執行,也無需為測試用例、測試過程的維護花費額外的時間,并且可以保證每一個被提交的缺陷都可以在任何時候被準確的重現。
簡單的說,經過良好規劃和管理的測試環境,可以盡可能的減少環境的變動對測試工作的不利影響,并可以對測試工作的效率和質量的提高產生積極的作用。
一、規劃測試環境——讓環境為你服務
對于“金山詞霸”這樣的軟件,大多數測試工作都可以在一臺單獨的電腦上完成,而對于一套電信系統,為了執行測試用例,你可能會需要搭建一個由多臺計算機以及其他網絡設備組成,采用集群和負載均衡技術,并且接駁到Internet的計算機網絡。
不同的行業應用,不同的質量目標,都可能會影響到測試環境的規劃。但從測試工作自身的要求來看,一條應當遵守的原則就是“盡可能的還原軟件在用戶那里最終實際運行的環境”——雖然在很多時候這是不現實的。^_^
通常來說,我們所需要搭建的環境,主要是用于被測應用的系統測試——單元測試和集成測試由開發人員在開發環境中進行,而驗收測試則在用戶的最終應用環境中進行,因此都可以暫不考慮。
為了確定測試環境的組成,我們需要明確以下問題:
1. 所需要的計算機的數量,以及對每臺計算機的硬件配置要求,包括CPU的速度、內存和硬盤的容量、網卡所支持的速度、打印機的型號等;
2. 部署被測應用的服務器所必需的操作系統、數據庫管理系統、中間件、WEB服務器以及其他必需組件的名稱、版本,以及所要用到的相關補丁的版本;
3. 用來保存各種測試工作中生成的文檔和數據的服務器所必需的操作系統、數據庫管理系統、中間件、WEB服務器以及其他必需組件的名稱、版本,以及所要用到的相關補丁的版本;
4. 用來執行測試工作的計算機所必需的操作系統、數據庫管理系統、中間件、WEB服務器以及其他必需組件的名稱、版本,以及所要用到的相關補丁的版本;
5. 是否需要專門的計算機用于被測應用的服務器環境和測試管理服務器的環境的備份;
6. 測試中所需要使用的網絡環境。例如,如果測試結果同接入Internet的線路的穩定性有關,那么應該考慮為測試環境租用單獨的線路;如果測試結果與局域網內的網絡速度有關,那么應該保證計算機的網卡、網線以及用到的集線器、交換機都不會成為瓶頸;
7. 執行測試工作所需要使用的文檔編寫工具、測試管理系統、性能測試工具、缺陷跟蹤管理系統等軟件的名稱、版本、License數量,以及所要用到的相關補丁的版本。對于性能測試工具,則還應當特別關注所選擇的工具是否支持被測應用所使用的協議;
8. 為了執行測試用例,所需要初始化的各項數據,例如登陸被測應用所需的用戶名和訪問權限,或其他基礎資料、業務資料;對于性能測試,還應當特別考慮執行測試場景前應當滿足的歷史數據量。當然,還有另外一個非常關鍵的問題:在測試過程中受到影響的數據如何恢復?
明確了上面的問題后,明確哪些條件是可以滿足的,哪些是需要其他部門協助調配、采購或者支援的。建議在搭建測試環境之前,把上面的問題做成一張CheckList,并為每一項指定一個責任人,完成一項就填寫一項,最終形成的文檔則作為測試環境的配置說明文檔使用。當然,如果時間或其他條件允許,應當做好應急預案,盡量保證在環境失效時不會對正常工作產生太大的影響。
二、管理測試環境——把變化掌握在手中
測試環境搭建好以后不太可能永遠不發生變化,至少被測應用的每次版本發布都會對測試環境產生或多或少的影響。而應對變化之道,不是禁止變化,而是“把變化掌握在手中”。下面的這些建議可以幫助你盡可能擺脫環境變化所帶來的不利影響。
1. 設置專門的測試環境管理員角色
每個測試項目或測試小組都應當配備一名專門的測試環境管理員,其職責包括:
ü 測試環境的搭建。包括操作系統、數據庫、中間件、WEB服務器等必須軟件的安裝,配置,并做好各項安裝、配置手冊的編寫;
ü 記錄組成測試環境的各臺機器的硬件配置、IP地址、端口配置、機器的具體用途,以及當前網絡環境的情況;
ü 完成被測應用的部署,并做好發布文檔的編寫;
ü 測試環境各項變更的執行及記錄;
ü 測試環境的備份及恢復;
ü 操作系統、數據庫、中間件、WEB服務器以及被測應用中所需的各用戶名、密碼以及權限的管理;
ü 當測試組內多名成員需要占用服務器并且相互之間存在沖突時(例如在執行性能測試時,在同一時刻應當只有一個場景在運行),負責對服務器時間進行分配和管理。
2. 明確測試環境管理所需的各種文檔
一般來說,下面的幾個文檔是必需的,當然你也可以根據需要增加新的文檔。
ü 組成測試環境的各臺計算機上各項軟件的安裝配置手冊,記錄各項軟件的名稱、版本、安裝過程、相關參數的配置方法等,并記錄好歷次軟件環境的變更情況;
ü 組成測試環境的各臺機器的硬件環境文檔,記錄各臺機器的硬件配置(CPU/內存/硬盤/網卡)、IP地址、具體用途以及歷次的變更情況;
ü 被測應用的發布手冊,記錄被測應用的發布/安裝方法,包括數據庫表的創建、數據的導入、應用層的安裝等。另外,還需要記錄歷次被測應用的發布情況,對版本差異進行描述;
ü 測試環境的備份和恢復方法手冊,并記錄每次備份的時間、備份人、備份原因(與上次備份相比發生的變化)以及所形成的備份文件的文件名和獲取方式;
ü 用戶權限管理文檔,記錄訪問操作系統、數據庫、中間件、WEB服務器以及被測應用時所需的各種用戶名、密碼以及各用戶的權限,并對每次變更進行記錄。
3. 測試環境訪問權限的管理
原文轉自:http://www.anti-gravitydesign.com