軟件開發通常被認為是一個困難的過程。關于如何改進應用程序開發過程以產生更好、更一致的結果,人們已經進行了大量的研究,并編寫了大量書籍。困難并不在于人們想不出新的、更好的主意來開發軟件,而是無法以有意義的方式實際實現這些想法。使用 Visual Studio?2005 Team System,Microsoft 正在步入一個重要的階段來幫助開發小組生成健壯的軟件系統。
![]() |
Team System 利用一個新的源代碼管理系統擴展了 Visual Studio 2005 的功能。Team System 也包含適用于開發人員的單元測試和代碼分析工具。然而,Microsoft 已經拓寬了它關注的焦點,即不僅僅提供用于開發人員的工具,現在還包括了支持整個開發團隊的工具。Team System 包括用于幫助項目管理人員、架構師、開發人員、測試人員,甚至是開發管理人員的工具。Team System 包括一個新的工作項跟蹤系統(用于管理開發任務和過程實現),以及一個 Web 門戶網站(允許開發過程的一個透明級別)。
本文,我會通過 Visual Studio 2005 December Community Technology Preview (CTP) 對 Team System 進行概述。我會說明如何建立開發項目,并探討從項目初期到測試階段的所有開發過程步驟。較之于在提供產品最終版本時需要進行 Team System 的安裝而言,安裝 December CTP 附帶的 Team System 版本要略困難一些。CTP 支持一個非常特殊的環境,該環境需要有多臺計算機或虛擬機才能進行安裝。盡管 DVD 或下載中提供的安裝指導是正確的,但是為了使一切都正常運行,您可能需要其他一些幫助。您也可以參考我的注釋,以及在以下網絡日記中發布的其他一些相關內容:weblogs.asp.net/cmenegay、blogs.msdn.com/robcaron 和 blogs.msdn.com/askburton。項目方法
過去,Visual Studio 只是一個針對開發人員的工具。因此,它為開發項目的其他階段(例如,需求收集、設計和測試)提供了很少的幫助。然而,Team System 旨在支持更多的項目相關人員,而不僅僅是開發人員。它意在支持整個開發生命周期,以及該生命周期中涉及到的人。
Team System 最大的優勢在于它是根據對過程的理解生成的。除了認為具有某種形式的過程可能是有益的之外,Microsoft 很少對有關過程究竟如何作出假設,因此內置了很大的靈活性。Team System 使用 Microsoft 稱為“方法模板”的工具來定義過程。您可以開發自己的方法,也可以使用 Team System 附帶的某個方法,甚至可以獲取第三方的方法模板。過去,很多開發團隊并沒有實現正規過程,這是因為采納并實現正規過程需要投入大量的時間和金錢。使用 Team System,該過程將成為團隊日常使用的工具的一部分,從而可為更多的開發團隊所使用。
Microsoft 目前建立了一個稱為 Microsoft?Solutions Framework (MSF) 的開發過程,它目前的版本是 3.0。MSF 還沒有廣為開發人員所采用,甚至在 Microsoft 也是如此,也許它被認為是難于學習和使用的。Microsoft 正在將 MSF 更新為 4.0 版本,并確認會隨 Team System 一起提供 MSF 4.0 的兩個不同版本:MSF Formal(在 Beta 1 Refresh 中也稱為 MSF Complete)和 MSF Agile。[編者更新 — 3/24/2005:MSF Formal 已重命名為 MSF for CMMI Process Improvement,而 MSF Agile 已重命名為 MSF for Agile Software Development。]這兩種方法都是作為模板實現的,并集成到 Visual Studio。December 2004 CTP 只包含對 MSF Agile 的支持。具有正規過程的公司很可能會將其現有過程移到 Team System 中,而那些以前沒實現正規方法的公司將使用 MSF Formal 或 MSF Agile。
然而,并不是開發過程的所有成員都有(或者甚至希望擁有)Visual Studio。為了滿足非開發人員的需要,還提供了 Project Portal 和 Team Foundation Client,從而可以使更多的用戶可訪問 Team System 的許多新功能。從本質上講,Team Foundation Client 是移除了所有開發功能并保留了所有 Team System 功能的 Visual Studio 2005 版本。這意味著本文涉及到的大部分過程也應該應用于 Team Foundation Client。
MSF Agile
MSF Formal 是一個旨在獲得 CMMI Level 3 Compliance 的過程,而 MSF Agile 意在更加靈活,在設計上是重復的。沒有單獨的過程能夠很好地適合所有項目,因此公司可能根據具體開發工作的需要來采用過程。對 MSF Agile 早期概況的了解,可以從 MSF for Agile Software Development 下載。
MSF Agile 支持以下五種角色:架構師、業務分析師、開發人員、項目管理人員和測試人員。當您閱讀以下幾個關于過程和團隊開發的段落時,請緊記這五個不同的角色,以及業務用戶/發起人和 IT 管理。Team System 具有適用于所有這些不同個體類型的功能。
創建團隊項目
既然我已經簡要介紹了 Team System 的全部用途,現在我要說明項目的建立過程,該項目在 Beta 1 Refresh 中稱為公文包項目(在后續版本中將稱為團隊項目)。加載 Visual Studio 2005 December CTP 之后,您首先需要連接到一臺 Team Foundation Server (TFS),該服務器應該運行在某個其他系統或虛擬機上。TFS 是一個提供許多 Team System 團隊功能的服務器平臺。TFS 提供的一些功能是新的源代碼控制系統、工作項跟蹤和團隊門戶網站。
要將 Visual Studio 連接到 TFS 計算機,請使用“Tools”菜單下的選項“Connect to Team Foundation Server”。該安裝說明會幫助您連接到 TFS 計算機。連接后,您會看到 Team Explorer 窗口。Team Explorer 是 TFS 的視圖,它與提供有關 SQL Server 數據庫信息的 Server Explorer 非常類似。Team Explorer 是一個很棒的工具。您可能想盡快熟悉它,因為您會定期使用它。
連接到 TFS 之后,您可以創建團隊項目。團隊項目是 TFS 的主要優勢之一。團隊項目是一個可在其中訪問并使用與項目相關的所有構件(包括設計文檔、工作項和項目計劃)的地方。您將為進行的每個開發項目創建一個團隊項目。要在 Team Explorer 中進行此操作,請使用“New Team Project”工具欄按鈕。也可以從 Team Explorer 右鍵單擊 TFS Server,并在那里創建團隊項目。您還具有將現有團隊項目添加到 Team Explorer 窗體的選項。在建立團隊項目時,您必須選擇您要使用哪種方法模板,如圖 1 所示。另外,您具有建立新源代碼控制文件夾或從現有代碼基分支的選項。我會以 MSF Agile 為例進行闡述。
創建一個新團隊項目
當您建立一個團隊項目時,會發生一些情況。關鍵的一點是 Windows SharePoint? 服務 (WSS) 團隊站點的創建。TFS 與 WSS 集成以提供其大量的文檔管理功能。WSS 也有可供 TFS 使用的協作功能。如果您打開瀏覽器并轉到 http://tfsserver/sites/project,您會看到由 TFS 創建的團隊站點主頁。這是一個 WSS 站點,可供任何具有適當權限的人訪問。這是一種可以使業務用戶和管理訪問并了解項目狀態的好方式。
有了團隊項目后,您可能想在進一步開展項目之前配置項目。為此,可以在 Team Explorer 中右鍵單擊您的項目,并選擇“Team Project Settings | Classifications”。“Settings”菜單選項允許您設置安全權限和源代碼控制策略,以及建立您的項目結構。如果選擇 MSF Agile,默認情況下,目前您的項目中添加了三個迭代。您可以對這些迭代進行重命名、移除或添加。例如,如果您想有六個階段的增強演示,則可以將它們設置為迭代。稍后,當您創建工作項時,它們可以與您的整個項目中的特定迭代相關聯。請記住,您可以對方法模板進行控制,因此不會覺得為該過程所限。
項目計劃和工作項
從項目管理的角度看,Team System 提供的一個主要好處是一個名為工作項跟蹤的功能。諸如單元測試、更好的源代碼控制和代碼分析等功能可以使開發人員非常興奮。另一方面,項目管理人員、企業股東和 IT 管理人員也會對名副其實的工作項跟蹤功能興奮異常。軟件開發過程中需要完成的每個任務都可以被認為是一個工作項。它們包括文檔任務、設計任務、開發任務、錯誤或需求。此時您可能想,您已經在 Microsoft Project 甚至是 Excel 中將工作項作為任務進行管理了。但實際情況是,多數人僅僅是在這些工具中創建任務,而沒有實際跟蹤或管理它們。
考慮到您當前的跟蹤過程,請思考以下問題的答案:設計文檔是完整的嗎?為特定的開發人員分配了多少任務?已經完成了多少任務?哪些任務遠沒有完成?任務沒有及時完時會對日程安排產生怎樣的影響?誠然,許多公司已經有能力回答這些問題了。然而,項目管理人員需要為此和團隊其他人員(包括開發人員、業務分析人員和測試人員)進行良好的交流。項目管理人員必須和所有這些人員進行談話,以便準確評估項目狀態。跟蹤任務狀態通常是通過項目狀態會議、個人談話或電子郵件實現的。 Team System 的目標之一是簡化數據收集、跟蹤和報告這一過程。
當您選擇了要使用的方法模板后(您可能記得,我選擇了 MSF Agile),會自動為您創建幾個任務(工作項)。之所以這樣,是因為在 MSF Agile 過程中,需要完成某些任務。圖 2 顯示了當我使用 MSF Agile 建立團隊項目時所創建的工作項示例。
MSF Agile 中的工作項
工作項非常類似于 Microsoft 項目中的任務,因為它們可以分配給人員。它們有一個狀態和持續時間。當人們完成他們的工作項時,他們可以更改這些工作項的狀態,并使該狀態反映在 WSS 團隊站點上。該 WSS 站點基于由 TFS 存儲在 SQL Server 中的數據、利用SQL Server?報告服務顯示不同的報告。您能夠創建自己的報告,然后使用自定義 Web 部件將其集成到 SharePoint 中。但是,請注意,這些報告并不是 December 2004 CTP 中的可用組件。
項目文檔
基于 MSF Agile 方法,該過程的早期步驟之一是開始創建某個文檔。該文檔可以是業務情況、方案,甚者是項目計劃,這主要取決于您在過程中所處的位置。創建的文檔將取決于您使用的方法。要在 Team System 的上下文中創建這些文檔,您可以使用 Team Explorer(也可以通過團隊門戶網站進行此操作)。如果向下追溯到 Documents 節點,您將能夠右鍵單擊并選擇“Add a Document”。當您指定哪個方法用于項目時,Team System 會配置將用于多種項目文檔的適當模板。然后,當選擇“Add a Document”時,會提示您通過選擇適當的模板來選擇您想添加的文檔類型。模板包括 Design、Lifecycle、Plans、Project Management、Requirements Scenarios and Features 的選項。選擇模板后,您將用適當的工具(例如,Microsoft Word 或 Excel)編輯文檔。
創建的文檔存儲在宿主項目的 WSS 站點中。這使您公司的人員只需將瀏覽器導航到適當的站點,就能訪問該文檔。直接添加到門戶網站的文檔將在 Team Explorer 中顯示。要查看 Team Explorer 中新添加的文檔,請右鍵單擊 ocument 節點并選擇“Refresh”。此時,項目管理人員可能希望創建一個實際的項目計劃。使用 Team System,這樣做非常有趣,當然,前提是假定您發現創建項目計劃和跟蹤任務是十分有趣的。至少 Team System 可以使您的項目管理更加簡單,為此我非常興奮!
在 Team System 中創建項目計劃的過程相當簡單。為此,您可以在 Team Explorer 中導航到“Documents | Project Management”并右鍵單擊。這里,上下文菜單包含一個選項 —“Create Microsoft Project Plan”。Team System 也支持在 Excel 電子表格中跟蹤項目任務,而且您將以與此類似的方式創建一個電子表格。
Team System 的一個實際好處是它與 Project 或 Excel 的關系。當您將 Visual Studio 2005 December CTP 安裝在一臺已安裝有Microsoft Project 或 Excel 的計算機上時,就會有其他一些功能添加到這些應用程序中。特別地,您會有一個 Work Items 菜單,以及一個允許您與 Team Foundation Server 進行交互的新工具欄。重要的功能是您可以使項目計劃任務與 Team System 中的工作項同步。
該過程首先創建一個項目計劃,并導入作為團隊項目創建的一部分而創建的原始工作項。然后,您需要添加并分配其他任務,并使項目計劃任務與 Team System 的工作項數據庫同步。當開發人員處理完任務并將代碼簽入到源代碼控制中時,他們會從 Visual Studio 更新工作項狀態。工作項狀態數據可以通過工作項報告在團隊門戶網站上使用。然后,項目管理人員可以使項目計劃與工作項數據庫同步,以便使信息保持最新,并獲取最新的狀態。
圖3顯示了帶有從 Team System 導入并用作 Project 任務的 Microsoft Project。您會注意到一個用來與 Team Foundation Server 交互的新工具欄。該集成在 Excel 和 Project 中可用。這是基于客戶反饋添加的,以便適應那些選擇用 Excel(而不是 Project)管理其項目任務的用戶。
當項目計劃準備好之后,應該使其與 Team System 同步,以便項目團隊成員會知道自己分到的工作項。如果您是一位開發人員,這樣做的好處是,您可以在無需退出 Visual Studio 的情況下接收工作項列表。您只需導航到 Team Explorer 中的 Work Items 并打開 My Work Items 或 My Active Work Items 即可。這種簡便的方法減輕了開發人員的負擔,而且可以減少項目管理人員和開發人員之間的會議次數。
設計您的應用程序
從開發人員的角度講,當分配了針對開發人員任務的工作項后,您就可以開始設計您的應用程序并編寫代碼。但愿項目計劃上的一個或多個任務能夠實際代表應用程序的設計階段。請注意,我說的設計是在編寫代碼之前。Team System 附帶了很棒的設計工具,您可以考慮使用它們。這里我不會研究關于設計人員的內容;有關更多信息,我向您推薦 Brian A. Randell 和 Rockford Lhotka 撰寫的文章“Bridge the Gap Between Development and Operations with Whitehorse”,該文章出自 MSDN ?Magazine 2004 年 7 月刊。
Team Foundation Version Control
在創建任何設計或代碼前,您可能想使用 Team Foundation Version Control 設置源代碼控制。Team Foundation Version 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”并選擇“Source Control”選項即可。
當配置為使用 Team Foundation Version Control 時,那么每次在 Visual Studio 中創建一個新項目時,您都會有一個用于將該項目添加到源代碼控制的選項。此時,您可以選擇您要使用的 Team Foundation Server。作為一名開發人員,在處理任務時,您可以標記工作項,以便使工作項與您要簽入源代碼控制的代碼相關聯。然后,該關聯會存儲到數據庫中,隨后可用于創建生成報告。另外,這個新的源代碼控制系統也允許創建簽入策略。簽入策略的目的是,限制允許什么樣的代碼簽入源代碼控制儲存庫。
編寫更好的代碼
Visual Studio 2005 Team System 在 IDE 中集成了幾個有助于編寫更好代碼的工具。它們包括用于分析應用程序中潛在性能問題的分析器,針對托管和非托管代碼的代碼分析工具,以及帶有代碼覆蓋分析功能的單元測試工具。這些代碼分析工具基于已在 Microsoft 使用了一段時間的技術,但它們從未很好地與 Visual Studio 集成。本機代碼使用 PREfast 進行分析,而托管代碼使用 FxCop 分析。單元測試工具非常類似于諸如 Nunit 的工具,但是它更易于使用,而且創建測試所需的時間也減少了。這使得單元測試更易于人們接受。單元測試也很好地與代碼覆蓋相集成,代碼覆蓋本質上是一個報告機制,允許您知道您的單元測試實際執行了多少代碼。
托管代碼分析
如果您熟悉 FxCop,您會感到 Team System 的托管代碼分析功能是很令人舒服的。與 IDE 的集成是很棒的。要啟用 Code Analysis,只需轉到項目的屬性,然后轉到“Code Analysis”選項卡。在那里,您可以啟用 Code Analysis,并選擇您希望運行的規則。多數公司可能會禁用提供的大量規則,因為 Code Analysis 附帶的規則非常嚴格。實際上,針對您的一個現有應用程序運行 FxCop 來查看您與它的規則有多么不符合十分令人沮喪。
與 IDE 集成的 Code Analysis,其優勢在于打開后,它會在您的應用程序編譯時自動運行,并為您提供作為生成過程一部分的警告或錯誤。您具有針對 Release 版本打開 Code Analysis 以及針對 Debug 版本關閉它的功能,這真是一個好功能。需要知道的是,在較大型項目中運行 Code Analysis 可能要花費一些時間。另一個很好的可用功能是,將運行 Code Analysis 作為源代碼控制的簽入策略運行。這能夠避免開發人員將未通過 FxCop 驗證規則的代碼簽入到源代碼控制儲存庫中。簽入策略附帶了一個允許簽入代碼的重寫機制,但是該重寫可以被記錄。
單元測試
單元測試的一般概念是在您的應用程序和測試中運行獨立的代碼片段,以便看看它們是否產生了所需的結果。這通常等同于使用大量受控制的輸入調用一個方法并測試返回的數據。這可以在無需任何工具支持的情況現完成,但要使其更為高效,還是需要一些幫助。單元測試的其他一些普遍問題是測試的創建,測試的組織,以及是否具有一個可以輕松報告這些測試成功與否的機制。Team System 解決了所有這些問題。
Team System 提供了自動為您的方法創建單元測試的功能。[編者更新 — 3/24/2005:該功能僅用于托管代碼。] 屬性用于區別單元測試和正規代碼。IDE 中的工具將您的測試組織為測試列表并根據這些測試列表執行測試。當您執行測試時,結果在 Visual Studio 的 Test Results 窗口中顯示。
要在項目中實現單元測試,只需右鍵單擊您的代碼并選擇“Create Tests”即可,如圖 4 所示。這會提示您選擇用哪些方法在哪些對象上創建測試。您可以通過從多個不同類選擇方法來一次創建多個測試。自動生成的測試將包含某些代碼,該代碼用于初始化包含所測試方法的對象、聲明用于方法參數的變量,并最終調用要測試的方法。默認情況下,這些測試將返回 Inconclusive 結果。創建這些測試時,您可以在“Configuration”選項卡中對其進行更改。Inconclusive 意味著不知道測試成功與否。這樣做可以提醒您需要實際上將某個邏輯放入測試。請考慮以下要測試的方法示例:
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 Manager”窗口。您可以在“Test | Windows”菜單下找到 Test Manager,它允許您查看不同的測試,并選擇您希望運行哪些測試。Test Manager 也允許您將測試添加到創建的多個測試列表中。例如,您可能想將用于演練業務邏輯的所有測試或數據訪問代碼進行分組。您也可以根據應用程序中的功能區域對測試進行分組。
當您運行測試時,您有幾個選項。您應該考慮的一個選項是打開代碼覆蓋,它允許您捕獲并分析顯示單元測試所執行代碼的數據。代碼覆蓋是測試運行配置的一部分。在 Test Manager 中,工具欄按鈕“Edit Test Run Configuration”允許您選擇并編輯一組用于運行測試的可配置選項。在運行測試之后,您應該查看兩項內容:測試結果(請參見 圖 6),以及代碼覆蓋結果(請參見圖 7)。
您會看到,Test Results 窗口指出我的一個測試是非決定性的。這是因為我沒有更改生成的測試來進行任何有用的操作。該測試應該更改為如下所示的內容。
''' 〈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 視圖,您也可以啟用源代碼的顏色編碼。圖 9 顯示了兩段代碼。紅色代碼不是由單元測試執行的;執行的是綠色代碼。
測試結果和代碼覆蓋結果可以發布到您的 Team Foundation Server,該服務器會將該數據存儲在數據庫中。這允許門戶網站上顯示的報告使用該數據來顯示項目所處的位置(從測試和代碼質量的角度來看)。
加載測試
除了單元測試,Team System 也提供用于創建、管理和運行 Web 加載測試的功能。該功能非常類似于 Application Center Test 以前提供的功能,只是較其更為健壯,更具可伸縮性,而且完全與 Visual Studio 集成。您可以從頭開始創建自己的測試,并在一臺或多臺 PC 上記錄用于以后重放的 Web 瀏覽器會話。加載測試工具中包括了一些很好的功能。特別地,除了正確處理 ASP.NET ViewState,該工具還可以處理 ASP.NET 窗體身份驗證。
要使用加載測試功能,最簡單的方式是創建一個新的 Test Project。這是一個您可以添加到解決方案中的新項目類型。完成后,您可以通過右健單擊 Solution Explorer 中的該項目并選擇“Add New Item”來添加多個新測試。記錄一個 Web 加載測試就像將適當的測試類型添加到您的項目并選擇 Record 來初始化記錄過程一樣簡單。當創建新測試時,它們會和您的單元測試一起在 Test Manager 窗口中顯示,從而為您提供項目的各種測試的完整視圖。Web 測試與 Visual Studio 2005 中的加載測試是不同的。Web 測試是演練 Web 應用程序特定部分的腳本。加載測試是一個包含用于模擬加載的適當數據(例如,要模擬的用戶數量)的單獨測試。由此您可以創建 Web 測試,然后在加載測試中使用它們來對您的應用程序進行壓力測試。
測試器、手動測試器和錯誤跟蹤
雖然 Team System 提供 Web 應用程序的單元測試和加載測試,但它不提供用于測試非 Web 用戶界面的自動機制(雖然 Compuware 已經宣布集成它的 TestPartner 產品來提供對胖客戶端用戶界面的測試)。您的 QA 團隊是通過內置的測試管理工具(以及錯誤跟蹤系統)獲得支持的。錯誤只是工作項的一個特定類型,它嵌入在 Team System 之中,并作為任務分配給某人使用。錯誤狀態以及錯誤計數可以從項目門戶站點查看。
另一個好功能是存儲并管理項目現有的各種手動測試。您可能熟悉各種 Word 文檔和手動腳本,通常這些腳本在經過創建后可以顯示手動測試一個系統所需的詳細步驟信息。Team System 允許這些腳本作為手動測試存儲在 TFS 中,并托管在 Web 測試和單元測試中。這些腳本可以是實際的 Word 文檔或純文本。也有從 Visual Studio 中執行這些測試的能力。
當選擇這些測試以準備運行時,這些測試的狀態為掛起,直到一個測試器逐句通過該手動過程并將該測試標記為已通過或已失敗為止。顯然,如果測試失敗,則很可能是輸入了一個錯誤。手動測試也可以使用測試列表來進行分組,以便提供一些很好的組織功能。在 TFS 中具有測試允許開發人員在需要重復隨后用來復制錯誤的步驟時,輕松訪問這些測試。這些新工具真正將測試人員和開發人員放在同一環境中,以便允許他們更好地協作。
Team Build
Visual Studio 2005 工具包中的另一個工具是 Team Build。Team Build 利用 MSBuild,后者是 .NET Framework 2.0 附帶的一個新的可擴展生成引擎。Team Build 支持生成服務器的概念。生成服務器將偵聽網絡請求,這些請求會指導生成服務器使用存儲在 Team Foundation Version Control 中的構建腳本生成應用程序。可以通過一個向導選擇各種生成選項來從 Visual Studio 生成這些生成腳本。這些選項包括使 FxCop 或單元測試作為生成過程的一部分運行。您也可以使工作項更新,使通知作為生成過程的一部分發送。例如,您可以使一個日常生成過程自動編譯您的應用程序,運行單元測試和靜態分析,然后最終將新的生成放在測試服務器上,并通知可以使用新生成的測試人員。
團隊站點和報告
除了 Team System 的面向開發人員的功能之外,也應該注意到它為直接開發過程之外的人員帶來的可見性。這包括管理人員、項目管理人員、測試人員、業務用戶、分析人員,以及對開發項目狀態有興趣的任何人。雖然測試人員和項目管理人員可以使用 Team Foundation Client 來訪問 Team Foundation Server,但是假設業務用戶和 IT 管理運行 Team Foundation Client 是不現實的。
項目的 SharePoint 主頁是用于這些個體的完美工具。他們可以從該站點訪問項目的當前狀態,查看錯誤數量和嚴重性,并訪問項目文檔。另外,可以使用多種報告。這包括針對突出的工作項、突出的錯誤報告、測試結果以及許多其他內容的報告。這個新增的可見性應該提供對開發過程(而不是以前可用的內容)的更好理解。
在我結束本文之前,我應該提一下可擴展性。對于已經使用現有開發過程的企業而言,Team System 的設計目標是支持自定義。Team System 也具有使第三方企業集成并擴展它的設計理念。Borland 已經宣布他們會發布一個與 Team System 集成的 CaliberRM y 需求管理工具版本。這填補了 Microsoft 產品套件的空白。但是,如果 Team System 不能滿足您的需要,請確保找到與它集成并擴展它的適當工具。
小結
Visual Studio 2005 Team System 的購買方式將與目前 Visual Studio 的購買方式不同。我之所以指出這一區別,是因為測試版并不能準確反映該產品正式發布時可用的多種產品。最特別的是,Team Foundation 將是一個單獨購買的服務器產品。已經有幾個功能演練是可用的,而且在測試循環中將發布更多的演練。如果您打算將更多“過程”放入您的開發工作中,則應該考慮研究一下 Team System,看看它能否滿足您的需要。有關更多信息,請訪問產品站點,網址是 Visual Studio 2005 Team System