測試驅動開發

測試驅動開發

測試驅動開發(Test Driven Development,英文縮寫TDD徠)是極限編程的一個重要組成部分,它的基本思想就是在開發功能代碼之前,先編寫測試代碼。

簡介


測試驅動開發(Test Driven Development,英文縮寫TDD)是極限編程的一個重要組成部分,它的基本思想就是在開發功能代碼之前,先編寫測試代碼。也就是說在明確要開發某個功能后,首先思考如何對這個功能進行測試,並完成測試代碼的編寫,然後編寫相關的代碼滿足這些測試用例。然後循環進行添加其他功能,直到完成全部功能的開發。代碼整潔可用(clean code that works) 是測試驅動開發所追求的目標。

優點


測試驅動開發有很多優點:
(1)完工時完工。表明開發人員可以很清楚的看到自己的這段工作已經結束了,而傳統的方式很難知道什麼時候編碼工作結束了。
(2)全面正確的認識代碼和利用代碼,而傳統的方式沒有這個機會。
(3)開發小組間降低了交流成本,提高了相互信賴程度。
(4)避免了過渡設計。
(徠5)系統可以與詳盡的測試集一起發布,從而對程序的將來版本的修改和擴展提供方便。
(6)逃避了設計角色。對於一個敏捷的開發小組,每個人都在做設計。
(7)大部分時間代碼處在高質量狀態,100%的時間裡成果是可見的。
(8)由於可以保證編寫測試和編寫代碼的是相同的程序員,降低了理解代碼所花費的成本。
(9)為減少文檔和代碼之間存在的細微的差別和由這種差別所引入的Bug作出傑出貢獻。
(10)在預先設計和緊急設計之間建立一種平衡點,區分哪些設計該事先做、哪些設計該迭代時做提供了一個可靠的判斷依據。
(12)發現比傳統測試方式更多的Bug。

開發過程


概括起來,測試驅動開發的基本過程如下:
(1) 明確當前要完成的功能。可以記錄成一個 TODO 列表。
(2) 快速完成針對此功能的測試用例編寫。
(3) 測試代碼編譯不通過。
(4) 編寫對應的功能代碼。
(5) 測試通過。
(6) 對代碼進行重構,並保證測試通過。
(7) 循環完成所有功能的開發。