Team Up!用Visual Studio 2005 Team System组织所有的装备 --作者:Chris Menage
??? [摘要]本文基于Visual Studio 2005 Team System CTP,為您介紹在軟件開發周期中中的開發進程、團隊支持、工作項跟蹤、單元和裝載測試及其他。
??? 軟件開發通常被認為是個很困難的過程。前人已經通過組織無數次地學習和編著大量的書籍來闡述如何改進開發應用程序的流程,以提高生產力和獲得穩定的系統。但是困難并不在于跟上更新更好的軟件開發思想的發展速度,而是如何在真實的開發流程中體現這些思想的意義。微軟已經邁出了重要的一步:使用Visual Studio 2005 Team System幫助開發團隊構建健壯穩定的軟件系統。
??? Team System使用新的源代碼控制系統增強了Visual Studio 2005的功能,Team System同時給開發者提供了單元測試和代碼分析工具。但是,微軟將它關注的焦點從原來的僅限于開發人員擴展到提供更多的工具來為整個開發團隊提供支持。Team System提供的軟件包括對項目經理、架構師、開發人員、測試員甚至開發經理的支持。Team System包含一個全新的工作項跟蹤系統,用來管理開發任務、實現過程,并且用Web門戶的方式為開發流程提供一定的透明度。
??? 本文將通過Visual Studio 2005 CTP(Community Technology Preview)對Team System進行概述。我將展示如何創建一個開發項目,在這個過程中將探索開發流程的所有步驟,直到測試階段。安裝CTP所提供的Team System版本比產品的最終成型的版本要稍微困難一點。CTP提供的版本支持在一個非常特殊的環境中進行安裝,這個環境要求有多臺計算機或者多個虛擬機。安裝向導在DVD或者下載的文件中,但是要讓一切都工作正常,也許需要獲得額外的幫助。在本文中,將不包含這些內容。
項目方法論
??? 在過去,Visual Studio是只給開發人員使用的工具。正因為如此,它在開發項目中的其他階段幾乎沒有任何價值,例如需求采集、設計和測試。但是,Team System被設計為不僅僅為開發人員提供支持。它將支持整個軟件開發生命周期,并且支持在生命周期中涉及到的所有人員。
??? Team System最好的一方面是它是基于理解的過程而進行構建的。超越已有數種開發流程形式的思想是一件好事,微軟對于用戶的開發流程幾乎沒有做任何假定,因此將它構建得極具靈活性。Team System使用微軟的“方法論模板(Methodologh Template)”來定義開發流程。用戶可以開發自己的模板,或者使用Team System提供的內嵌模板,甚至是第三方的模板。
??? 在過去,很多開發團隊并沒有按照正規的規則流程來執行,因為正規化開發流程在時間和金錢上的投資實在是太大了。使用Team System,這個開發流程將成為團隊每天工作使用的工具中的一部分,它更加容易被更廣泛意義上的開發團隊所接受。
??? 微軟近期建立了一個開發流程叫做“微軟解決方案框架(Microsoft Solution Framework,MSF)”,現在的版本號是3.0。甚至在微軟,MSF也沒有被廣大的開發人員廣泛地采用,因為它看上去難以被學會也難以應用。微軟更新MSF至版本4.0并且在Team System提供了兩個不同的MSF4.0的版本:MSF Formal和MSF Agile。這兩種方法論都被集成在Visual Studio中并作為模板而提供。2004年的CTP版本只提供對MSF Agile的支持。已經具有正規開發流程的團隊可以將他們已有的流程移植到Team System中,而一個先前沒有執行正規方法論的組織則可以隨意選擇使用MSF Formal或者MSF Agile。
??? 但是,并不是開發流程中的所有成員都已經或者期望使用Visual Studio。為了滿足非開發人員的需要,Project Portal和Team Foundation客戶端也支持Team System的許多特性而做出了修改,這些也許正是被更廣泛的用戶對象所渴望的。從本質上講,Team Foundation客戶端就是Visual Studio 2005的另一個版本,它將所有的開發特性通通刪除,而只保留所有Team System的特性。這就意味著,所有本文涉及到的開發流程對于Team Foundation客戶端同樣適用。
MSF Agile
??? MSF Formal是依從CMM3級的要求而設計的開發流程,MSF Agile則意味著更具靈活性并且是迭代設計的。沒有哪個單獨的開發流程能夠理想地適合所有的項目,所以,組織需要根據特定開發成果的需求來選擇開發流程。
??? MSF Agile支持以下5種角色:架構師、業務分析師、開發人員、項目經理和測試人員。在閱讀接下來關于開發流程和團隊開發的章節時,請牢記這5種截然不同的角色,并且還有業務使用者、負責人以及IT管理員,Team System的特性對于這些特定人群來說十分具有吸引力。
創建一個團隊項目
??? 現在先使用Team System為整個目標做些基礎工作,讓我們從創建開發流程開始。這一步在Beta 1更新版中通常被定義為“公文包項目(Portfolio Project)”,在后續的版本中會被定義為“團隊項目(Team Project)”。在加載Visual Studio 2005 CTP版完畢之后,需要做的第一件事是連接到Team Foundation Server (TFS),TFS可以在其他的系統或者虛擬機中運行。TFS是一個服務器平臺,它提供對Team System中團隊特性的支持。TFS提供的特性包括:新的源代碼控制系統、工作項跟蹤和團隊門戶站點。
??? 選擇工具菜單下的Connect to Team Foundation Server選項,連接Visual Studio和TFS。安裝提示將幫助用戶和TFS進行連接。一旦連接成功,將出現Team Explorer窗口。Team Explorer是用戶查看TFS的工具,很像是用Server Explorer對SQL Server數據庫進行查看的方式。Team Explorer是個偉大的工具,用戶可以很快地熟悉它,并且經常使用它。
??? 一旦用戶和TFS取得了連接,就可以創建自己的團隊項目了。團隊項目是TFS中的一個重要的長處。一個團隊項目是一個用于用戶進行訪問與項目相關的所有物件,包括設計文檔、工作項和項目計劃等一同進行工作的唯一的地方。用戶可以為工作相關的每個開發項目創建一個團隊項目。在Team Explorer中,點擊工具欄上的New Team Project按鈕來創建團隊項目。另外一種方法是,在Team Explorer上,右鍵點擊用戶的TFS服務器,然后在那里創建一個團隊項目。用戶也可以在Team Explorer窗口中加入一個已有的團隊項目。當創建團隊項目時,必須選擇將要使用的方法論模板,如圖1所示。另外,用戶可以選擇創建一個新的源代碼控制文件夾,或者對已有的代碼庫進行分支。在這里使用MSF Agile作為例子進行演示。
圖1 創建一個新的團隊項目
??? 當創建團隊項目時,有幾件事情會發生。一個重要的事件是生成了一個Windows SharePoint Services(WSS)團隊站點。TFS與WSS結合以利用WSS對文檔的管理功能。WSS提供的協作特性同樣對TFS很有幫助。如果打開瀏覽器,訪問http://tfsserver/sites/project,將看到TFS創建的團隊站點的主頁。這是一個WSS站點,能夠被任何擁有相應權限的用戶訪問。這對于業務使用者和管理人員來說,是訪問并且查看項目進展狀態的一個非常好的途徑。
??? 一旦擁有了一個團隊項目,用戶也許希望在進行其他操作前先對項目進行配置。在Team Explorer中右鍵點擊要配置的項目并且選擇Team Project Settings | Classifications。Settings菜單項允許用戶進行安全權限和源代碼控制系統策略的設置,并且可以創建項目的結構。如果選擇MSF Agile,默認狀態下,用戶通常會在項目中擁有3次迭代。用戶可以對他們進行重命名、刪除或者添加。例如,如果用戶希望擁有6個階段的滾動式增長,可以對迭代方式進行相應的設置。稍后,當創建工作項時,它們能在用戶的整個項目中和特殊的迭代聯合起來。請記住,方法論模板在用戶的掌控之下,在開發流程中不會有任何被限制的感覺。
項目計劃和工作項
??? Team System通過項目管理透視圖提供了一個重要的、被稱為“工作項跟蹤(Work Item Tracking)”的特性。諸如單元測試、最佳源代碼控制系統和代碼分析這些特性都是讓開發人員興奮不已的。另外,工作項跟蹤的功能正如它的名字描述的那樣,它讓項目經理、商業股東和IT管理員對它尤其感到興奮。在軟件開發流程中需要完成的每個任務都可以作為工作項來進行處理,這些任務包括文檔任務、設計任務、開發任務、缺陷查找或者是需求采集。在這點上,用戶可以像在微軟的Project或者Excel里那樣管理工作項。但是,事實上,大多數用戶只是在這些工具中創建和羅列任務,而并沒有真正地跟蹤和管理它們。
??? 仔細考慮一下現有的跟蹤流程,回答以下的問題:設計文檔完成了么?對于特定的開發人員分配了多少項任務?已經完成了的任務有哪些?哪些任務已經遠遠地滯后了?當任務沒有按時完成時,將會對進度表產生什么樣的影響?誠然,很多組織已經有能力回答這些問題。但是,為了做得更好,在項目經理和團隊中的其他人員,包括開發人員、業務分析員和測試員之間需要大量的溝通和交流。項目經理必須和所有的這些不同的人員進行溝通以精確地掌控項目的進展狀況。保持跟蹤這些任務的進展狀況通常通過項目狀況會議、個別交談或者通過電子郵件來進行。Team System的一個目標是使數據采集、跟蹤和報告這些開發流程得到改善并且更加有效率。
??? 一旦用戶選擇使用了一種方法論模板(這里選擇MSF Agile進行示范),數個任務(工作項)將在用戶的行為中自動創建。在MSF Agile的開發流程中某些任務必須完成,所以有這些自動創建的動作。圖2中顯示了在使用MSF Agile創建團隊項目時一些工作項被創建的例子。
圖2 在MSF Agile中的工作
??? 工作項和Microsoft Project中的任務十分相似,他們都可以被分配給不同的人員。他們有和工作區間一樣的狀態。當相關人員完成了他們的工作項,他們可以更改這些工作項的狀態,更改后的狀態將顯示在WSS的團隊站點上。WSS站點利用SQL Server的報表服務來根據被TFS存儲在SQL Server中的數據展示生成的報表。用戶與其自己創建這些報表倒不如使用集成在SharePoint中定制的Web部件。注意,在CTP 2004年的版本中還不能提供這些報表功能。
項目文檔
??? 基于MSF Agile的實現方法,在這個開發流程中的第一步就是開始創建一些文檔。視用戶在開發流程中所處的位置,這些文檔可能是一個商業案例、一個場景,甚至是一個項目計劃。用戶創建的這些文檔將依賴于所選擇的方法論。為了在Team System上下文中創建這些文檔,用戶可以使用Team Explorer(另外一種選擇是通過團隊的門戶站點來進行)。如果定位到文檔的節點,用戶可以使用右鍵點擊它來選擇添加文檔。當用戶確定在項目中使用哪個方法論時,Team System將為用戶配置適當的模板,這些模板適用于項目中用到的各種文檔。當用戶選擇添加文檔時,將提示讓用戶通過選擇適當的模板來確定文檔的類型。模板包括設計、生命周期、計劃、項目管理和需求的場景及特性這些選項。一旦選定了模板,用戶就可以用適當的工具進行編輯(例如微軟的Word或者Excel)。
??? 創建的文檔被存儲在管理用戶項目的WSS站點中。這將使得在用戶組織中的人員僅僅通過他們的瀏覽器打開適當的站點就能訪問到這些文檔。直接添加進門戶站點的文檔將在Team Explorer中展示出來。右鍵點擊文檔節點然后選擇Refresh,就能在Team Explorer中看到最新添加的文檔。
有時候,項目經理希望創建一個實際的項目計劃。使用Team System來做這些將有很多真正的樂趣,當創建項目計劃并且跟蹤這些任務的時候,用戶就能體會到這其中的樂趣了。Team System使用戶管理項目的過程十分簡單,這些多么讓人感到興奮!
??? 使用Team System創建項目計劃的過程非常簡單直接,在Team Explorer中來到Documents | Project Management并且右鍵點擊就可以做到。在上下文菜單中包含有Create Microsoft Project Plan的選項。Team System同時也提供在Excel的工作表中跟蹤項目任務的功能,用戶可以用類似的方式為項目任務創建一個工作表。
??? Team System的一個益處是它和Project以及Excel的協作關系。當在一個已經安裝了Microsoft Project或者Excel的機器上安裝CTP版的Visual Studio 2005的時候,用戶將獲得加載在這些應用程序上的額外的特性。特別的,用戶將擁有一個工作項菜單以及一個新的工具欄,它將允許用戶和Team Foundation Server進行結合。其關鍵特性是用戶可以使用Team System對項目計劃任務中的工作項進行同步。
??? 項目開始于創建一個項目計劃和導入作為團隊項目創作的一部分而創建的原始工作項。然后用戶添加并分配補充的任務,并且用Team System的工作項數據庫對項目計劃任務進行同步。開發人員需要執行任務并且用源代碼控制系統對代碼進行檢查,他們可以用Visual Studio更新這些工作項的狀態。工作項的狀態數據能夠通過團隊門戶站點中的工作項報告獲取。項目經理能夠將他們的項目計劃同工作項數據庫進行同步以保證他們的當前信息處于最新的狀態。
??? 在圖3中顯示了將Team System中的工作項導入至Microsoft Project后的Project的任務視圖。你將看到有一個和Team Foundation Server結合的新的工具欄。如同成功地集成在Project中的那樣,它同樣也能被集成在Excel中。這是應用戶反饋中的要求而添加的,因為一些用戶選擇使用Excel來對自己的項目任務進行管理而不是使用Project。
圖3 將工作項導入微軟的Project
??? 一旦項目計劃準備完畢,它將同Team System進行同步以告知項目團隊成員他們被分配有哪些任務。如果用戶是一個開發人員,他將直接通過Visual Studio就可以獲得自己的工作項列表。用戶可以在Team Explorer中導航至Work Items并且打開My Work Items或者My Active Work Items。這種改進的實現方法幾乎不給開發人員帶來任何的負擔,并且能夠減少項目經理和開發人員的會議交流的次數。
設計應用程序
??? 從開發者的觀點來看,一旦分配好開發任務的工作項,就意味著要準備開始設計應用程序并且編寫代碼了。一個或更多的項目計劃中的任務實際上算作是應用程序的設計階段。請注意,我在編寫代碼之前先提及的設計。Team System帶有許多非常好的設計工具。
Team Foundation Source Control
??? 在生成任何設計和代碼之前,用戶可以使用Team Foundation Source Control來建立源代碼控制系統。Team Foundation Source Control的代號是“Hatteras”,它是比Microsoft Visual SourceSafe更加健壯的平臺。用戶在這個新的源代碼控制系統中儲存的所有的內容都被自動備份在SQL Server 2005的數據庫中,而且管理起來非常方便。這個新的源代碼控制系統的設計目標是具有更強的可擴展性和更高的性能,這兩點都是Visual SourceSafe所缺乏的。新的源代碼控制系統將具有更多的健壯的分支和合并的能力。正因為如此,在默認狀態下,多用戶簽出功能是被啟用的。
??? 被稱為“shelving”的新功能也十分有用。這項特性允許用戶將正在編寫的代碼簽出,并且在源代碼控制系統中簽入,而不是在主分支上,這將允許開發人員能夠將他們的工作進行備份,而不用強制團隊中其他的開發人員進行不完全的變更。
??? Visual SourceSafe仍將可用并且能夠通過更新和Visual Studio 2005進行合作。Visual SourceSafe在小項目和小團隊中非常有用,Team Foundation Server的強大功能對它們來說不是那么必要,并且他們通常并不希望花費額外的工作和開銷來安裝它。用戶可以通過啟動Visual Studio在Tools | Options中的源代碼控制選項中選擇使用哪個源代碼控制引擎。
??? 一旦用戶配置使用了Team Foundation Source Control,在任何使用Visual Studio創建新項目的時候,他們都可以選擇將項目添加到源代碼控制系統中。同時,用戶也可以選擇使用Team Foundation Server。開發人員在執行任務的時候,可以在工作項上進行標記以將工作項和他簽入至源代碼控制系統的代碼聯系起來。這種聯系被存儲在數據庫中并且可以用來生成報表。另外,新的代碼控制系統允許創建簽入策略。簽入策略的目的在于限制哪些代碼允許被簽入至源代碼控制存儲器中。
編寫更好的代碼
??? 將Visual Studio 2005 Team System與多種IDE開發工具集成,能幫助用戶編寫更好的代碼。這其中包括一個能分析在應用程序中潛在性能問題的剖析器,既適用于托管代碼也適用于非托管代碼的代碼分析工具,以及帶有代碼覆蓋率分析功能的單元測試工具。代碼分析工具基于微軟已有的技術,但是從未如此完美地集成進Visual Studio。本地代碼使用PREfast進行分析,而托管代碼使用FxCop進行分析。單元測試工具和工具中的NUnit非常相似,但是它使用起來非常方便,并且也大大減少了創建測試的耗時。這使得單元測試更加容易被用戶接受。單元測試也與代碼覆蓋集成得十分完美,本質上講它是一個生成報表的機器,讓用戶了解究竟使用單元測試檢查了多少代碼。
托管代碼分析
??? 對FxCop十分熟悉的用戶將會對Team System的托管代碼分析功能感到非常滿意。它與IDE的集成極其完美。只需在項目屬性的代碼分析標簽中啟用代碼分析。在這里用戶可以啟用代碼分析,也可以選擇需要使用的代碼分析規則。由于代碼分析的規則非常嚴格,大部分組織可能會將提供的一部分規則禁用。的確,當用戶在一個已有的應用程序上使用FxCop,結果看到自己的代碼是那么地不馴于這些規則時,這將是多么羞辱的體驗!
??? 將代碼分析與IDE集成得最好的一部分是:一旦用戶打開代碼分析,它將在應用程序編譯的時候自動運行,并且作為構建過程的一部分,給予用戶警告和錯誤提示。用戶可以在版本構建時打開代碼分析,也可以在調試時將其關閉,這是個非常好的特性。請注意在一個大型項目中運行代碼分析需要花費較長時間。另一個很好的特性是可以選擇運行代碼分析作為源代碼控制系統的簽入策略。可以利用這個功能防止開發人員將沒有經過FxCop規則驗證的代碼簽入源代碼控制存儲庫。簽入策略允許代碼被簽入的同時提供覆蓋機制,但是覆蓋將被載入日志。
單元測試
??? 單元測試的一般概念是執行應用程序中獨立的代碼片段,然后進行測試,察看是不是達到了預期的結果。單元測試通常等價于用經過驗證的輸入來調用一個方法,并察看返回的數據。即使不用任何工具也可以輕松完成這項工作,但是要想提高生產力,就有必要使用一些輔助措施了。單元測試的傳統問題包括測試建立、測試的組織以及擁有輕松生成測試成敗結果的報表機制。Team System致力于解決所有這些問題。
??? Team System具有為用戶的方法自動創建單元測試的功能。使用屬性來對單元測試代碼和常規代碼進行區分。在IDE中,該工具不但可以將用戶的測試組織成測試列表,還可以基于這些測試列表進行測試工作。當用戶執行測試時,結果將顯示在Visual Studio的測試結果窗口中。
圖4 創建單元測試
??? 如圖4所示,要在項目中執行單元測試,只需右擊用戶的代碼,然后選擇Create Tests,它將提示用戶選擇測試對象以及測試的方式。您可以通過在不同的類別中選擇一個方法來同時創建多個測試。自動生成的測試代碼包含實例化所測試方法的對象、聲明方法的各種參數,最后調用要進行測試的方法。默認情況下測試將返回不確定結果。用戶可以在創建測試的Configuration標簽頁中進行必要的更改。不確定結果的意思是不知道測試的結果是成功的還是失敗的。這種情況提醒用戶需要將一些邏輯加入到測試中。下面這個例子是一個將要進行測試的方法:
Public Class Math
??? Public Function Add(ByVal Value1 As Integer, _
??? ByVal Value2 As Integer) As Integer
??? Return Value1 + Value2
??? End Function
End Class
??? 在這個例子中,Add方法僅僅返回兩個整數相加的結果。當用戶第一次創建單元測試時,生成的測試代碼看起來如同如下所示:
''' <summary>
''' AddTest is a test case for Public Function Add(As
''' Integer, As Integer)
''' </summary>
<TestMethod()> Public Sub AddTest()
Dim target As NewOrderEntry.Math = New NewOrderEntry.Math
??? ' TODO: Initialize to an appropriate value
??? Dim Value1 As Integer
??? ' TODO: Initialize to an appropriate value
??? Dim Value2 As Integer
??? Dim expected As Integer
??? Dim actual As Integer
??? actual = target.Add(Value1, Value2)
??? Assert.AreEqual(expected, actual)
??? Assert.Inconclusive("Verify the correctness of this test method.")
End Sub
??? 要進行測試,用戶必須先將項目進行編譯,并且打開測試管理器窗口。測試管理器可以在Test | Windows菜單中找到,用戶可以通過它察看各個測試并且選擇執行哪個測試。測試管理器允許用戶將各種測試加入到自己創建的測試列表中。比如,將所有的測試按照實現業務邏輯和測試數據訪問進行分組。另外,可以按照應用程序中的函數塊對測試進行分組。
??? 當執行測試時,用戶有多種選擇。一個是考慮是否打開代碼覆蓋,它將幫助用戶捕捉和分析在單元測試中執行了哪些代碼。代碼覆蓋選項是測試運行配置的一部分。在測試管理器里,工具欄上的Edit Test Run Configuration按鈕允許用戶選擇和編輯一系列用于運行測試的配置參數。在測試運行后,有兩項需要察看的:測試結果(如圖5)和代碼覆蓋結果(如圖7)。
圖5 測試結果
圖6 代碼覆蓋結果
??? 你也許會發現測試結果窗口顯示出我的一個測試結果是不確定的。這是因為我還沒有讓生成的測試來做點什么。應該根據一下所示對測試進行更改:
''' <summary>
''' AddTest is a test case for Public Function Add(As Integer,
''' As Integer)
''' </summary>
<TestMethod()> Public Sub AddTest()
??? Dim target As NewOrderEntry.Math = New NewOrderEntry.Math
??? Dim Value1 As Integer = 32
??? Dim Value2 As Integer = 10
??? Dim expected As Integer = 42
??? Dim actual As Integer
??? actual = target.Add(Value1, Value2)
??? Assert.AreEqual(expected, actual)
End Sub
??? 上面的示例中,代碼給兩個參數值賦予兩個整數,然后檢查Add方法的返回結果是否為預期的。如果Add方法的返回值是正確答案42,則測試通過;否則,測試失敗。用戶也可以建立數據驅動的單元測試。這將使用戶使用數據庫中的真實數據,而不是硬代碼值。
??? 只有精確地執行用戶代碼的單元測試才有用。如果在單元測試中只執行了1000行代碼中的10行,那么單元測試就不可能對用戶的代碼好壞作精確的描述。Team System的代碼覆蓋功能是判斷用戶的單元測試是否覆蓋了大部分已有代碼的重要資源,它同樣也能判斷是否存在從未用到并且可以因此將其刪除的代碼。
??? 除了Code Coverage Results窗口之外,用戶也可以打開源代碼的彩色代碼功能。如圖7所示的兩段代碼。紅色的是未被單元測試執行的代碼;綠色的是已經執行過單元測試的代碼。
圖7 代碼覆蓋,源代碼高亮顯示
??? 測試結果和代碼覆蓋結果還能發布到Team Foundation Server上,然后,將數據保存進數據庫。門戶站點上的報告利用這些數據來展示項目在測試和代碼的質量透視圖中所處的位置。
負載測試
??? 除了單元測試外,Team System還提供了創建、管理和運行Web負載測試的功能。這些功能和原來的應用程序測試中心非常相似,只是更加健壯、可升級并且與Visual Studio完全集成。用戶可以通過錄制一段用來在一個或多個機器上回放的訪問Web頁的會話來創建自己的測試。負載測試工具中有一些很好的特性。特別是這個工具除了能正確處理ASP.NET的ViewState外,還能處理ASP.NET表單的身份驗證。
??? 使用負載測試功能,最簡單的方式是建立一個測試項目。這是一個能加入到解決方案的新的項目類型。一旦創建完成,用戶可以添加多個新的測試,只需右擊Solution Explorer中的項目,然后選擇Add New Item。錄制一個Web的負載測試也很簡單,在項目中添加一個適當的測試類型,然后選擇Record來啟動錄制過程。當創建一個新測試時,它將在測試管理器窗口中和單元測試項目一起顯示出來,使用戶能夠完整地觀察項目中的各個測試。Web測試與Visual Studio的負載測試截然不同。一個Web測試是對Web應用程序的一個特殊部分進行測試的腳本。一個負載測試是一個單獨的測試,它使用適當的數據來模擬負載,例如模擬用戶的數量。因此用戶需要創建Web測試,然后在負載測試中用它來對Web應用程序增壓以進行測試。
測試器、人工測試器和缺陷跟蹤
??? 當Team System為Web應用程序提供單元測試和負載測試時,并不提供自動機制來測試非Web方式的用戶界面(盡管Compuware已經宣布其TestPartner產品提供富客戶端用戶界面)。QA團隊需要內建的測試管理工具(諸如缺陷跟蹤系統)提供支持。缺陷只是一種特殊的工作項,它同樣被加入Team System,并且像任務一樣被分配給不同的人去完成。缺陷的狀態能像缺陷的數量那樣在項目的門戶站點中看到。
??? 另一個重要特性是存儲和管理項目中的各種人工測試。用戶可能很熟悉通過建立各種各樣的Word文檔和人工腳本來細化人工測試一個系統所需要的步驟。對于Web測試和單元測試,Team System可以將這些腳本作為人工測試存入TFS中并進行管理。這些腳本可以是實際的Word文檔或純文本。這些測試也可以在Visual Studio中執行。
??? 當這些測試被選擇運行時,它們的狀態是不確定的,直到測試員一步步完成測試并且標記它們的結果是通過或者失敗。顯然,如果測試失敗,缺陷會被加入進來。人工測試也可以依據測試列表來進行分組以提供一些強大的組織功能。有了這些測試,TFS使開發者在需要重復這些步驟并再次引出這些缺陷時可以方便地訪問這些測試。這些新工具將提供給測試員和開發者一個統一的環境,使他們能更好地進行協作。
團隊構建
??? Visual Studio 2005的工具包中的另外一個工具是Team Build。Team Build是基于MS Build的,并隨.Net Framework 2.0發布,它是新的可擴展的構建引擎。Team Build支持構建服務器的概念。這個構建服務器將偵聽網絡上指引構建服務器使用存儲在TFS中的腳本構建應用程序的請求。用戶可以通過使用一個Visual Studio向導來選擇各種不同的構建選項以生成構建腳本。這些選項將FxCop或者單元測試作為構建過程的一部分。用戶也可以將更新工作項和發送提醒作為構建過程的一部分。例如,可以使用夜間構建過程來自動編譯應用程序,運行單元測試和靜態分析,最后將新構建的版本放到一個測試服務器上,并且發送通知給測試人員告知有了新的版本可供測試。
團隊站點和報表
??? Team System除了具有開發導向的功能外,它在快速開發過程之外帶來的重要的可視化特性也是值得注意的。它面向的對象包括經理、項目經理、測試員、業務用戶、分析員和任何其他一切可能對開項目發的狀態感興趣的人。雖然測試員和項目經理會使用Team Foundation Client訪問Team Foundation Server,但是,設想業務用戶和IT管理員也會進行這樣操作是不現實的。
??? 項目的SharePoint主頁對這些人來說是一個十分完美的工具。他們在這個站點上能察看到項目的當前狀態、查看缺陷的數量和嚴重程度、訪問項目文檔。此外,還可以獲得各種各樣的報表。這些報表包括未解決的工作項、未解決的缺陷報告、測試結果等等。這些增加的可視化功能提供了比原來強大得多的對開發過程的洞察力。
??? 在結束之前,我想補充說明一下可擴展性。對于已經應用了開發過程的組織,Team System的設計是可定制的。Team System也是基于能夠讓第三方的公司可以集成并擴展它的想法而設計的。Borland公司已經宣布會發布一個ClaiberRM需求管理工具的Team System集成版本。這將填補微軟產品線的一個空白。如果Team System不能滿足你所有的需要,那么可以尋找能夠集成和擴展它的合適的工具。
總結
??? 用戶在購買Visual Studio 2005 Team System時在某種意義上會同購買現在的Visual Studio有所不同。我要說明的一點是,在Beta版本中沒有精確地反映出版本的多樣性,但是這些將在官方發布的版本中得到改善。最值得注意的是,Team Foundation將會被作為一個獨立的服務器產品進行銷售。一些特性已經可用,并且更多的特性將在Beta階段陸續發布。如果你已經考慮到在開發中引入更多的“過程”,那么你應該調查一下Team System是否能符合你的需要。
作者介紹
??? Chris Menegay是Notion Solutions的創始人和首席顧問。Notion Solutions是一家專門研究微軟技術的咨詢培訓公司。訪問weblogs.asp.net/cmenegay可以獲得關于Chris的更多信息。
總結
以上是生活随笔為你收集整理的Team Up!用Visual Studio 2005 Team System组织所有的装备 --作者:Chris Menage的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 老是梦到和前任复合是怎么回事
- 下一篇: 梦到家里有人去世是什么意思