在詳細設計的過程當中,需求總是可以分解到模塊,并且確定了模塊之間的接口。之后才是正式的開發。于是對各個模塊來說,“這個組件要實現什么功能?”“它將如何被使用?”這樣的需求總是完整的被體現在了各個模塊的接口上,也就是說,保證對接口的使用能夠正確無誤的進行,就保證了這個模塊的最終質量。那么,我們先走一步,針對模塊的接口寫出測試代碼,這樣在以后開發的時候,就可以確定我們的模塊是否達到了我們的需求。也就是說,我們把單元測試提前了,提前到單元代碼的開發之前。
先寫測試代碼的帶來了很多好處。首先,在很多時候,需求是不清晰或者說不完整的,那么寫測試代碼的過程就是使需求清晰化的過程,這使以后的開發免除了很多麻煩和爭執。其次,這使得我們得以在整個開發過程中保持一套詳盡的單元測試代碼,而這在代碼重構里是必不可少的。最后,先寫測試代碼會影響程序員的心理,使他們重視用戶的需求和體驗,而不是僅僅打算實現模塊的功能和避免被發現錯誤。
然后,我們在整個開發過程中將由這些測試來決定代碼如何編寫,因為這些測試代碼代表的是接口的標準,而接口正是需求的化身。對于這個開發模式,peter coad 給出了以下的描述:
a.. 編寫和保持一套詳盡的單元測試。
a.. 要先建立相關的單元測試和驗收(acceptance)測試,然后根據測試編寫代碼。
a.. 由測試來決定如何編寫代碼。
下面我們來總結我們上面提到的要點:
1)針對接口開發,使接口代表需求
2)用測試評價接口是否符合需求,并且在開發過程中保持足夠詳盡的測試
3)在代碼的修改、重構等變化時,用測試保證代碼質量
在更高層的視野看來,測試驅動編程事實上是把測試對軟件整體質量的保證引入到軟件單元的開發中來,使得整個開發過程中的質量得到更進一步的監護 。
文章來源于領測軟件測試網 http://www.kjueaiud.com/