測試驅(qū)動開發(fā)
測試驅(qū)動開發(fā)( TDD)更側(cè)重予測試自動化。20世紀(jì)90年代的極限編程運動讓它變得流行起來。
TDD的通常被描述為如下的事件序列:
實現(xiàn)測試:顧名思義,你開始編寫測試,而后編寫代碼。一種實踐的方式是先指定要開發(fā)代碼的接口規(guī)格,然后實現(xiàn)代碼。為了能編寫測試,開發(fā)人員必須得找
到所有相關(guān)的需求規(guī)格、用例和用戶故事。
將重心從編碼切換到理解需求,對于正確的實現(xiàn)是很有裨益的。
驗證新寫的測試會失敗:新添加的測試會失敗,因為還沒有實現(xiàn)正確的行為,才剛編寫測試需要存根和接口。運行測試并且確認(rèn)它會失敗。
編寫實現(xiàn)測試的功能:我們編寫的代碼不需要多么優(yōu)雅或者高性能。開始時,只要讓新測試通過即可。
驗證新的測試和舊的測試會一起通過:新的測試通過時,我們知道新實現(xiàn)的特性是正確的。舊的測試也通過,說明我們沒有破壞已有的功能。
重構(gòu)代碼:“重構(gòu)”這個詞來源于數(shù)學(xué)。在編程中,它的意思是清理代碼的同時,讓代碼更容易理解和維護。我們需要重構(gòu)是因為在前面的開發(fā)當(dāng)中小小地耍了點詐。
TDD是和DevOps相符合的風(fēng)格,但它并不是唯一的一個。主要優(yōu)勢在于好的測試套件可以用在持續(xù)集成的測試中。