自動布置/還原測試環境
目前,我想我們絕大部分Team Dev都是通過人力來布置或者說搭建測試環境的,假設我們要測一個用ASP.NET開發的SNS網站,在準備好相關的硬體之後,我們肯定要找一個測試人員,或者開發人員,有條件的單位可能會找一個專門的IT人員,總之是找一個人(我們就叫他小王吧)來安裝作業系統、為作業系統打必要的Service Pack、線上或離線升級一些Hotfix,然後安裝資料庫系統、為資料庫系統打必要的Service Pack,繼而安裝.NET Framework、配置IIS,最後拷貝、安裝、配置新Build出爐的SNS網站;過一段時間,快的話可能也就一、兩天,當網站更新的Build出來之後,小王同志通常還得再格式化測試機器,重新安裝配置作業系統、資料庫系統、其它必要的軟體和類庫以及SNS網站最新的Build,顯然,這一過程將往複不已直至項目結束。
據統計,布置/還原測試環境的工作量通常會佔到測試人員總工作量的30%左右,甚至有可能更高。為了有效地減少這部分工作量,VS 2010提供了一種叫作"Lab Management"的功能,這是一種基於電腦虛擬技術的功能,它不僅可以大幅減少在搭/拆測試環境過程中的人力投入,甚至還可以實現從Build代碼、到布置測試環境、到部署系統、到運行測試整個過程的自動化流水作業,或者叫一條龍式的管理。
使用過Hper-V的朋友對虛機快照(VM snapshot)這個概念(參考圖1)應該不會感到陌生,我們可以通過虛機的快照功能把整個虛機還原到以前任何一刻的狀態(checkpoint),這與很多應用軟體譬如Word中的Undo功能具有異曲同工之妙。
[圖1:Hyper-V中處於不同“時態”的虛機快照]
VS 2010中的Lab Management功能也正是基於虛機的這一特性實現了虛擬測試環境的快速布置與還原,而且它走得更遠。我們知道,很多時候,一個測試環境可能不只包含一台電腦,而是包含多台電腦,譬如一個典型的三層架構的Web應用的測試環境就可能是架設在一台Web伺服器和一台資料庫伺服器之上的,如果你是利用虛擬環境中進行測試,那麼這個虛擬環境就應該包含一個Web虛機和一個資料庫虛機(參考圖2)。
[圖2:由一個Web伺服器虛機和一個資料庫伺服器虛機組成的三層應用的測試環境]