TDD
Test Driven Development 測(cè)試驅(qū)動(dòng)開發(fā)
大致思想是:在編碼之前勋拟,先寫測(cè)試代碼勋磕,測(cè)試代碼就緒后,編寫代碼敢靡,再去用測(cè)試代碼去驗(yàn)證編寫代碼挂滓,及時(shí)修改完善邏輯。
具體實(shí)施過程中啸胧,可以看作兩個(gè)層次:
-
UTDD
Unit Test Driven Development 即單元測(cè)試驅(qū)動(dòng)開發(fā)
編碼之前寫測(cè)試單元赶站,然后再去寫產(chǎn)品代碼幔虏。產(chǎn)品代碼通過單元測(cè)試后,再進(jìn)入下一環(huán)節(jié)
好處:開發(fā)人員不會(huì)過于懶散贝椿,不會(huì)隨意的去寫代碼所计,提高了代碼質(zhì)量。并且因?yàn)橄葘憸y(cè)試單元团秽,有利于解決一些思維上的Bug -
ATDD
Acceptance Test Driven Development 驗(yàn)收測(cè)試驅(qū)動(dòng)開發(fā)
在編寫產(chǎn)品代碼之前,明確需求的驗(yàn)收標(biāo)準(zhǔn)叭首。這樣開發(fā)人員會(huì)比較明確如何寫代碼习勤。同時(shí)不會(huì)造成開發(fā)出來的需求和產(chǎn)品或者測(cè)試?yán)斫獾牟灰恢?br> 從ATDD演化出來的一種具體開發(fā)模式是BDD(Behavior Driven Development 行為驅(qū)動(dòng)開發(fā)),BDD將驗(yàn)收標(biāo)準(zhǔn)等更加細(xì)致的列出來焙格。
個(gè)人對(duì)TDD的一些理解:
好處:
- 測(cè)試在前图毕,編碼在后,有利于提高編碼效率
- 在相對(duì)較早階段將開發(fā)眷唉,產(chǎn)品予颤,測(cè)試對(duì)需求的理解進(jìn)行了統(tǒng)一,降低了溝通成本冬阳。
- 減少了開發(fā)的思維障礙蛤虐,有利于提高代碼質(zhì)量
-為測(cè)試提供了一些標(biāo)準(zhǔn),提高工作效率 - 減少了重構(gòu)代碼的成本
不好處:
- UTDD 落實(shí)起來相對(duì)較難肝陪。開發(fā)工作量會(huì)倍增驳庭,學(xué)習(xí)成本也需要一些
- 無法真正做到測(cè)試在前,對(duì)于驗(yàn)收測(cè)試驅(qū)動(dòng)氯窍,可能在快到開發(fā)提測(cè)階段測(cè)試才完成驗(yàn)收標(biāo)準(zhǔn)饲常。