TDD與VTDD系列(五):提高產能1/3的開發方法:VTDD(概述)

VTDD概述程序員

     TDD(Test-Driven Development,測試驅動開發),是一種具備突出優勢的軟件開發、設計和測試方法。TDD的基本思路是測試先行,經過測試來推進開發的進行。TDD的重要目的不只在於經過測試使產出的代碼質量可控,還在於在開發過程當中幫助程序員去除模棱兩可的需求。編程

     TDD具備明確需求、明確設計、測試即文檔、代碼質量可控、提升開發效率等優勢,但也具備不可忽視的缺點:ide

    自動化程度低:編寫測試代碼的時間,大體至關於開發產品代碼的時間。對於大型項目的並行開發,還面臨隔離、補齊、內部輸入等問題,人工解決這些隱含問題的時間,每每很多於編寫通常測試代碼的時間。函數

    資源利用不充分:單元測試的輸出能夠完整描述程序的行爲,這是一種寶貴資源,TDD忽略了這一點。程序行爲就是在什麼輸入下,會執行哪些代碼,會產生什麼輸出。若是程序行爲一目瞭然,測試對於開發的驅動效益將翻倍。工具

    干擾編程思惟:靈感、創意、思路是脆弱、易失的,編程工做須要連貫的專一。TDD過程當中,測試所耗費的時間每每是開發時間的一至兩倍,且與編寫產品代碼交替進行,不免影響編程思惟的連貫性。干擾思惟可能會形成程序員本能的抵制,使TDD難於推廣、難於長期堅持。單元測試

    VTDD(Visual TDD),便可視化的TDD,是TDD的改進和升級。VTDD繼承了TDD的優勢,克服了TDD的缺點。改進可概括爲「三化」:可視化、自動化、現實化。測試

     可視化:開發過程當中,程序行爲可視。可視化下降編程勞動強度,並大幅提高編碼效率,中等複雜度的函數,編寫效率提升一倍以上,複雜度越高,效率提高比例越大。優化

    自動化:由工具自動完成隔離補齊、測試代碼生成、數據表格化、底層模擬、覆蓋統計、協助找出遺漏數據等工做。人的工做主要在於:在數據表格中列出程序功能點,這是明確需求、明確設計、促進開發的過程。測試時間成本趨向於零。編碼

    現實化:VTDD分爲VTDD1(天然級)、VTDD2(重構級)、VTDD3(敏捷級)。天然級基於現有流程、可在項目週期的任意時段引入,且不影響進度。此後可逐步提高到重構級和敏捷級,進一步改進開發流程,「先固化,再優化」。設計

    您的項目是否面臨這些問題:開發費用和進度失控、可靠性差、難以維護?若是您指望改進開發過程,改變被動現狀,請不要等待,當即引入VTDD。項目越緊張,越須要儘快改進開發方法。等「有空」時再改進是不現實的。代碼質量不可控,正是開發週期不可控的主因,拖延下去,只會使問題累積。當前項目的延期,會形成下一個項目更緊張,更不會「有空」。請您想想,去年這個時候緊不緊張?前年呢?何時輕鬆過?若是不作出改變,明年這個時候,後年這個時候,同樣還會很緊張,恐怕永遠等不來「有空」。項目週期越緊張,越須要讓新產出的代碼質量可控,這樣才能換來進度可控,項目纔有可能按計劃完成。只有行動,當即行動,纔可能換來寬鬆和從容。

    可是,「先顧眼前」,也是不得已的選擇。VTDD既不影響眼前,效果也立竿見影。假如一個項目,編碼週期爲四個月,在第二個月引入VTDD1,當月進度不減,此後兩個月,進度能夠加快大約15-30%,更重要的是,產出的是通過充分測試的代碼,能夠避免代碼質量不可控形成的開發週期不可控,大幅縮短使產品穩定下來的時間。總的來講,引入VTDD,不但保證代碼質量,並且,項目所耗費的人月能夠減小大約30-50%,縮短開發週期,在「快魚吃慢魚」的市場競爭中贏得先機。

相關文章
相關標籤/搜索