测试驱动开发简介
本文節選自《測試驅動的面向對象軟件開發》 第1章第4節“測試驅動開發簡介”
?
TDD核心的循環是:寫一個測試;寫一些代碼讓測試通過;重構代碼,使被測試特征的實現盡可能簡單。重復這個過程,如圖1-1所示。
圖1-1基本TDD循環
在開發系統時,我們利用TDD來得到系統實現品質(“它能工作嗎?”)和設計品質(“它的結構好嗎?”)的反饋。以測試優先的方式來開發可以事半功倍。寫測試有如下好處:
- ?澄清下一部分工作的驗收條件——我們必須問自己怎樣才算是完成了工作(設計)。
- ?鼓勵我們寫出松耦合的組件,這樣它們就能夠容易地分開來測試,并在較高的層面上組織在一起(設計)。
- ?為代碼功能添加一段可執行的描述(設計)。
- ?添加到完整的回歸測試套件中(實現)。
運行測試有如下好處:
- ?在我們還很清楚情況時檢測到錯誤(實現)。
- ?讓我們知道何時已經做得夠好了,避免“鍍金的”和不必要的特征(設計)。
這個反饋循環可以總結為TDD金規:
?
測試驅動開發金規:
先寫一個會失敗的測試,再寫一個新特征,永遠如此。
重構。局部思考,局部動作
重構的意思是在不改變代碼行為的情況下改變已有代碼的內部結構。重構的要點是改進代碼,使其能夠更好地表示它實現的特征,提升可維護性。
重構是一種訓練有素的技巧,程序員對代碼應用一系列的轉換(或稱為“重構”),同時又不改變代碼的行為。每次重構都足夠小,所以很容易理解,也很“安全”。例如,程序員可能將一段代碼放到一個輔助方法中,使原來的方法更短或更容易理解。程序員確保在每次重構之后系統仍能正常工作,將因改動而引起麻煩的風險降到最小。如果有測試驅動的代碼,我們通過運行測試就能保證這一點。
重構是一種“微技巧”,它是通過發現一些小規模的改進來驅動的。我們的經驗表明,嚴格應用并堅持應用重構,它的眾多小步驟會導致極大的結構改進。重構不是重新設計。重新設計是指程序員有意識地決定改變大規模的結構。這就是說,如果決定重新設計,項目團隊可以利用重構技巧,增量式地、安全地實現新的設計。
您會在第三部分中看到許多重構的例子。這個概念的標準教科書是Fowler的[Fowler99]。
?
《測試驅動的面向對象軟件開發》 樣章下載:http://download.csdn.net/source/2580569
【內容簡介】
本書采用通俗易懂的比喻,眾所周知的編程語言,短小精悍的工作實例,深入淺出的分析處理——仿佛在和幾位世界級的編程高手一邊喝茶,一邊聊天,循序漸進地讓讀者在不知不覺中進入編程的最高境界。即使是剛剛入門的初學者,也會從中找到讀書的樂趣,因為可以從一開始就找到開啟面向對象開發大門的鑰匙;隨著經驗的積累,編程水平的提高,再來看這本書,用不同的視角重新審視程序,又會體會到更深層的編程哲學。
本書是編程愛好者的啟蒙指南,更是系統分析人員、測試人員、程序設計人員、軟件開發人員以及面向對象程序研究人員等專業人士革新編程思想的必備手冊。
轉載于:https://www.cnblogs.com/hzbook/archive/2010/07/29/1787761.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
- 上一篇: 2010.7.27 OnDraw与On
- 下一篇: [存档]CxServer的项目周期管理