初識(shí)TDD

什么是TDD

本文所說(shuō)的 TDD 指狹義上的 TDD,也就是「單元測(cè)試驅(qū)動(dòng)開(kāi)發(fā)」。

TDD 是敏捷開(kāi)發(fā)中的一項(xiàng)核心實(shí)踐和技術(shù),也是一種設(shè)計(jì)方法論渣窜。TDD的原理是在開(kāi)發(fā)功能代碼之前,先編寫(xiě)單元測(cè)試用例代碼宪躯,測(cè)試代碼確定需要編寫(xiě)什么產(chǎn)品代碼乔宿。TDD 是 XP(Extreme Programming)的核心實(shí)踐。它的主要推動(dòng)者是 Kent Beck访雪。

為什么要TDD

傳統(tǒng)編碼方式 VS TDD 編碼方式

傳統(tǒng)編碼方式

1.需求分析详瑞,想不清楚細(xì)節(jié),直接開(kāi)始寫(xiě)
2.發(fā)現(xiàn)需求細(xì)節(jié)不明確臣缀,去跟業(yè)務(wù)人員確認(rèn)
3.確認(rèn)好幾次終于寫(xiě)完所有邏輯
4.運(yùn)行起來(lái)測(cè)試一下坝橡,不工作,調(diào)試
5.調(diào)試好久終于工作了
6.轉(zhuǎn)測(cè)試精置,QA 測(cè)出 bug计寇,debug, 打補(bǔ)丁
7.終于脂倦,代碼可以工作了
8.代碼很差番宁,卻不敢動(dòng),動(dòng)了還得手工測(cè)試赖阻,還得讓 QA 測(cè)試蝶押,還得加班...

TDD 編碼方式

1.先分解任務(wù),分離關(guān)注點(diǎn)(后面有演示)
2.列 Example政供,用實(shí)例化需求播聪,澄清需求細(xì)節(jié)
3.寫(xiě)測(cè)試,只關(guān)注需求布隔,程序的輸入輸出离陶,不關(guān)心中間過(guò)程
4.寫(xiě)實(shí)現(xiàn),不考慮別的需求衅檀,用最簡(jiǎn)單的方式滿足當(dāng)前這個(gè)小需求即可
5.重構(gòu)招刨,用手法消除代碼里的壞味道
6.寫(xiě)完,手動(dòng)測(cè)試一下哀军,基本沒(méi)什么問(wèn)題沉眶,有問(wèn)題補(bǔ)個(gè)用例,修復(fù)
7.轉(zhuǎn)測(cè)試杉适,小問(wèn)題谎倔,補(bǔ)用例,修復(fù)
8.代碼整潔且用例齊全猿推,信心滿滿地提交

優(yōu)點(diǎn)

效率

1.提前確認(rèn)需求片习,減少開(kāi)發(fā)中的中斷和等待
2.小步快走,節(jié)省調(diào)試時(shí)間

質(zhì)量

1.高測(cè)試覆蓋率
2.自動(dòng)回歸測(cè)試

怎么做

流程
1.快速新增一個(gè)測(cè)試
2.運(yùn)行所有的測(cè)試(有時(shí)候只需要運(yùn)行一部分)蹬叭,發(fā)現(xiàn)新增的測(cè)試失敗
3.做一些小小的改動(dòng)藕咏,盡快使測(cè)試程序可以運(yùn)行,可以使用不合理的方法
4.運(yùn)行所有的測(cè)試秽五,并且全部通過(guò)
5.重構(gòu)代碼孽查,以消除重復(fù)設(shè)計(jì),優(yōu)化結(jié)構(gòu)

如何學(xué)習(xí)

  • RED write a test that fails
    1.Tasking
    2.有效的測(cè)試單元
  • GREEN make the code work
    1.Obvious Implement
    2.Fake
    3.Traingulate
  • REFACTOR eliminate redundancy
    1.Clean code
    2.Smell
    3.手法

FAQ

明知道失敗坦喘,為什么還要運(yùn)行盲再?

失敗有很多原因,運(yùn)行是為了保證失敗是自己想要的失敯晗场洲胖;
避免由于別的原因?qū)е率 ?/p>

小步好,但真的要小到這個(gè)程度嗎坯沪?

練習(xí)的時(shí)候绿映,盡可能小步;
實(shí)際的時(shí)候當(dāng)大步遇到問(wèn)題可以盡快切換到小步。

測(cè)試覆蓋率多少合適腐晾?

剛開(kāi)始的時(shí)候盡量保證100%覆蓋率叉弦。鍛煉自己寫(xiě)測(cè)試的能力;
追求100%可以比較出有價(jià)值的測(cè)試。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末藻糖,一起剝皮案震驚了整個(gè)濱河市淹冰,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌巨柒,老刑警劉巖樱拴,帶你破解...
    沈念sama閱讀 216,544評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件誊抛,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡曼振,警方通過(guò)查閱死者的電腦和手機(jī)侵状,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)正罢,“玉大人阵漏,你說(shuō)我怎么就攤上這事》撸” “怎么了履怯?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,764評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)裆泳。 經(jīng)常有香客問(wèn)我叹洲,道長(zhǎng),這世上最難降的妖魔是什么工禾? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,193評(píng)論 1 292
  • 正文 為了忘掉前任疹味,我火速辦了婚禮,結(jié)果婚禮上帜篇,老公的妹妹穿的比我還像新娘糙捺。我一直安慰自己,他們只是感情好笙隙,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,216評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布洪灯。 她就那樣靜靜地躺著,像睡著了一般竟痰。 火紅的嫁衣襯著肌膚如雪签钩。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,182評(píng)論 1 299
  • 那天坏快,我揣著相機(jī)與錄音铅檩,去河邊找鬼。 笑死莽鸿,一個(gè)胖子當(dāng)著我的面吹牛昧旨,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播祥得,決...
    沈念sama閱讀 40,063評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼兔沃,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了级及?” 一聲冷哼從身側(cè)響起乒疏,我...
    開(kāi)封第一講書(shū)人閱讀 38,917評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎饮焦,沒(méi)想到半個(gè)月后怕吴,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體窍侧,經(jīng)...
    沈念sama閱讀 45,329評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,543評(píng)論 2 332
  • 正文 我和宋清朗相戀三年转绷,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了伟件。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,722評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡暇咆,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出丙曙,到底是詐尸還是另有隱情爸业,我是刑警寧澤,帶...
    沈念sama閱讀 35,425評(píng)論 5 343
  • 正文 年R本政府宣布亏镰,位于F島的核電站扯旷,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏索抓。R本人自食惡果不足惜钧忽,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,019評(píng)論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望逼肯。 院中可真熱鬧耸黑,春花似錦、人聲如沸篮幢。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,671評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)三椿。三九已至缺菌,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間搜锰,已是汗流浹背伴郁。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,825評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留蛋叼,地道東北人焊傅。 一個(gè)月前我還...
    沈念sama閱讀 47,729評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像狈涮,于是被迫代替她去往敵國(guó)和親租冠。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,614評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容