TDD 學習筆記

什么是TDD

TDD --Test-Driven Development(測試驅動開發)

  • 是什么
    一種不同于傳統軟件開發的新型方法,通過在編寫功能代碼之前先編寫測試代碼,然后只編寫測試通過的功能代碼,通過測試來推動開發的進行。有助于編寫簡潔可用高質量的的代碼,并加速開發過程。

  • 出自于極限編程十三個核心方法中的個人開發實踐

屏幕快照 2017-08-14 下午8.02.11.png
  • TDD實現內容
    1.分解任務,分離關注點
    2.用實例化求解,澄清需求細節
    3.寫測試,只關注需求,程序的輸入輸出,不關心中間過程
    4.寫實現,不考慮別的需求,只用最簡單的方法實現當前的需求
    5.重構,用手法消除代碼里的壞味道
    6.寫完手動測試,補充用例
    7.轉測試,小問題,補用例
    8.代碼整潔,信心滿滿得提交
為什么要用TDD

TDD 需要寫大量超過功能代碼的測試代碼,會不會造成代碼的極大浪費呢

好處:
1.效率:

  • 提前確認需求,減少開發過程的終端等待
  • 小步快走,節省調試時間(每寫完一段代碼,就可以很快的測試代碼的正確性)

2.質量

  • 高測試覆蓋率:功能分支基本都被覆蓋到
  • 自動測試回歸:保證原有功能未被破壞的同時快速添加新的功能
如何做TDD
  • 做設計
    tasking圖---->小步快走實現
紅綠-重構.png
步驟:

1.快速新增一個測試
2.運行所有的測試
3.對實現代碼作出一些改動,讓測試程序運行,適當的時候可以使用不合情理的方法
4.運行所有的測試,并且全部通過
5.重構代碼,消除代碼中不合情理的部分

  • 不做設計
    演進式的,先通過實現最基本的需求,通過將其他需求一個個向上添加的方式實現最后的工能。
如何學習TDD
  1. tasking 搞清楚程序的輸入輸出,以及大概實現的設想
    有效的單元測試
  2. obvious implement
    fake--先實現一個簡單的測試,類似于測試分解
    triangle--不知道怎么實現,先用fake,再增加用例實現,前后對比實現最后的要求
  3. Clean Code--代碼整潔之道
    Smell
    手法
TDD學習方法.png
TDD問題 FAQ
  • 明明知道測試會失敗,為什么還要運行?
    A:防止出現低級錯誤
  • 小步快走很好,但是真的要小步到這種程度嗎?
    A:練習程序,使用小步方式。實際開發過程采用大步,遇到問題轉換為小步
  • 測試覆蓋率需要多少合適?
    A:剛開始學習的時候追求100%覆蓋率,從而學會寫測試
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,455評論 25 708
  • Test-Driven Development By Example TDD 所追求的目標:代碼整潔可用(clea...
    賈尼閱讀 1,454評論 0 2
  • 1.測試與軟件模型 軟件開發生命周期模型指的是軟件開發全過程、活動和任務的結構性框架。軟件項目的開發包括:需求、設...
    Mr希靈閱讀 21,987評論 7 278
  • 消化內鏡檢查前的胃腸道準備 作者 中山大學附屬第六醫院肛腸外科 彭慧 微信號drpenghui 胃腸鏡檢查是消化道...
    drpenghui閱讀 1,816評論 0 0
  • 題目借用水木丁老師的書名。 昨天就范雨素走紅網絡,談了一點自己的想法。 今天看到幾個意見領袖的觀點后,不由地想再談...
    金澤香閱讀 174評論 0 0