1. 程式人生 > >大話TDD,BDD,ATDD的本質

大話TDD,BDD,ATDD的本質

最近在研究軟體工程中最佳實踐,接觸了TDD(測試驅動開發),BDD(行為驅動開發), ATDD(可接受性測試驅動開發)。有一天,在路上走的時候,突然想了一下,他們之間有什麼共通點呢?TDD,BDD,ATDD的本質是什麼呢?


帶著這個問題,咱們先看看上面這張圖,我們知道在軟體開發或者維護過程中,基本的主流角色有,開發,測試,客戶,使用者,專案經理,運維人員等。 而我們知道,在生產和開發一個軟體的過程中,處處充滿風險,這個時候,從巨集觀角度來說,做正確的事是最重要的;從微觀角度來說,正確的做事也很重要。

首先來看,做正確的事是最最重要的,如果大家看過玩過或者看過傳遞猜詞語遊戲的話,應該知道,第一個人看到一個正確的詞語,然後用動作表達出來,然第二個人猜意思,然後,在動作表達給第三個人。。。。。 往往到了最後,意思可能大相徑庭。


那麼,在軟體開發的需求分析和實現階段又何嘗不是這樣呢?本來客戶需要的是一輛自行車,


結果卻得到了一輛摩托車,


這一切的一切都是溝通惹的禍,其實就是沒有做正確的被期望的事情。而BDD(行為驅動開發), ATDD(可接受性測試驅動開發)就是為了解決這個問題。我們知道,BDD或者ATDD,就是先寫需求功能點描述,這種描述客戶,經理,開發,測試都能看懂,既是沒有寫過任何程式碼的人都能看懂,而且是基於文字的。目的說白了,就是讓開發出來的系統正是客戶需要的,做正確的事情,正如上面的圖所示,客戶需要的是自行車,就真正開發出來自行車,而不是開發出摩托車。

而TDD(先寫測試,再寫實現程式碼,然後不停的迭代重構,迴圈)最要是為了給開發人員自己看的,為了讓程式設計師對自己的程式有信心,也就是說開發寫的程式是在做正確的事情。

所以,其本質都是圍繞,做正確的事和正確的做事。以上只是代表個人觀點,不喜勿噴!!!!!新年的第一天,關機睡了,祝大家在新的一年裡心想事成!!!!!