TDD與傳統測試 測試驅動開發
TDD原本是一種編程技術,它間接地確保你的代碼能徹底地被單元測試檢查?墒,它能做的不只這些。你仍然需要參考傳統的一些測試比如功能測試、用戶驗收測試、系統集成測試等等。大部分的這些測試都可以在項目開始之前就進行,如果你選擇這么做的話(而且你也應該這么做)。實際在XP里,項目負責人指定的用戶驗收測試在編碼時或是更早就開始進行了。告訴項目負責人系統能適應需求,增強他的信心!
一個好的傳統測試能發現一個或多個漏洞,此理論同樣適用于TDD。當一個測試失敗的時候你必須進行改進因為你知道你需要解決這個問題。更重要的是,當你的測試不再失敗的時候你就可以清楚地知道成功了多少。TDD增強了你的信心因為它適應了預先定下的需求,你的系統能正常運行了,因此你再自信地開發下去。
像傳統的測試一樣,項目風險越大,就要更徹底地進行測試。傳統測試和TDD中你都不可能為著完美而奮斗,代之的是測試系統的重要性。為了解釋敏捷模型(Agile Modeling, AM),你應該“帶著目的去測試”、知道為什么要測試以及測試是在什么等級。TDD為你帶來的有趣的間接影響是,你的代碼測試覆蓋率是100%—每一行都被測試過了—這是傳統測試所不能保證的(雖然它們推薦這么做)。一般來講我會很負責任地說TDD的結果比傳統技術更有意義。
文章來源于領測軟件測試網 http://www.kjueaiud.com/