1. 程式人生 > 實用技巧 >Visual Studio 2010 Ultimate測試體系結構

Visual Studio 2010 Ultimate測試體系結構

VS2010測試概述<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

一個軟體產品或系統同任何事物一樣,也要經歷孕育、誕生、成長、成熟、衰亡等階段,一般稱為軟體生存週期,也稱為SDLC(software development life cycle)軟體開發生命週期。它是軟體的產生直到報廢的生命週期。週期內有問題定義、可行性分析、總體描述、系統設計、編碼、除錯和測試、驗收與執行、維護升級到廢棄等階段,這種按時間分程的思想方法是軟體工程中的一種思想原則。我們也可以將
SDLC解釋為一組步驟(Step)、階段(Phase)或者里程標(Milestone)SDLC的一般步驟包括:確定問題、可行性分析與開發計劃、收集需求、分析與設計、編碼開發、測試、安裝、維護。

在微軟Visual Studio 2010 Ultimate中,應用程式生命週期(ALM)是其重要特性和SDLC實現方式之一。我們將一個軟體的生命週期(SDLC)劃分為幾個階段,而利用各種工具輔助每個關鍵環節進行管理,就稱為應用程式生命週期管理(ALMApplication Lifecycle Management)。微軟Visual Studio 2010將會努力打造一個功能平等、共同分擔,易用便捷的平臺,以用於組織內的應用程式生命週期管理過程。

VS2010的工具中,真正主角已經不在是作為編碼工具的VS IDE,而是ALM的核心TFS,新增的MTMMicrosoft Test Manager)工具是一個為輔助的客戶端。

提示:微軟測試管理器(Microsoft Test Manager)是一款基於Windows Presentation FoundationWPF)的富客戶端軟體(內部開發代號“Camano),安裝Visual Studio 2010 Ultmate使用者客戶端,可以對正在開發的專案進行整合測試和管理控制功能。

在傳統的微軟.Net軟體構建工作流程(執行測試—>編譯程式碼—>部署應用)中,每個系統都有自己的一套方法,例如,都有自己的倉庫、資源、自己的命令和工具。這將使喜歡嘗試整合和自定義元件的開發者的感覺是:軟體構建過程分散,當專案大的時候不適合統一整合和程式碼除錯與軟體測試等問題。這種傳統的構建工作流程如圖
1所示。

2 傳統的軟體流程資訊孤島

TFS的使命就是要解決開發過程中的資訊“孤島”問題,通過統一的儲存機制是它們的能夠協作起來。TFS 2010已經是一個多源控制,實施和部署更加簡單和“平民化”,並在整體協同技術上擁有了很大的進步。微軟測試與實驗室管理器構建軟體工作流程如圖3所示。

2 傳統的軟體流程資訊孤島

TFS的使命就是要解決開發過程中的資訊“孤島”問題,通過統一的儲存機制是它們的能夠協作起來。TFS 2010已經是一個多源控制,實施和部署更加簡單和“平民化”,並在整體協同技術上擁有了很大的進步。微軟測試與實驗室管理器構建軟體工作流程如圖3所示。

3 實驗室管理構建軟體工作流程

微軟已經為不同的角色提供了豐富的工具來訪問TFS資料,同時還提供了TFS Object Model (API) ,讓第三方廠商就能夠開發自己的基於TFS的軟體,這就擴大了從事.Net工作人員的工作流程的應用範圍。如圖4所示。

4 VS 2010軟體工作流程

現在Visual Studio已不再是僅面向開發人員一種角色的軟體編碼工具,它已變成了一個覆蓋整個軟體開發生命週期的ALM工具。其實,作為軟體工具廠商這也是必然的發展方向,就像IBM也有RationalClearCase等工具。作為每一個軟體行業的從業人員,無論是開發人員、專案經理、還是測試人員,也要不斷適應這個趨勢,筆者認為它只會使我們的工作更簡單和更輕鬆。

VSTS 2010測試框架

