TDD全稱Test Driven Development,是一種軟件開發的流程,其由敏捷的「極限編程」引入。其開發過程是從功能需求的test case開始,先添加一個test case,而後運行全部的test case看看有沒有問題,再實現test case所要測試的功能,而後再運行test case,查看是否有case失敗,而後重構代碼,再重複以上步驟。其理念主要是確保兩件事:html
我不否定TDD的一些有用的地方,若是咱們以Test Case 開始,那麼,咱們就能夠馬上知道咱們的代碼運行的狀況是什麼樣的,這樣能夠讓咱們更早地獲得咱們實現思路的反饋,因而咱們更會有信心去重構,去從新設計,從而能夠讓咱們的代碼更爲正確。shell
不過,我想提醒的是,TDD和Unit Test是兩碼子事兒。有不少人可能混淆了自動化的Unit Test(如:XUnit系例)和TDD的軟件開發過程。另外,可能還會有人向鼓吹「TDD讓你進行自頂向下的設計方式」,對此,請參閱本站的《Richard Feynman, 挑戰者號, 軟件工程》——NASA的挑戰者號告訴你自頂向下設計的危險性。編程