★33°空間‰


                                 ----★七彩服飾  【最潮拜☆日單精品】【Esprit】【Hotwind】滿150包郵-女裝-流行女裝    www.7color.hb.cn

                                 ----智力比知識重要,素質(zhì)比智力重要,覺悟比素質(zhì)更重要
          posts - 110,comments - 35,trackbacks - 0

          軟件開發(fā)通常被認(rèn)為是一個困難的過程。關(guān)于如何改進(jìn)應(yīng)用程序開發(fā)過程以產(chǎn)生更好、更一致的結(jié)果,人們已經(jīng)進(jìn)行了大量的研究,并編寫了大量書籍。困難并不在于人們想不出新的、更好的主意來開發(fā)軟件,而是無法以有意義的方式實際實現(xiàn)這些想法。使用 Visual Studio?2005 Team System,Microsoft 正在步入一個重要的階段來幫助開發(fā)小組生成健壯的軟件系統(tǒng)。

          <a target="_top" > <img src="http://m.cn.2mdn.net/1141063/australia_300x250_download.gif" border="0" /> </a>

          Team System 利用一個新的源代碼管理系統(tǒng)擴(kuò)展了 Visual Studio 2005 的功能。Team System 也包含適用于開發(fā)人員的單元測試和代碼分析工具。然而,Microsoft 已經(jīng)拓寬了它關(guān)注的焦點,即不僅僅提供用于開發(fā)人員的工具,現(xiàn)在還包括了支持整個開發(fā)團(tuán)隊的工具。Team System 包括用于幫助項目管理人員、架構(gòu)師、開發(fā)人員、測試人員,甚至是開發(fā)管理人員的工具。Team System 包括一個新的工作項跟蹤系統(tǒng)(用于管理開發(fā)任務(wù)和過程實現(xiàn)),以及一個 Web 門戶網(wǎng)站(允許開發(fā)過程的一個透明級別)。

          本文,我會通過 Visual Studio 2005 December Community Technology Preview (CTP) 對 Team System 進(jìn)行概述。我會說明如何建立開發(fā)項目,并探討從項目初期到測試階段的所有開發(fā)過程步驟。較之于在提供產(chǎn)品最終版本時需要進(jìn)行 Team System 的安裝而言,安裝 December CTP 附帶的 Team System 版本要略困難一些。CTP 支持一個非常特殊的環(huán)境,該環(huán)境需要有多臺計算機(jī)或虛擬機(jī)才能進(jìn)行安裝。盡管 DVD 或下載中提供的安裝指導(dǎo)是正確的,但是為了使一切都正常運行,您可能需要其他一些幫助。您也可以參考我的注釋,以及在以下網(wǎng)絡(luò)日記中發(fā)布的其他一些相關(guān)內(nèi)容:weblogs.asp.net/cmenegay、blogs.msdn.com/robcaron 和 blogs.msdn.com/askburton。項目方法

          過去,Visual Studio 只是一個針對開發(fā)人員的工具。因此,它為開發(fā)項目的其他階段(例如,需求收集、設(shè)計和測試)提供了很少的幫助。然而,Team System 旨在支持更多的項目相關(guān)人員,而不僅僅是開發(fā)人員。它意在支持整個開發(fā)生命周期,以及該生命周期中涉及到的人。

          Team System 最大的優(yōu)勢在于它是根據(jù)對過程的理解生成的。除了認(rèn)為具有某種形式的過程可能是有益的之外,Microsoft 很少對有關(guān)過程究竟如何作出假設(shè),因此內(nèi)置了很大的靈活性。Team System 使用 Microsoft 稱為“方法模板”的工具來定義過程。您可以開發(fā)自己的方法,也可以使用 Team System 附帶的某個方法,甚至可以獲取第三方的方法模板。過去,很多開發(fā)團(tuán)隊并沒有實現(xiàn)正規(guī)過程,這是因為采納并實現(xiàn)正規(guī)過程需要投入大量的時間和金錢。使用 Team System,該過程將成為團(tuán)隊日常使用的工具的一部分,從而可為更多的開發(fā)團(tuán)隊所使用。

          Microsoft 目前建立了一個稱為 Microsoft?Solutions Framework (MSF) 的開發(fā)過程,它目前的版本是 3.0。MSF 還沒有廣為開發(fā)人員所采用,甚至在 Microsoft 也是如此,也許它被認(rèn)為是難于學(xué)習(xí)和使用的。Microsoft 正在將 MSF 更新為 4.0 版本,并確認(rèn)會隨 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。]這兩種方法都是作為模板實現(xiàn)的,并集成到 Visual Studio。December 2004 CTP 只包含對 MSF Agile 的支持。具有正規(guī)過程的公司很可能會將其現(xiàn)有過程移到 Team System 中,而那些以前沒實現(xiàn)正規(guī)方法的公司將使用 MSF Formal 或 MSF Agile。

          然而,并不是開發(fā)過程的所有成員都有(或者甚至希望擁有)Visual Studio。為了滿足非開發(fā)人員的需要,還提供了 Project Portal 和 Team Foundation Client,從而可以使更多的用戶可訪問 Team System 的許多新功能。從本質(zhì)上講,Team Foundation Client 是移除了所有開發(fā)功能并保留了所有 Team System 功能的 Visual Studio 2005 版本。這意味著本文涉及到的大部分過程也應(yīng)該應(yīng)用于 Team Foundation Client。

          MSF Agile

          MSF Formal 是一個旨在獲得 CMMI Level 3 Compliance 的過程,而 MSF Agile 意在更加靈活,在設(shè)計上是重復(fù)的。沒有單獨的過程能夠很好地適合所有項目,因此公司可能根據(jù)具體開發(fā)工作的需要來采用過程。對 MSF Agile 早期概況的了解,可以從 MSF for Agile Software Development 下載。

          MSF Agile 支持以下五種角色:架構(gòu)師、業(yè)務(wù)分析師、開發(fā)人員、項目管理人員和測試人員。當(dāng)您閱讀以下幾個關(guān)于過程和團(tuán)隊開發(fā)的段落時,請緊記這五個不同的角色,以及業(yè)務(wù)用戶/發(fā)起人和 IT 管理。Team System 具有適用于所有這些不同個體類型的功能。

          創(chuàng)建團(tuán)隊項目

          既然我已經(jīng)簡要介紹了 Team System 的全部用途,現(xiàn)在我要說明項目的建立過程,該項目在 Beta 1 Refresh 中稱為公文包項目(在后續(xù)版本中將稱為團(tuán)隊項目)。加載 Visual Studio 2005 December CTP 之后,您首先需要連接到一臺 Team Foundation Server (TFS),該服務(wù)器應(yīng)該運行在某個其他系統(tǒng)或虛擬機(jī)上。TFS 是一個提供許多 Team System 團(tuán)隊功能的服務(wù)器平臺。TFS 提供的一些功能是新的源代碼控制系統(tǒng)、工作項跟蹤和團(tuán)隊門戶網(wǎng)站。

          要將 Visual Studio 連接到 TFS 計算機(jī),請使用“Tools”菜單下的選項“Connect to Team Foundation Server”。該安裝說明會幫助您連接到 TFS 計算機(jī)。連接后,您會看到 Team Explorer 窗口。Team Explorer 是 TFS 的視圖,它與提供有關(guān) SQL Server 數(shù)據(jù)庫信息的 Server Explorer 非常類似。Team Explorer 是一個很棒的工具。您可能想盡快熟悉它,因為您會定期使用它。

          連接到 TFS 之后,您可以創(chuàng)建團(tuán)隊項目。團(tuán)隊項目是 TFS 的主要優(yōu)勢之一。團(tuán)隊項目是一個可在其中訪問并使用與項目相關(guān)的所有構(gòu)件(包括設(shè)計文檔、工作項和項目計劃)的地方。您將為進(jìn)行的每個開發(fā)項目創(chuàng)建一個團(tuán)隊項目。要在 Team Explorer 中進(jìn)行此操作,請使用“New Team Project”工具欄按鈕。也可以從 Team Explorer 右鍵單擊 TFS Server,并在那里創(chuàng)建團(tuán)隊項目。您還具有將現(xiàn)有團(tuán)隊項目添加到 Team Explorer 窗體的選項。在建立團(tuán)隊項目時,您必須選擇您要使用哪種方法模板,如圖 1 所示。另外,您具有建立新源代碼控制文件夾或從現(xiàn)有代碼基分支的選項。我會以 MSF Agile 為例進(jìn)行闡述。

          創(chuàng)建一個新團(tuán)隊項目

          當(dāng)您建立一個團(tuán)隊項目時,會發(fā)生一些情況。關(guān)鍵的一點是 Windows SharePoint? 服務(wù) (WSS) 團(tuán)隊站點的創(chuàng)建。TFS 與 WSS 集成以提供其大量的文檔管理功能。WSS 也有可供 TFS 使用的協(xié)作功能。如果您打開瀏覽器并轉(zhuǎn)到 http://tfsserver/sites/project,您會看到由 TFS 創(chuàng)建的團(tuán)隊站點主頁。這是一個 WSS 站點,可供任何具有適當(dāng)權(quán)限的人訪問。這是一種可以使業(yè)務(wù)用戶和管理訪問并了解項目狀態(tài)的好方式。

          有了團(tuán)隊項目后,您可能想在進(jìn)一步開展項目之前配置項目。為此,可以在 Team Explorer 中右鍵單擊您的項目,并選擇“Team Project Settings | Classifications”。“Settings”菜單選項允許您設(shè)置安全權(quán)限和源代碼控制策略,以及建立您的項目結(jié)構(gòu)。如果選擇 MSF Agile,默認(rèn)情況下,目前您的項目中添加了三個迭代。您可以對這些迭代進(jìn)行重命名、移除或添加。例如,如果您想有六個階段的增強演示,則可以將它們設(shè)置為迭代。稍后,當(dāng)您創(chuàng)建工作項時,它們可以與您的整個項目中的特定迭代相關(guān)聯(lián)。請記住,您可以對方法模板進(jìn)行控制,因此不會覺得為該過程所限。

          項目計劃和工作項

          從項目管理的角度看,Team System 提供的一個主要好處是一個名為工作項跟蹤的功能。諸如單元測試、更好的源代碼控制和代碼分析等功能可以使開發(fā)人員非常興奮。另一方面,項目管理人員、企業(yè)股東和 IT 管理人員也會對名副其實的工作項跟蹤功能興奮異常。軟件開發(fā)過程中需要完成的每個任務(wù)都可以被認(rèn)為是一個工作項。它們包括文檔任務(wù)、設(shè)計任務(wù)、開發(fā)任務(wù)、錯誤或需求。此時您可能想,您已經(jīng)在 Microsoft Project 甚至是 Excel 中將工作項作為任務(wù)進(jìn)行管理了。但實際情況是,多數(shù)人僅僅是在這些工具中創(chuàng)建任務(wù),而沒有實際跟蹤或管理它們。

          考慮到您當(dāng)前的跟蹤過程,請思考以下問題的答案:設(shè)計文檔是完整的嗎?為特定的開發(fā)人員分配了多少任務(wù)?已經(jīng)完成了多少任務(wù)?哪些任務(wù)遠(yuǎn)沒有完成?任務(wù)沒有及時完時會對日程安排產(chǎn)生怎樣的影響?誠然,許多公司已經(jīng)有能力回答這些問題了。然而,項目管理人員需要為此和團(tuán)隊其他人員(包括開發(fā)人員、業(yè)務(wù)分析人員和測試人員)進(jìn)行良好的交流。項目管理人員必須和所有這些人員進(jìn)行談話,以便準(zhǔn)確評估項目狀態(tài)。跟蹤任務(wù)狀態(tài)通常是通過項目狀態(tài)會議、個人談話或電子郵件實現(xiàn)的。 Team System 的目標(biāo)之一是簡化數(shù)據(jù)收集、跟蹤和報告這一過程。

          當(dāng)您選擇了要使用的方法模板后(您可能記得,我選擇了 MSF Agile),會自動為您創(chuàng)建幾個任務(wù)(工作項)。之所以這樣,是因為在 MSF Agile 過程中,需要完成某些任務(wù)。圖 2 顯示了當(dāng)我使用 MSF Agile 建立團(tuán)隊項目時所創(chuàng)建的工作項示例。

          MSF Agile 中的工作項

          工作項非常類似于 Microsoft 項目中的任務(wù),因為它們可以分配給人員。它們有一個狀態(tài)和持續(xù)時間。當(dāng)人們完成他們的工作項時,他們可以更改這些工作項的狀態(tài),并使該狀態(tài)反映在 WSS 團(tuán)隊站點上。該 WSS 站點基于由 TFS 存儲在 SQL Server 中的數(shù)據(jù)、利用SQL Server?報告服務(wù)顯示不同的報告。您能夠創(chuàng)建自己的報告,然后使用自定義 Web 部件將其集成到 SharePoint 中。但是,請注意,這些報告并不是 December 2004 CTP 中的可用組件。

          項目文檔

          基于 MSF Agile 方法,該過程的早期步驟之一是開始創(chuàng)建某個文檔。該文檔可以是業(yè)務(wù)情況、方案,甚者是項目計劃,這主要取決于您在過程中所處的位置。創(chuàng)建的文檔將取決于您使用的方法。要在 Team System 的上下文中創(chuàng)建這些文檔,您可以使用 Team Explorer(也可以通過團(tuán)隊門戶網(wǎng)站進(jìn)行此操作)。如果向下追溯到 Documents 節(jié)點,您將能夠右鍵單擊并選擇“Add a Document”。當(dāng)您指定哪個方法用于項目時,Team System 會配置將用于多種項目文檔的適當(dāng)模板。然后,當(dāng)選擇“Add a Document”時,會提示您通過選擇適當(dāng)?shù)哪0鍋磉x擇您想添加的文檔類型。模板包括 Design、Lifecycle、Plans、Project Management、Requirements Scenarios and Features 的選項。選擇模板后,您將用適當(dāng)?shù)墓ぞ撸ɡ纾琈icrosoft Word 或 Excel)編輯文檔。

          創(chuàng)建的文檔存儲在宿主項目的 WSS 站點中。這使您公司的人員只需將瀏覽器導(dǎo)航到適當(dāng)?shù)恼军c,就能訪問該文檔。直接添加到門戶網(wǎng)站的文檔將在 Team Explorer 中顯示。要查看 Team Explorer 中新添加的文檔,請右鍵單擊 ocument 節(jié)點并選擇“Refresh”。此時,項目管理人員可能希望創(chuàng)建一個實際的項目計劃。使用 Team System,這樣做非常有趣,當(dāng)然,前提是假定您發(fā)現(xiàn)創(chuàng)建項目計劃和跟蹤任務(wù)是十分有趣的。至少 Team System 可以使您的項目管理更加簡單,為此我非常興奮!

          在 Team System 中創(chuàng)建項目計劃的過程相當(dāng)簡單。為此,您可以在 Team Explorer 中導(dǎo)航到“Documents | Project Management”并右鍵單擊。這里,上下文菜單包含一個選項 —“Create Microsoft Project Plan”。Team System 也支持在 Excel 電子表格中跟蹤項目任務(wù),而且您將以與此類似的方式創(chuàng)建一個電子表格。

          Team System 的一個實際好處是它與 Project 或 Excel 的關(guān)系。當(dāng)您將 Visual Studio 2005 December CTP 安裝在一臺已安裝有Microsoft Project 或 Excel 的計算機(jī)上時,就會有其他一些功能添加到這些應(yīng)用程序中。特別地,您會有一個 Work Items 菜單,以及一個允許您與 Team Foundation Server 進(jìn)行交互的新工具欄。重要的功能是您可以使項目計劃任務(wù)與 Team System 中的工作項同步。

          該過程首先創(chuàng)建一個項目計劃,并導(dǎo)入作為團(tuán)隊項目創(chuàng)建的一部分而創(chuàng)建的原始工作項。然后,您需要添加并分配其他任務(wù),并使項目計劃任務(wù)與 Team System 的工作項數(shù)據(jù)庫同步。當(dāng)開發(fā)人員處理完任務(wù)并將代碼簽入到源代碼控制中時,他們會從 Visual Studio 更新工作項狀態(tài)。工作項狀態(tài)數(shù)據(jù)可以通過工作項報告在團(tuán)隊門戶網(wǎng)站上使用。然后,項目管理人員可以使項目計劃與工作項數(shù)據(jù)庫同步,以便使信息保持最新,并獲取最新的狀態(tài)。

          圖3顯示了帶有從 Team System 導(dǎo)入并用作 Project 任務(wù)的 Microsoft Project。您會注意到一個用來與 Team Foundation Server 交互的新工具欄。該集成在 Excel 和 Project 中可用。這是基于客戶反饋添加的,以便適應(yīng)那些選擇用 Excel(而不是 Project)管理其項目任務(wù)的用戶。

          當(dāng)項目計劃準(zhǔn)備好之后,應(yīng)該使其與 Team System 同步,以便項目團(tuán)隊成員會知道自己分到的工作項。如果您是一位開發(fā)人員,這樣做的好處是,您可以在無需退出 Visual Studio 的情況下接收工作項列表。您只需導(dǎo)航到 Team Explorer 中的 Work Items 并打開 My Work Items 或 My Active Work Items 即可。這種簡便的方法減輕了開發(fā)人員的負(fù)擔(dān),而且可以減少項目管理人員和開發(fā)人員之間的會議次數(shù)。

          設(shè)計您的應(yīng)用程序

          從開發(fā)人員的角度講,當(dāng)分配了針對開發(fā)人員任務(wù)的工作項后,您就可以開始設(shè)計您的應(yīng)用程序并編寫代碼。但愿項目計劃上的一個或多個任務(wù)能夠?qū)嶋H代表應(yīng)用程序的設(shè)計階段。請注意,我說的設(shè)計是在編寫代碼之前。Team System 附帶了很棒的設(shè)計工具,您可以考慮使用它們。這里我不會研究關(guān)于設(shè)計人員的內(nèi)容;有關(guān)更多信息,我向您推薦 Brian A. Randell 和 Rockford Lhotka 撰寫的文章“Bridge the Gap Between Development and Operations with Whitehorse”,該文章出自 MSDN ?Magazine 2004 年 7 月刊。

          Team Foundation Version Control

          在創(chuàng)建任何設(shè)計或代碼前,您可能想使用 Team Foundation Version Control 設(shè)置源代碼控制。Team Foundation Version Control(之前代號為“Hatteras”)是一個比 Microsoft Visual SourceSafe? 更加健壯的平臺。您存儲在這個新源代碼控制系統(tǒng)中的所有內(nèi)容都會自動備份到 SQL Server 2005 數(shù)據(jù)庫中,以方便管理。這個新的源代碼控制系統(tǒng)的設(shè)計目標(biāo)包含高可伸縮性和性能,這兩個功能在 Visual SourceSafe 中是沒有的。該新源代碼控制系統(tǒng)將包含更健壯的分支和合并功能。因此,默認(rèn)情況下將打開多簽出功能。

          一個稱為“shelving”的新功能也可用。該功能允許您獲取要使用的簽出代碼并將其簽入到源代碼控制(而不是主要分支),從而允許開發(fā)人員正確備份他們的工作,因而避免了為團(tuán)隊的其他開發(fā)人員提供不完整的更改。

          Visual SourceSafe 仍然可用,并且可以通過更新來使用 Visual Studio 2005。Visual SourceSafe 可能適用于小規(guī)模團(tuán)隊的小項目,這些團(tuán)隊可能不需要 Team Foundation Server 的功能,或者不想花額外的精力和資金安裝它。要選擇使用哪個源代碼控制引擎,只需打開 Visual Studio,轉(zhuǎn)到“Tools | Options”并選擇“Source Control”選項即可。

          當(dāng)配置為使用 Team Foundation Version Control 時,那么每次在 Visual Studio 中創(chuàng)建一個新項目時,您都會有一個用于將該項目添加到源代碼控制的選項。此時,您可以選擇您要使用的 Team Foundation Server。作為一名開發(fā)人員,在處理任務(wù)時,您可以標(biāo)記工作項,以便使工作項與您要簽入源代碼控制的代碼相關(guān)聯(lián)。然后,該關(guān)聯(lián)會存儲到數(shù)據(jù)庫中,隨后可用于創(chuàng)建生成報告。另外,這個新的源代碼控制系統(tǒng)也允許創(chuàng)建簽入策略。簽入策略的目的是,限制允許什么樣的代碼簽入源代碼控制儲存庫。

          編寫更好的代碼

          Visual Studio 2005 Team System 在 IDE 中集成了幾個有助于編寫更好代碼的工具。它們包括用于分析應(yīng)用程序中潛在性能問題的分析器,針對托管和非托管代碼的代碼分析工具,以及帶有代碼覆蓋分析功能的單元測試工具。這些代碼分析工具基于已在 Microsoft 使用了一段時間的技術(shù),但它們從未很好地與 Visual Studio 集成。本機(jī)代碼使用 PREfast 進(jìn)行分析,而托管代碼使用 FxCop 分析。單元測試工具非常類似于諸如 Nunit 的工具,但是它更易于使用,而且創(chuàng)建測試所需的時間也減少了。這使得單元測試更易于人們接受。單元測試也很好地與代碼覆蓋相集成,代碼覆蓋本質(zhì)上是一個報告機(jī)制,允許您知道您的單元測試實際執(zhí)行了多少代碼。

          托管代碼分析

          如果您熟悉 FxCop,您會感到 Team System 的托管代碼分析功能是很令人舒服的。與 IDE 的集成是很棒的。要啟用 Code Analysis,只需轉(zhuǎn)到項目的屬性,然后轉(zhuǎn)到“Code Analysis”選項卡。在那里,您可以啟用 Code Analysis,并選擇您希望運行的規(guī)則。多數(shù)公司可能會禁用提供的大量規(guī)則,因為 Code Analysis 附帶的規(guī)則非常嚴(yán)格。實際上,針對您的一個現(xiàn)有應(yīng)用程序運行 FxCop 來查看您與它的規(guī)則有多么不符合十分令人沮喪。

          與 IDE 集成的 Code Analysis,其優(yōu)勢在于打開后,它會在您的應(yīng)用程序編譯時自動運行,并為您提供作為生成過程一部分的警告或錯誤。您具有針對 Release 版本打開 Code Analysis 以及針對 Debug 版本關(guān)閉它的功能,這真是一個好功能。需要知道的是,在較大型項目中運行 Code Analysis 可能要花費一些時間。另一個很好的可用功能是,將運行 Code Analysis 作為源代碼控制的簽入策略運行。這能夠避免開發(fā)人員將未通過 FxCop 驗證規(guī)則的代碼簽入到源代碼控制儲存庫中。簽入策略附帶了一個允許簽入代碼的重寫機(jī)制,但是該重寫可以被記錄。

          單元測試

          單元測試的一般概念是在您的應(yīng)用程序和測試中運行獨立的代碼片段,以便看看它們是否產(chǎn)生了所需的結(jié)果。這通常等同于使用大量受控制的輸入調(diào)用一個方法并測試返回的數(shù)據(jù)。這可以在無需任何工具支持的情況現(xiàn)完成,但要使其更為高效,還是需要一些幫助。單元測試的其他一些普遍問題是測試的創(chuàng)建,測試的組織,以及是否具有一個可以輕松報告這些測試成功與否的機(jī)制。Team System 解決了所有這些問題。

          Team System 提供了自動為您的方法創(chuàng)建單元測試的功能。[編者更新 — 3/24/2005:該功能僅用于托管代碼。] 屬性用于區(qū)別單元測試和正規(guī)代碼。IDE 中的工具將您的測試組織為測試列表并根據(jù)這些測試列表執(zhí)行測試。當(dāng)您執(zhí)行測試時,結(jié)果在 Visual Studio 的 Test Results 窗口中顯示。

          要在項目中實現(xiàn)單元測試,只需右鍵單擊您的代碼并選擇“Create Tests”即可,如圖 4 所示。這會提示您選擇用哪些方法在哪些對象上創(chuàng)建測試。您可以通過從多個不同類選擇方法來一次創(chuàng)建多個測試。自動生成的測試將包含某些代碼,該代碼用于初始化包含所測試方法的對象、聲明用于方法參數(shù)的變量,并最終調(diào)用要測試的方法。默認(rèn)情況下,這些測試將返回 Inconclusive 結(jié)果。創(chuàng)建這些測試時,您可以在“Configuration”選項卡中對其進(jìn)行更改。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 方法只返回添加兩個整數(shù)的結(jié)果。當(dāng)您首次創(chuàng)鍵單元測試時,生成的測試代碼將如下所示。

          ''' 〈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 也允許您將測試添加到創(chuàng)建的多個測試列表中。例如,您可能想將用于演練業(yè)務(wù)邏輯的所有測試或數(shù)據(jù)訪問代碼進(jìn)行分組。您也可以根據(jù)應(yīng)用程序中的功能區(qū)域?qū)y試進(jìn)行分組。

          當(dāng)您運行測試時,您有幾個選項。您應(yīng)該考慮的一個選項是打開代碼覆蓋,它允許您捕獲并分析顯示單元測試所執(zhí)行代碼的數(shù)據(jù)。代碼覆蓋是測試運行配置的一部分。在 Test Manager 中,工具欄按鈕“Edit Test Run Configuration”允許您選擇并編輯一組用于運行測試的可配置選項。在運行測試之后,您應(yīng)該查看兩項內(nèi)容:測試結(jié)果(請參見 圖 6),以及代碼覆蓋結(jié)果(請參見圖 7)。

          您會看到,Test Results 窗口指出我的一個測試是非決定性的。這是因為我沒有更改生成的測試來進(jìn)行任何有用的操作。該測試應(yīng)該更改為如下所示的內(nèi)容。

          ''' 〈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

          該代碼為兩個整數(shù)分配了兩個參數(shù)值,并檢查 Add 方法的返回值,以確保該值與預(yù)期的相同。如果從 Add 方法返回的值是 42(正確答案),則測試通過;否則,測試失敗。您也可以創(chuàng)建數(shù)據(jù)驅(qū)動的單元測試。這允許您使用來自數(shù)據(jù)庫的實際數(shù)據(jù),而不是硬編碼值。

          單元測試只有在編寫為能夠正確演練代碼時才有用。如果您有 1000 行代碼,而通過單元測試只執(zhí)行了 10 行,則您的單元測試沒有給出您代碼良好程度的準(zhǔn)確表示形式。Team System 的代碼覆蓋功能是一個很好的資源,可以用于確定您的單元測試是否已經(jīng)覆蓋了您現(xiàn)有的大部分代碼,相反,也可以確定是否有任何您從未用過的代碼,并可以因此將其移除。

          除了 Code Coverage Results 視圖,您也可以啟用源代碼的顏色編碼。圖 9 顯示了兩段代碼。紅色代碼不是由單元測試執(zhí)行的;執(zhí)行的是綠色代碼。

          測試結(jié)果和代碼覆蓋結(jié)果可以發(fā)布到您的 Team Foundation Server,該服務(wù)器會將該數(shù)據(jù)存儲在數(shù)據(jù)庫中。這允許門戶網(wǎng)站上顯示的報告使用該數(shù)據(jù)來顯示項目所處的位置(從測試和代碼質(zhì)量的角度來看)。

          加載測試

          除了單元測試,Team System 也提供用于創(chuàng)建、管理和運行 Web 加載測試的功能。該功能非常類似于 Application Center Test 以前提供的功能,只是較其更為健壯,更具可伸縮性,而且完全與 Visual Studio 集成。您可以從頭開始創(chuàng)建自己的測試,并在一臺或多臺 PC 上記錄用于以后重放的 Web 瀏覽器會話。加載測試工具中包括了一些很好的功能。特別地,除了正確處理 ASP.NET ViewState,該工具還可以處理 ASP.NET 窗體身份驗證。

          要使用加載測試功能,最簡單的方式是創(chuàng)建一個新的 Test Project。這是一個您可以添加到解決方案中的新項目類型。完成后,您可以通過右健單擊 Solution Explorer 中的該項目并選擇“Add New Item”來添加多個新測試。記錄一個 Web 加載測試就像將適當(dāng)?shù)臏y試類型添加到您的項目并選擇 Record 來初始化記錄過程一樣簡單。當(dāng)創(chuàng)建新測試時,它們會和您的單元測試一起在 Test Manager 窗口中顯示,從而為您提供項目的各種測試的完整視圖。Web 測試與 Visual Studio 2005 中的加載測試是不同的。Web 測試是演練 Web 應(yīng)用程序特定部分的腳本。加載測試是一個包含用于模擬加載的適當(dāng)數(shù)據(jù)(例如,要模擬的用戶數(shù)量)的單獨測試。由此您可以創(chuàng)建 Web 測試,然后在加載測試中使用它們來對您的應(yīng)用程序進(jìn)行壓力測試。

          測試器、手動測試器和錯誤跟蹤

          雖然 Team System 提供 Web 應(yīng)用程序的單元測試和加載測試,但它不提供用于測試非 Web 用戶界面的自動機(jī)制(雖然 Compuware 已經(jīng)宣布集成它的 TestPartner 產(chǎn)品來提供對胖客戶端用戶界面的測試)。您的 QA 團(tuán)隊是通過內(nèi)置的測試管理工具(以及錯誤跟蹤系統(tǒng))獲得支持的。錯誤只是工作項的一個特定類型,它嵌入在 Team System 之中,并作為任務(wù)分配給某人使用。錯誤狀態(tài)以及錯誤計數(shù)可以從項目門戶站點查看。

          另一個好功能是存儲并管理項目現(xiàn)有的各種手動測試。您可能熟悉各種 Word 文檔和手動腳本,通常這些腳本在經(jīng)過創(chuàng)建后可以顯示手動測試一個系統(tǒng)所需的詳細(xì)步驟信息。Team System 允許這些腳本作為手動測試存儲在 TFS 中,并托管在 Web 測試和單元測試中。這些腳本可以是實際的 Word 文檔或純文本。也有從 Visual Studio 中執(zhí)行這些測試的能力。

          當(dāng)選擇這些測試以準(zhǔn)備運行時,這些測試的狀態(tài)為掛起,直到一個測試器逐句通過該手動過程并將該測試標(biāo)記為已通過或已失敗為止。顯然,如果測試失敗,則很可能是輸入了一個錯誤。手動測試也可以使用測試列表來進(jìn)行分組,以便提供一些很好的組織功能。在 TFS 中具有測試允許開發(fā)人員在需要重復(fù)隨后用來復(fù)制錯誤的步驟時,輕松訪問這些測試。這些新工具真正將測試人員和開發(fā)人員放在同一環(huán)境中,以便允許他們更好地協(xié)作。

          Team Build

          Visual Studio 2005 工具包中的另一個工具是 Team Build。Team Build 利用 MSBuild,后者是 .NET Framework 2.0 附帶的一個新的可擴(kuò)展生成引擎。Team Build 支持生成服務(wù)器的概念。生成服務(wù)器將偵聽網(wǎng)絡(luò)請求,這些請求會指導(dǎo)生成服務(wù)器使用存儲在 Team Foundation Version Control 中的構(gòu)建腳本生成應(yīng)用程序。可以通過一個向?qū)нx擇各種生成選項來從 Visual Studio 生成這些生成腳本。這些選項包括使 FxCop 或單元測試作為生成過程的一部分運行。您也可以使工作項更新,使通知作為生成過程的一部分發(fā)送。例如,您可以使一個日常生成過程自動編譯您的應(yīng)用程序,運行單元測試和靜態(tài)分析,然后最終將新的生成放在測試服務(wù)器上,并通知可以使用新生成的測試人員。

          團(tuán)隊站點和報告

          除了 Team System 的面向開發(fā)人員的功能之外,也應(yīng)該注意到它為直接開發(fā)過程之外的人員帶來的可見性。這包括管理人員、項目管理人員、測試人員、業(yè)務(wù)用戶、分析人員,以及對開發(fā)項目狀態(tài)有興趣的任何人。雖然測試人員和項目管理人員可以使用 Team Foundation Client 來訪問 Team Foundation Server,但是假設(shè)業(yè)務(wù)用戶和 IT 管理運行 Team Foundation Client 是不現(xiàn)實的。

          項目的 SharePoint 主頁是用于這些個體的完美工具。他們可以從該站點訪問項目的當(dāng)前狀態(tài),查看錯誤數(shù)量和嚴(yán)重性,并訪問項目文檔。另外,可以使用多種報告。這包括針對突出的工作項、突出的錯誤報告、測試結(jié)果以及許多其他內(nèi)容的報告。這個新增的可見性應(yīng)該提供對開發(fā)過程(而不是以前可用的內(nèi)容)的更好理解。

          在我結(jié)束本文之前,我應(yīng)該提一下可擴(kuò)展性。對于已經(jīng)使用現(xiàn)有開發(fā)過程的企業(yè)而言,Team System 的設(shè)計目標(biāo)是支持自定義。Team System 也具有使第三方企業(yè)集成并擴(kuò)展它的設(shè)計理念。Borland 已經(jīng)宣布他們會發(fā)布一個與 Team System 集成的 CaliberRM y 需求管理工具版本。這填補了 Microsoft 產(chǎn)品套件的空白。但是,如果 Team System 不能滿足您的需要,請確保找到與它集成并擴(kuò)展它的適當(dāng)工具。

          小結(jié)

          Visual Studio 2005 Team System 的購買方式將與目前 Visual Studio 的購買方式不同。我之所以指出這一區(qū)別,是因為測試版并不能準(zhǔn)確反映該產(chǎn)品正式發(fā)布時可用的多種產(chǎn)品。最特別的是,Team Foundation 將是一個單獨購買的服務(wù)器產(chǎn)品。已經(jīng)有幾個功能演練是可用的,而且在測試循環(huán)中將發(fā)布更多的演練。如果您打算將更多“過程”放入您的開發(fā)工作中,則應(yīng)該考慮研究一下 Team System,看看它能否滿足您的需要。有關(guān)更多信息,請訪問產(chǎn)品站點,網(wǎng)址是 Visual Studio 2005 Team System

          posted on 2006-09-25 17:29 圣域飛俠 閱讀(117) 評論(0)  編輯  收藏 所屬分類: 轉(zhuǎn)載
          主站蜘蛛池模板: 洮南市| 自治县| 尚志市| 正定县| 深水埗区| 炉霍县| 三原县| 松溪县| 蒙阴县| 灵丘县| 浮梁县| 龙山县| 岑溪市| 昌宁县| 玉田县| 连云港市| 嘉定区| 麻阳| 晋城| 温州市| 崇文区| 英德市| 邹城市| 鄂托克旗| 临西县| 平罗县| 南乐县| 彭阳县| 万年县| 家居| 湄潭县| 瓦房店市| 皮山县| 定襄县| 怀远县| 临高县| 丰宁| 隆林| 武乡县| 和硕县| 南和县|