VS2010測試概述
一個軟件產品或系統同任何事物一樣,也要經歷孕育、誕生、成長、成熟、衰亡等階段,一般稱為軟件生存周期,也稱為SDLC(software development life cycle)軟件開發生命周期。它是軟件的產生直到報廢的生命周期。周期內有問題定義、可行性分析、總體描述、系統設計、編碼、調試和測試、驗收與運行、維護升級到廢棄等階段,這種按時間分程的思想方法是軟件工程中的一種思想原則。我們也可以將SDLC解釋為一組步驟(Step)、階段(Phase)或者裡程標(Milestone),SDLC的一般步驟包括:確定問題、可行性分析與開發計劃、收集需求、分析與設計、編碼開發、測試、安裝、維護。
在微軟Visual Studio 2010 Ultimate中,應用程序生命周期(ALM)是其重要特性和SDLC實現方式之一。我們將一個軟件的生命周期(SDLC)劃分為幾個階段,而利用各種工具輔助每個關鍵環節進行管理,就稱為應用程序生命周期管理(ALM,Application Lifecycle Management)。微軟Visual Studio 2010將會努力打造一個功能平等、共同分擔,易用便捷的平台,以用於組織內的應用程序生命周期管理過程。
在VS2010的工具中,真正主角已經不在是作為編碼工具的VS IDE,而是ALM的核心TFS,新增的MTM(Microsoft Test Manager)工具是一個為輔助的客戶端。
提示:微軟測試管理器(Microsoft Test Manager)是一款基於Windows Presentation Foundation(WPF)的富客戶端軟件(內部開發代號“Camano”),安裝Visual Studio 2010 Ultmate用戶客戶端,可以對正在開發的項目進行集成測試和管理控制功能。
在傳統的微軟.Net軟件構建工作流程(運行測試—>編譯代碼—>部署應用)中,每個系統都有自己的一套方法,例如,都有自己的倉庫、資源、自己的命令和工具。這將使喜歡嘗試集成和自定義組件的開發者的感覺是:軟件構建過程分散,當項目大的時候不適合統一集成和代碼調試與軟件測試等問題。這種傳統的構建工作流程如圖1所示。
圖 1 傳統的軟件流程信息孤島
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也有Rational、ClearCase等工具。作為每一個軟件行業的從業人員,無論是開發人員、項目經理、還是測試人員,也要不斷適應這個趨勢,筆者認為它只會使我們的工作更簡單和更輕松。
VSTS 2010測試框架
對於測試人員而言,VS2010強化了測試功能,並簡化了在整個應用程序生命周期中整合測試的工具。新功能包括快速進行有關測試的設計與開發、測試用例管理,與Team Foundation Server集成的測試計劃,以及確保所有更新的程序代碼都被測試提高覆蓋率。這些新功能貫穿了整個測試周期:測試計劃、測試執行和測試執行進度跟蹤。新增的MTM工具用於創建測試計劃、管理測試用例、運行測試用例、測試結果管理,以及分布式虛擬環境管理等。VSTS 2010測試框架,如圖5所示。
圖 5 VSTS 2010測試框架
通過以上測試框架的展示,我們可以看出VSTS2010又加強了對測試計劃,測試用例,相關報告等的支持,微軟已經把VSTS2010改造成為一個貫穿整個ALM的主要工具。除了MTM外,VSTS2010同樣支持Web Tests、Ordered Test、Generic Test、Unit Test自動化測試。新增的CodedUI Test測試,就是面向功能測試工程師,並為他們提供支持自動化測試的全新的功能,並且也與MTM工具整合。
測試和實驗室管理框架
VSTS2010中對架構設計,項目模板,測試管理,Test Lab 管理,項目門戶等都進行了全面的改進;對於MS Project,SharePoint,Hyper-V 虛擬化平台以及雲計算平台進行了全面的集成。測試和實驗室的管理的功能相對比較獨立,所以作為一個單獨工具使用更為輕便。
在服務器端,實驗室管理服務是內部的Team Foundation Server(TFS)上運行的眾多服務之一,這種解決方案是軟件測試和開發人員比較獨特的方式。現在我們可以映射實驗室資源,例如,主機、虛擬機和存儲團隊的項目集合與團隊項目,因此可以調整實驗室的硬件與業務需求來適應工作。
在客戶端,管理虛擬資源仍然是用MTM工具。用戶可以使用它定義測試計劃,測試套件,測試案例和運行在物理或虛擬環境中。實驗室管理體系結構,如圖6所示。
圖 6 實驗室管理體系結構圖
由上圖可以看出,微軟實驗室管理框架結合了虛擬化技術。Hyper-V是微軟新一代服務器虛擬化解決方案,構架和微軟以往的虛擬化產品如Virtual Server、Virtual 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 R2和Windows 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 Plan、Test Suites、Test Case和Configurations,使用VS 2010中提供的UML類圖描述了它們之間的關系。如圖9所示。
圖 9 MTM測試對象關系圖
由上圖看出,Test Plan是MTM中管理的最頂層的對象。在啟動了MTM時需要連接到TFS工程,這個工程必須是團隊使用的工程,它保存了開發團隊創建的用戶需求工作項、代源代碼等,Test Plan對象必須在這個工程上創建。Test Suites實際上用來組織Test Case,類似於文件系統中文件夾的作用。Test Case在這裡指的是手工測試用例,它描述了測試的詳細執行步驟,以及每個步驟執行完的期望結果,更准確地講這裡的Test Case是指手動測試用例 (Manual Test Case)。Configuration則是定義了Test Plan的各種執行環境配置。在這其中, Requirement映射到TFS的User Storey類型的工作項,而Test Case和Shared Step對應於Test Case和Shared Step工作項。MTM為這些對象的管理和使用提供了操作界面,如圖10所示。
圖 10 MTM對象的管理界面
注意:在這裡需要指出的是,Automated Test Case只能在VS測試工程中定義和代碼實現,並可以在VS中運行,其代碼保存在TFS工程的代碼控制器中。Automated Test Case在與MTM中定義的Test Case關聯後,也可以在MTM中執行。