謝宇飛++彭霖
摘 要TDD測(cè)試驅(qū)動(dòng)開發(fā)模式本世紀(jì)初興起以來,一直在爭論中前進(jìn)發(fā)展,支持者奉其為圭臬,反對(duì)者棄之如敝履。客觀來說,TDD模式自有其優(yōu)勢(shì),也有其問題,在多年的開發(fā)實(shí)踐中,提出了一系列分支開發(fā)模式。在軟件工程開發(fā)實(shí)踐中,一方面,要辯證的看待該技術(shù)模式的優(yōu)缺點(diǎn),不能偏聽偏信;另一方面,也要根據(jù)自身項(xiàng)目的組織結(jié)構(gòu)、資金配置、人力資源、時(shí)間要求來選擇開發(fā)模式。
【關(guān)鍵詞】TDD 測(cè)試驅(qū)動(dòng)開發(fā) 軟件工程
TDD全稱Test Driven Development,中文翻譯為測(cè)試驅(qū)動(dòng)開發(fā),上世紀(jì)九十年代中后期發(fā)起于敏捷開發(fā)(Agile Development)思想中的極限編程(Extreme programming)理念。由Kent Beck在2002年出版的《Test Driven Development: By Example》和David Astels在2003年出版的《Test-Driven Development: A Practical Guide: A Practical Guide》共同奠定了TDD的理論基礎(chǔ)和實(shí)踐模型。
從正式提出至今,TDD模式一直存在著兩種不同的應(yīng)用觀點(diǎn)。一種觀點(diǎn)認(rèn)為TDD模式是一種軟件工程規(guī)范而不是簡單的技術(shù)驗(yàn)證,換而言之,TDD的基本思路就是通過測(cè)試來推動(dòng)整個(gè)開發(fā)的進(jìn)行,并不只是單純的測(cè)試工作。另一種觀點(diǎn)認(rèn)為TDD是一種編程技術(shù),目標(biāo)是編寫干凈的代碼,極限編程三位創(chuàng)始人之一的Ron Jeffries(另兩位是Kent Beck 和Ward Cunningham)是這種觀點(diǎn)的主要支持者。這兩種觀點(diǎn)并沒有絕對(duì)的對(duì)與錯(cuò),在生產(chǎn)、教學(xué)實(shí)踐中體現(xiàn)出了它們?cè)诓煌瑮l件、環(huán)境下各自的價(jià)值。
2004年David Astels的《Test Driven Development: By Example》被翻譯成中文,TDD模式開始在我國傳播,并在2006年-2010年受到了計(jì)算機(jī)學(xué)界和信息產(chǎn)業(yè)界的普遍關(guān)注和廣泛討論。在這場(chǎng)實(shí)踐檢驗(yàn)理論的討論中,學(xué)界和大企業(yè)普遍對(duì)TDD模式持認(rèn)可態(tài)度,而中小企業(yè)普遍表示這種模式并不切實(shí)際。……