我們正處於嘗試實施TDD的初始階段。我演示了Visual Studio Team System代碼覆蓋/ TDD工具,團隊對可能性感到興奮。目前我們使用Devpartner進行代碼覆蓋,但是我們想要消除它,因爲它很昂貴。我們在TDD方面的經驗非常有限,並且希望確保我們不會走錯方向。目前我們正在使用SourceSafe進行源代碼管理,但將在大約一年時間內遷移到Team System。TDD入門?
我可以告訴你我們的應用程序非常以數據爲中心。我們有大約900個表格,6000個存儲過程和大約45GB的數據。我們有很多基於用戶數據和系統中不同費率的計算。我們的許多代碼也是基於時間的(計算當前日期的利息)。其中一些計算非常複雜且非常密集(只有少數人知道其中一些細節)。
我們希望實施TDD解決質量保證問題。許多開發人員被迫修復了他們不熟悉的領域中的錯誤並最終導致了一些問題。也有開發人員幾乎不敢接觸的區域,因爲代碼被系統中的所有內容所使用。我們想要緩解這個問題。
我害怕,因爲我們的代碼是如此以數據爲中心,所以實現TDD可能比大多數系統稍微複雜一些。我試圖想出一個可以呈現給管理層的遊戲計劃,但我希望不會陷入TDD初學者的一些錯誤。同樣,如果Team System中的工具/設施使TDD更加完善,那麼這很好,但我們不希望等待Team System開始。
我們問的第一個問題是我們應該從visual studio中的工具開始?我讀過的帖子是人們抱怨Visual Studio中的內在工具(需要創建一個單獨的項目來創建您的測試),但Visual Studio中的工具的一件事是他們是免費的,整合是好的。如果我們決定使用XUnit,MBUnit或NUnit等其他途徑,那麼我們很可能會有一些可能的顯着成本:
1)如果我們想要IDE集成(未提及我們的大部分代碼是VB.Net)
--- TestDriven.Net or Resharper or ?????
2)如果我們想代碼覆蓋率
--- NCover(似乎是相當昂貴的它的功能)
此外,我已經看到了在Visual Studio 2010中演示了喜歡做的事輸入的能力一些很酷的功能測試(在表單上輸入數據)或記錄用戶完成的操作,然後將其輸入單元測試以重現問題。
此外,雖然我還不太瞭解嘲笑對象的概念,但我知道很多人都覺得這是必須的。問題是,所有的模擬框架能否插入Visual Studio的TDD(MSTEST)版本?
我向管理層建議,我們應該增加回歸測試(新開發或發現錯誤),但不要試圖通過我們所有的代碼並進行單元測試。這將是項目太大的方式。
無論如何,我將不勝感激任何人的幫助。
TDD!=單元測試。放下TDD標籤 - 只需稱之爲測試即可。 – Tim 2009-07-28 16:44:44