一、什么是TDD
簡(jiǎn)單的說(shuō),即在寫(xiě)任何功能代碼之前,先寫(xiě)它的測(cè)試代碼。具體步驟:
·根據(jù)需要編寫(xiě)一個(gè)測(cè)試用例
·編寫(xiě)功能代碼,以讓剛才的測(cè)試用例通過(guò)
·逐步補(bǔ)充測(cè)試用例
·修改功能代碼使新增的測(cè)試用例和原來(lái)的都通過(guò)
·重構(gòu),包括功能代碼和測(cè)試用例
二、為什么使用TDD
提高代碼質(zhì)量。由于功能代碼的高質(zhì)量和完善的測(cè)試用例集,增強(qiáng)了開(kāi)發(fā)者信心,從而贏得他人信任。
改進(jìn)設(shè)計(jì)。TDD保證了功能代碼的可測(cè)試性,降低了耦合度,改善組件對(duì)象模型,使設(shè)計(jì)在開(kāi)發(fā)過(guò)程中逐步完善和改進(jìn)。
為功能代碼提供了良好的文檔,并能維護(hù)代碼和文檔的同步。敏捷宣言主張:能夠運(yùn)行的軟件勝過(guò)面面俱到的文檔。測(cè)試用例集就是一份準(zhǔn)備可靠,且能運(yùn)行的文檔。
在一定程度上可代替程序調(diào)試。當(dāng)每個(gè)單元測(cè)試關(guān)注每一個(gè)具體功能時(shí),問(wèn)題被更早和更好地避免。另外調(diào)試是手動(dòng)而不可重復(fù),TDD的測(cè)試用例集則是自動(dòng)可回歸的。
有效的質(zhì)量控制和項(xiàng)目管理。對(duì)管理者來(lái)說(shuō),通過(guò)單元測(cè)試每日構(gòu)建的結(jié)果,每天都清楚的知道項(xiàng)目的質(zhì)量和開(kāi)發(fā)進(jìn)度
三、TDD是測(cè)試,更是設(shè)計(jì)
當(dāng)開(kāi)始寫(xiě)單元測(cè)試代碼時(shí),其實(shí)也正在開(kāi)發(fā)。在編寫(xiě)功能代碼前,站在功能代碼的使用者角度設(shè)計(jì)測(cè)試用例,運(yùn)用針對(duì)接口編程等原則降低耦合度,改進(jìn)設(shè)計(jì)。由此可見(jiàn),TDD也是面向?qū)ο蟮姆治?,設(shè)計(jì)和開(kāi)發(fā)方法。在貫徹TDD的開(kāi)發(fā)過(guò)程中,對(duì)于每個(gè)類(lèi)分別進(jìn)行測(cè)試,對(duì)于每部分都進(jìn)行簡(jiǎn)單設(shè)計(jì),頻繁重構(gòu),最終形成了一整套可運(yùn)行的測(cè)試用例集,TDD體現(xiàn)持續(xù)改進(jìn)的過(guò)程,是一種增量式設(shè)計(jì)。
TDD(Test Driven Development),是一種測(cè)試技術(shù),更是一種設(shè)計(jì)方法。其重心不在Test,而在于Development,是一種以意圖來(lái)驅(qū)動(dòng)的軟件開(kāi)發(fā)方法——意圖編程
聯(lián)系客服