對於測試人員而言,VS2010強化了測試功能,並簡化了在整個應用程式生命週期中整合測試的工具。新功能包括快速進行有關測試的設計與開發、測試用例管理,與Team Foundation Server整合的測試計劃,以及確保所有更新的程式程式碼都被測試提高覆蓋率。這些新功能貫穿了整個測試周期:測試計劃、測試執行和測試執行進度跟蹤。新增的MTM工具用於建立測試計劃、管理測試用例、執行測試用例、測試結果管理,以及分散式虛擬環境管理等。VSTS 2010測試框架,如圖5所示。

5 VSTS 2010測試框架

通過以上測試框架的展示,我們可以看出VSTS2010又加強了對測試計劃,測試用例,相關報告等的支援,微軟已經把VSTS2010改造成為一個貫穿整個ALM的主要工具。除了MTM外,VSTS2010同樣支援Web TestsOrdered TestGeneric TestUnit Test自動化測試。新增的CodedUI Test測試,就是面向功能測試工程師,併為他們提供支援自動化測試的全新的功能,並且也與MTM工具整合。

測試和實驗室管理框架

VSTS2010中對架構設計,專案模板,測試管理,Test Lab 管理,專案門戶等都進行了全面的改進;對於MS ProjectSharePointHyper-V 虛擬化平臺以及雲端計算平臺進行了全面的整合。測試和實驗室的管理的功能相對比較獨立,所以作為一個單獨工具使用更為輕便。

在伺服器端,實驗室管理服務是內部的Team Foundation ServerTFS)上執行的眾多服務之一,這種解決方案是軟體測試和開發人員比較獨特的方式。現在我們可以對映實驗室資源,例如,主機、虛擬機器和儲存團隊的專案集合與團隊專案,因此可以調整實驗室的硬體與業務需求來適應工作。

在客戶端,管理虛擬資源仍然是用MTM工具。使用者可以使用它定義測試計劃,測試套件,測試案例和執行在物理或虛擬環境中。實驗室管理體系結構,如圖6所示。

由上圖可以看出,微軟實驗室管理框架結合了虛擬化技術。Hyper-V是微軟新一代伺服器虛擬化解決方案,構架和微軟以往的虛擬化產品如Virtual ServerVirtual PC完全不同,可以說是微軟虛擬化技術上的一個突破。因此,重要的是瞭解圍繞虛擬化的一些基本概念以及如何把這些實驗室管理中用來了解這種技術模式的轉變。

Hyper-V是一個只有幾百KB的小程式,它介於物理硬體和虛擬機器之間,程式碼非常少,不含任何第三方的驅動,非常的精簡,這種構架使得虛擬機器和硬體之間只通過很薄的一層進行連線,不像Virtual Server那樣虛擬機器和硬體之間需要經過多層的轉換,因而虛擬機器執行效率非常高,可以更加充分的利用硬體資源,使虛擬機器系統性能非常的接近真實的作業系統效能。它可以模擬一個完整的硬體系統,從處理器到網路卡,在一個獨立的,孤立的軟體環境,使在一臺物理計算機上的不相容的作業系統同步執行。每個作業系統執行在它自己的孤立的軟體分割槽。微軟Hyper-V構架圖,如圖7所示。 7 微軟Hyper-V構架圖

微軟測試和實驗室管理器(MTM)中的實驗室中心(Lab Center)是在微軟虛擬化技術上,可以建立及管理虛擬或物理環境;可對環境拍取快照,或者退回到虛擬環境的現有快照;通過環境檢視器,與環境中的虛擬機器進行聯絡;為環境定義測試設定;還可以在測試中心中定義測試方案、測試套件和測試用例,並且在實驗室環境上執行。

MTM工具有以下管理功能:

l 虛擬機器快照(Virtual Machine Snapshot):一個虛擬機器快照是一個基於檔案的快照狀態,例如,磁碟上的資料以及配置虛擬機器在一個特定的時間點。快照是虛擬機器在功能上類似於膝上型電腦休眠狀態的時候所具有的更大的靈活性,一個VM支援多個快照。你可以回滾到以前採取的任何快照,並可以繼續在那裡工作。Hyper-V虛擬機器快照樹,如圖8所示。 8 微軟Hyper-V虛擬機器快照樹

