軟體生命週期管理的新功能 - 使用 Visual Studio Ultimate + Team Foundation Server 2013

作者 – 胡百敬 (微軟MVP)

註: 內文提及 InRelease 產品已於 2013/11月改名為 Release Management for Visual Studio 2013

註: 內文提及Visual Studio Ultimate已於 2015/3月改名為 Visual Studio Enterprise

隨著Visual Studio和Team Foundation Server團隊導入Scrum開發,其推出產品回應使用者需求的周期也越來越快。今年新出的2013版本讓軟體生命週期週期(Application Lifecycle Management ALM)更為完整,整個團隊的協同資訊隨手可得。

新的使用者介面除了讓團隊成員更直觀地上手外,「Agile Portfolio管理」可以協同更大的敏捷專案,讓多個小組清楚全體的狀況。加上原始碼控管支援Git,多平台、異質型技術的開發團隊也可以納入相同的版本控管。Web版的測試計畫管理和執行手動測試案例,讓測試人員可隨時隨地跨平台管理與執行測試。新購入的InRelease發行管理平台讓你可以自訂軟體部署發行流程,讓持續整合(Continuous Integration, CI)更為簡便快速,滿足敏捷開發經常性地發行部署需求,且因應一些產業嚴謹要求的發行管理流程法規。新增的「專案小組聊天室(Team Room)」可進一步讓團隊成員溝通的過程留下紀錄,整合組建、程式碼審查等多種團隊事件都自動呈現在Team Room內,團隊與使用者可依日期時間回顧檢討。

新的使用者介面

新的「Team Explorer」視窗首頁更簡潔、明確,在各任務間切換變得更加方便。除了改成圖示與重新擺放「Web存取」的連結外,新增對「工作面板」、「Team Room」的連結,這三者分別連結到TFS 所提供的網站應用程式內不同的功能。在首頁的下方會呈現最近開啟團隊專案內的Visual Studio方案,其畫面如圖1所示:

 

 

 

圖1:全新改寫更為直觀的「Team Explorer」視窗

 

Team Explorer視窗內的各項目也稍有改良,例如「Connect」功能,可以更方便切換多個團隊專案。其他項目下的變更不大,但在TFS 「Web存取」則有大幅的強化,藉由Web跨平台的特性,讓你的開發團隊可以橫跨各種技術領域,而不侷限在微軟的平台。

Agile Portfolio 管理

TFS 2012在Web存取新增了「待處理項目」和「面板」功能,更直觀、方便地編寫、管理、檢視與討論系統需求與開發進度。在TFS 2013中進一步強化,在「工作項目」新增「特殊功能」類型(在Scrum、Agile、CMMI等不同的團隊專案範本,這個工作項目的名稱不同),用以描述高層次的使用者需求,再循著階層結構的方式放入子功能或子劇本(User Story,在Scrum範本稱為待處理項目)。

換句話說,透過TFS 2013更好處理流程分解,讓不同團隊成員檢視待處理項目(Backlog)時,可以有不同的呈現方式,並經由展開/收合,了解全貌或鑽研細節。讓各個Scrum小組分開管理自己的待處理項目,再收合到更高層級的待處理項目或功能。其功能管理介面如圖2所示:

 

 

 

圖 2:透過Backlogs階層式地呈現需求與工作

程式撰寫

在程式設計過程中,VS2013增強了提示功能,能在撰寫程式碼的同時檢視通過的測試,整合原始檔控管呈現變更集,告知參照的函數等,這些資訊直接在編輯環境中以多種指示器提示。如圖3所示:

 

 

 

圖3:直接在編輯環境呈現各函數的相關訊息

 

當滑鼠移到圖3所示各函數上方的提示時,針對不同的項目會出現不同的訊息方塊,你可以進一步點擊訊息方塊內的項目,以切換到相對應的細節資訊。

輕量代碼注解(lightweight code commenting)

團隊成員間可以藉由Web網頁,針對原始碼控制的變更集進行討論,這些紀錄也自然變成程式碼的注釋,如圖4所示:

 

 

 

圖4:團隊成員透過Web 直接討論變更集內的原始碼

 

團隊成員在不同的原始碼版本某行程式碼旁,點選「加入註解」的圖示,即可針對該程式碼加註解,而其他成員接續其討論串可進一步回覆。

原始檔控管支援Git

在近幾個版本中TFS一直在改進自身的版本控制功能,TFS 2005版提供完全集中存放的「伺服器工作區」,該功能適合大型專案,管理數以百萬計的原始檔,但團隊成員一定要連線才能編寫原始碼。在2012版增加了「本機工作區」,讓你可以離線編寫程式碼,一旦連上網路後,自動偵測伺服器與本地兩端的差異。而這兩者都是將原始檔放在SQL Server的資料庫內。

2013版再加入對Git[1] 的支援,以因應地理上分散的團隊、異質型技術的需求(例如部分成員開發.NET、部分團隊開發Android或iOS)。透過Git版控,編寫原始碼時,其版本都存放在本機的儲存區,而後再推送到共享的網路位置。除了安裝TFS 2013並熟悉指令介面外,若你有興趣試試Git指令,可以直接存取以下的教學網址:

