相比在開發完整個軟件之后測試,在開發過程中對代碼片段進行測試要來的更加容易點。但是在某些情況下可能會更難!為什么?因為軟件在開發的時候可能還沒有考慮到可測性。然而,當你在不斷地進行小周期內的測試之后,該問題就會消失。
你是否還記得在你公司某個項目的深處看到過一大堆丑陋的代碼?你或許認為你應該重構一下,但是代碼實在是太混亂了,你甚至都不知道從哪里開始。但是如果你經常做重構,那么這種龐大的丑陋的代碼就不會存在。
另外,別忘了,當你在做TDD時,你會慢慢積累得到一個強大的回歸測試案例集。但是在我看來,與這些小周期中獲得的好處相比,這只是一個加分項。
TDD有著陡峭的學習曲線。為了有效地學習TDD,需要時間,精力和紀律。所以,如果你打算開始做TDD,不要指望著一開始就能順順利利的,也不要指望整個過程能夠很自然的完成。你應該不停地關注這個流程,并堅持下去。那么,總有一天,你不會再感覺到不舒服,而你會寫出更棒的代碼。
不要相信一些人在互聯網上所說的TDD會很神奇地設計你的軟件。它不會!你,一個程序員,才是那個設計程序的人。因為TDD迫使你在一個個的小周期內工作,所以你將有更多的機會來構思程序設計,僅此而已。
確實,在一開始,項目進行的會比以前慢。但是從長遠來看,會更快,因為你會寫出更少bug更簡潔的代碼。你將會成為一個更可靠的程序員,而不是一個更快的程序員。
如果你打算開始學習TDD,那我推薦這本書Test Driven Development:By Example,它是一本很不錯的入門書籍。
測試驅動開發不僅僅是簡單地優先編寫測試案例。它是一個能夠幫助你始終做好工作的一個開發過程。TDD讓你在一個個的小周期內進行開發,不斷地設計、測試和重構代碼,從而有助于生產出高質量的軟件。TDD有著陡峭的學習曲線,所以如果一開始執行的并不好,不要氣餒。只要耐心等待,繼續前進,你將會寫出更棒的軟件。
原文轉自:http://geek.csdn.net/news/detail/195645