l 主機(Host):是一個物理計算機承載一個或多個虛擬機器。

l 主機組(Host Group):是虛擬機器的主機,而管理員可以在SCVMM的創造便於監測和管理自定義組。可用於分配和確定各種團隊專案預留的資源。例如,管理員可以建立一個主機組名為“全球保險主機的團隊”,關於“全球保險工程”專案,並繫結到在Team Foundation管理控制檯相應的團隊專案。

l 庫共享(Library Share):對虛擬機器的優點之一是,你不需要佔用主機(如果你暫時不使用虛擬機器VM)。你可以通過幾分鐘的拷貝把它儲存在磁碟上,帶到其他計算機環境進行工作。

l 環境(Environment):一個典型的多層應用程式包括多個角色,如,資料庫伺服器,Web伺服器,客戶端等,每個角色都可以在一個或多個計算機上執行,也可以有一臺計算機上執行多個角色。在以前管理環境的多層次應用上,是一個非常麻煩且容易出錯的工作,而且在複製同一個相同的環境,更是一個很困難的事情。

TFS實驗室的管理服務中,使用的實驗室管理系統中心虛擬機器管理器(SCVMM)和在多個虛擬化平臺的虛擬機器配置管理,可以得到的SCVMM的實驗室管理與複製。

提示:SCVMM(系統中心虛擬機器管理器,System Center Virtual Machine Manager)是虛擬化技術的管理工具,也是微軟系統中心管理解決方案的一部分。SCVMM 2008 R2可以管理VMware ESX、微軟Virtual Server 2005 R2Windows Server 2008 R2 Hyper-V

SCVMM具有六項新增功能:快速儲存遷移、實時遷移佇列、快速配置、主機相容性檢測、支援第三方CFS檔案格式、支援Veritas卷管理器。它可以將物理伺服器整合到一個虛擬架構提供端到端支援;可快速可靠的物理到虛擬(P2V)以及虛擬到虛擬(V2V)機器轉換;可以虛擬工作負載在物理宿主伺服器上的最優化智慧安置;實現虛擬機器的快速部署和遷移;能夠集中管理虛擬資料中心中所有元件塊的完整庫檔案。

VS 2010重點強調了測試與開發人員的協作。測試影響檢視(Test Impact View)和程式碼變更檢視(Code Changes View)可以避免執行全部測試來驗證某一個小的程式碼變更所造成的浪費,使得測試更加高效。除此之外,測試人員可以使用MTM工具可進行Bug生命週期的跟蹤和控制(Plan>Test>Track>Organize)。通過Testing Center進行新BUG釋出。

MTM引入了一些新的概念,從字面一般上都很輕易理解,包含下面四個概念:Test PlanTest SuitesTest CaseConfigurations,使用VS 2010中提供的UML類圖描述了它們之間的關係。如圖9所示。 9MTM測試物件關係圖

由上圖看出,Test PlanMTM中管理的最頂層的物件。在啟動了MTM時需要連線到TFS工程,這個工程必須是團隊使用的工程,它儲存了開發團隊建立的使用者需求工作項、代原始碼等,Test Plan物件必須在這個工程上建立。Test Suites實際上用來組織Test Case,類似於檔案系統中資料夾的作用。Test Case在這裡指的是手工測試用例,它描述了測試的詳細執行步驟,以及每個步驟執行完的期望結果,更準確地講這裡的Test Case是指手動測試用例 (Manual Test Case)Configuration則是定義了Test Plan的各種執行環境配置。在這其中, Requirement對映到TFSUser Storey型別的工作項,而Test CaseShared Step對應於Test CaseShared Step工作項。MTM為這些物件的管理和使用提供了操作介面,如圖10所示。 10MTM物件的管理介面

注意:在這裡需要指出的是,Automated Test Case只能在VS測試工程中定義和程式碼實現,並可以在VS中執行,其程式碼儲存在TFS工程的程式碼控制器中。Automated Test Case在與MTM中定義的Test Case關聯後,也可以在MTM中執行。 該文已經發表在程式設計師雜誌2010.2月刊