https://try.github.io//levels/1/challenges/1

測試

VS/TFS各版持續增加測試的功能,VS/TFS 2013則進一步強化透過Web介面存取既有功能。以往可以透過Web編寫手動測試案例。現今提供了Microsoft Test Manager(MTM) 的簡易Web版,新增測試管理功能。不開啟Windows WPF平台上的MTM工具程式,也能夠建立、修改與管理測試計畫、套件以及共用步驟,並進行手動測試。其管理畫面如圖5所示:

 

 

 

圖 5:透過Web管理測試計畫

此外,也可以透過Web直接執行手動測試,如圖 6 所示:

 

 

 

圖 6:透過 Web 執行手動測試案例

若在Windows平台,團隊的測試人員當然還是使用「Microsoft Test Manager」來管理測試計畫,以Test Runner執行手動測試,收集完整資料並彙整Bug,這些工具程式擁有完整的功能。但若要跨到非Windows平台,或是在地理上分散的開發團隊,則用Web介面將不受限制。

此外,自2005版以來,VS已經擁有了負載測試功能,VS 2013的雲負載測試則簡化了負載測試的建置。

發行管理

近些年,產品的發行流程更加敏捷,開發者需要更快、更可靠,並且可重複執行的自動部署功能,這需要專門的「發行管理(Release Management)」平台。在今年(2013)的美國TechEd大會上,微軟宣佈與InCycle Software Inc達成協議,收購後者旗下的發行管理工具「InRelease」。換句話說,InRelease將會成為TFS平台原生的發行管理解決方案。

InRelease可以與TFS整合,自動部署應用程式組件到各階段;不同的目標伺服器所在之異質環境中。這些組件在各種伺服器上可能需要不同的配置,例如目錄檔案、資料庫連接、註冊機碼…等,但我們仍希望採用相同的部署封裝,讓發行管理平台來處理其中的差異。另一個關鍵是集中管理所有的設定,透過客製化的流程,發行到企業中多種的伺服器角色。其設定畫面如圖7所示:

 

 

 

圖7:設定發行部署的認可與驗證流程

針對不同階段與不同的平台,可客製化InRelease的工作流程,以管理每個階段的工作步驟。如圖8所示:

 

 圖 8:建立發行流程範本

在不同的發行階段,可以由負責的團隊成員決定是否認可當下研發的軟體系統之品質,而准予進入到下一關。

協同作業

TFS的核心功能之一就是改進軟體發展團隊的協同作業,TFS 2013新增「專案小組聊天室(Team Room)」來進一步加強該特性。組建、程式碼審查等多種團隊事件都可以呈現在Team Room內,因而被記錄下來。

TFS預設會為每個團隊專案建立一個聊天室,你也可以自己建立專屬的聊天室。要進入聊天室一是透過圖1「Team Explorer」視窗右上方的「Team Room」連接,另一是透過圖9 TFS 「Web 存取」的首頁上之連結:

 

 

圖9:從TFS 「Web 存取」的首頁可以連結到專案小組聊天室

 

當進入某個聊天室後,可以透過左方代表某個聊天室名稱旁的向下箭頭,叫出下拉選單選擇管理事件選項,或是在右下方的管理是件連結,而後在「設定<聊天室名稱>的事件」對話窗設定那些團隊活動觸發的事件要自動出現在該聊天室,如圖10所示:

 

 

圖10:設定多種團隊事件發生時,自動反映到Team Room

若設定「建置完成」、「程式碼變更」、「工作項目更新」、「程式碼檢閱」等事件要出現在聊天室時,當這些事件發生後,會自動呈現在聊天室的內容內,如圖11所示:

 

圖11:透過 Team Room 討論並檢視團隊開發的各種事件

這些事件還會提供各事件細節的連接,讓團隊可以進一步了解事件的來龍去脈。由於它們自動留存在聊天室內,而聊天室的紀錄可以透過上方的日期切換,讓你找尋以往某時發生的團隊事件,並在進一步分析某個時間下相關事件的前因後果。

若你要留言給某位團隊成員,在輸入訊息時,可以「@」開頭,而後輸入名稱時,對話窗會自動以IntelliSense提示團隊成員的名字。該成員進入聊天室的網頁時,會醒目標示出自己的名稱,以提醒使用者有人在跟自己對話。若是要參照某個工作項目,也可以「#」開頭而後接續工作項目編號,就會在對話內容自動呈現可連接到該工作項目的連結。當然,若輸入的是URL或UNC,也自動會轉成對該網頁或資源的連結。

TFS 2013大幅強化了Web存取的功能,善用連結的特性,讓原本集中存放在TFS的軟體資產更隨手可得,且不限軟體技術和平台,也可以橫跨地理與時區的限制,讓團隊可以更好地合作,軟體生命週期更流暢地運轉,更敏捷地因應瞬息萬變的使用者需求。

 


[1]取自維基百科:Git是一個分布式版本控制/軟體配置管理軟體,原來是linux核心開發者林納斯·托瓦茲(Linus Torvalds)為了更好地管理linux核心開發而創立的。

 

 

 

延伸閱讀

 

[線上功能展示影片]