DDT origin(轉)

看“測試驅動開發”這個名字,首先應該明確:與它對應的是“文檔驅動開發”。它是一種開發過程,這裏的測試是一個設計問題,而不是QA問題。在沒有TDD之前,“正統的”開發過程要求有設計文檔:高層設計描述一個模塊“做什麼事”,詳細設計描述一個模塊“如何做這些事”。軟件工程課講得清楚,只有源代碼的軟件不能算軟件,因爲它不可理解、不可維護;源代碼加上文檔,纔算是程序員完整地交付了自己的工作。要做任何一件事之前,你必須首先清楚地知道自己要做什麼(以及不要做什麼),否則那就是crack,不是在從事職業的軟件開發。

但這種文檔有幾個致命的缺陷。第一,自然語言的描述容易產生歧義;第二,不能自動化地驗證;第三,不能保證文檔與程序同步。測試驅動開發正是爲了解決這些問題而產生的。在編寫一段代碼之前你所寫的測試,不是爲了確保這段代碼不出錯,而是爲了描述你想要做的事情。當你擁有這個測試之後,持續集成會始終確保你的代碼恰好是做了你想要做的事情。測試驅動開發是一種設計方法,它清晰無二義地描述你的設計,並保證設計與實現一致。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章