《測試驅動開發(fā)》的讀書筆記 測試驅動開發(fā)的規(guī)則 測試程序開發(fā)周期的階段 《測試驅動開發(fā)》的讀書筆記
學習基礎:
熟悉《設計模式》的基本概念,熟悉《重構》的基本概念,熟悉基本的Java語法,熟悉Eclipse和JUnit的使用,有相對較好的英語基礎。
學習過程:
- 第1部分,手工輸入實例程序,了解TDD的方法和過程。重點是理解TDD的思路,最好的理解方式就是通過實踐的方式理解。
- 第2部分,教你如何用Python實現(xiàn)一個符合xUnit的測試框架。
- 第3部分,TDD的模式,這些模式展現(xiàn)TDD如何與其他重要思想(例如:設計模式、重構等等)一起工作的。
學習目的:
編寫正確的代碼。
學習感悟:
- 道理很簡單,操作也很簡單,但是我仍然無法明了作者許多重構操作的意圖,只是感覺作者可能是從直覺出發(fā)寫出代碼,再通過重構推進測試代碼與產品代碼之間的解耦。(知其然,不知其所以然)
- 可以先跳過第2部分,了解xUnit如何實現(xiàn)固然重要,但是為此變成先學Python就有點跑題了
- 還可以跳過第3部分,這部分都是作者從思想上對TDD的總結,俗話說“不吃虧不漲記性”,等自己在項目中吃夠了虧再來回顧別人的經驗,才會真正共鳴吧。
學習代碼:
代碼很簡單,不需要再提供,反而最重要的是自己一定要手工跟一遍,否則無法領會作者的意圖。至少,我在豆瓣上看了幾個評論,大部分都是看懂了,沒感覺。
測試驅動開發(fā)的規(guī)則
- (P4)明確設計目標,完善測試代碼
- 消除重復設計即是消除依賴關系(測試代碼與產品代碼之間的依賴關系);
- 測試驅動開發(fā)不是通過一小步一小步來完成的,而是培養(yǎng)一小步一小步開發(fā)軟件的能力。因為簡單的問題可以走快點,復雜的問題就可以走慢點。
- (P12)完善產品代碼
- 完成知道怎么做的產品代碼;
- 補充不知道怎么做的產品偽代碼。
- (P14)尋找隱含的開發(fā)目標,完善測試代碼
- 利用三角法發(fā)現(xiàn)產品代碼中的問題( 三角法:當例子不止1個的時候才完善代碼??梢栽跊]有設計思路的時候,換個角度思考問題)
- 利用重構解決發(fā)現(xiàn)的問題
- (P17)通過開發(fā)的功能來重構測試代碼
- (P33)不打斷自己已經在做的工作,如果非要打斷也不要在新的工作中花太長的時間,并且不能再次打斷這個新的工作。(事不過三)
- (P34)找到自己的開發(fā)節(jié)奏。(一開始慢一點,慢慢加快,再調整回慢,直到找到自己最合適的節(jié)奏感)
- (P42)刪除不需要的子類,會發(fā)現(xiàn)測試代碼中存在的不需要的測試也可以刪除(放棄不需要的東西,會幫助你發(fā)現(xiàn)你還需要什么)
測試程序開發(fā)周期的階段
- 寫一個測試程序;
- 讓測試程序編譯通過;
- 運行測試程序,發(fā)現(xiàn)不能運行;
- 讓測試程序可以運行;
- 消除重復設計,優(yōu)化設計結構。