Visual Studio 2010 Ultimate敏捷測試驅動開發 單元測試
在微軟Visual Studio 2010 Ultimate Beta2版本中,MSF for Agile Software Development 5.0過程框架,是以Scrum模型為基礎導向擴展,并且結合了VSTS2010工具的眾多測試功能特性,為更多的從事微軟.NET技術相關的開發人員以實現高質量的軟件產品。
在本文中,筆者將介紹Visual Studio 2010 Ultimate Beta2版本中的MSF for Agile的Scrum和XP敏捷思想與VSTS2010強大的測試功能,通過對這些內容的闡述,讓讀者了解在VSTS2010中的敏捷測試驅動開發方法,以便于.NET開發人員能把敏捷驅動開發為導向的技術,應用在自己的項目和團隊中,從而構筑出敏捷的開發團隊。
1.引言
在前幾篇的文章中提到過的Scrum,相信讀者們都應該已經不陌生了,它的核心在于迭代,并且以每個sprint時間段的周期進行產品功能迭代。團隊首先瀏覽開發需求,考慮可用技術,并對自身技術及能力做出評估,所有實踐就是圍繞著一個迭代和增量的過程來展開,而在每個迭代內部,可以使用測試驅動和持續集成的XP(eXtreme Programming,極限編程)工程實踐。
XP,是最輕量級的開發流程,其最主要的精神是“在客戶有系統需求時,給予及時滿意的可執行程序”,所以最適合需求快速變動的方案。Scrum與XP所不同的是,Scrum只是一個敏捷過程框架,它并沒有提供核心的價值觀與指導原則,也缺乏具體的實踐方法,例如,測試驅動開發、結隊編程等。Scrum僅僅規定了實施的基本流程與檢查表,它是一個開放的管理框架,重心在于項目管理,而不是指導團隊成員如何進行開發。這既是Scrum的優點,因為它很靈活,能夠適應大多數場景,也可以兼容并包地引入其他方法學所提倡的實踐;同時也是Scrum存在的固有缺陷,使得它難以被實踐。如果沒有一位優秀的Scrum Master,而團隊成員又缺乏自我組織和管理的能力,就會讓開發過程變得一團糟,團隊成員將會無所適從。
在團隊中開發人員隨時可以與客戶進行有效溝通,撰寫user stories以確認需求。簡易快速的系統設計,撰寫獨立的驗證程序以解決特殊困難的問題,并找出演算法即可丟棄驗證程式。規劃多次小型階段的方案計劃,并且以最快得速度完成每一階段的程序交付客戶,客戶負責Aclearcase/" target="_blank" >cceptance tests;Coding前必須完成Unit Test與Acceptance tests程序,所有模組整合前都須經過Unit Tests;開發人員必須快速回應Bug和需求變更;要求二人一組使用一臺電腦設計程序,當一人coding時,另一人負責思考與設計(結對編程);程序必須符合程序規范,并常做程序的重構(Refactoring)。
在Agile開發實踐方面,Scrum可以借鑒XP提倡的結隊編程以及測試驅動開發實現編碼,通過重構對編碼進行調整以適應需求的變化,Scrum為體,XP為用。XP開發流程的基本步驟,如圖1所示。
圖1 XP開發流程的基本步驟
測試驅動開發意味著你要先寫一個自動測試,然后編寫恰好夠用的代碼,讓它通過這個測試,接著對代碼進行重構,主要是提高它的可讀性和消除重復,這將會對Agile Team整體素質要求較高。