最近在研究軟體工程中最佳實踐,接觸了tdd(測試驅動開發),bdd(行為驅動開發), atdd(可接受性測試驅動開發)。有一天,在路上走的時候,突然想了一下,他們之間有什麼共通點呢?tdd,bdd,atdd的本質是什麼呢?
帶著這個問題,咱們先看看上面這張圖,我們知道在軟體開發或者維護過程中,基本的主流角色有,開發,測試,客戶,使用者,專案經理,運維人員等。 而我們知道,在生產和開發乙個軟體的過程中,處處充滿風險,這個時候,從巨集觀角度來說,做正確的事是最重要的;從微觀角度來說,正確的做事也很重要。
首先來看,做正確的事是最最重要的,如果大家看過玩過或者看過傳遞猜詞語遊戲的話,應該知道,第乙個人看到乙個正確的詞語,然後用動作表達出來,然第二個人猜意思,然後,在動作表達給第三個人。。。。。 往往到了最後,意思可能大相徑庭。
那麼,在軟體開發的需求分析和實現階段又何嘗不是這樣呢?本來客戶需要的是一輛自行車,
結果卻得到了一輛電單車,
這一切的一切都是溝通惹的禍,其實就是沒有做正確的被期望的事情。而bdd(行為驅動開發), atdd(可接受性測試驅動開發)就是為了解決這個問題。
我們知道,bdd或者atdd,就是先寫需求功能點描述,這種描述客戶,經理,開發,測試都能看懂,既是沒有寫過任何**的人都能看懂,而且是基於文字的。目的說白了,就是讓開發出來的系統正是客戶需要的,做正確的事情,正如上面的圖所示,客戶需要的是自行車,就真正開發出來自行車,而不是開發出電單車。
而tdd(先寫測試,再寫實現**,然後不停的迭代重構,迴圈)最要是為了給開發人員自己看的,為了讓程式設計師對自己的程式有信心,也就是說開發寫的程式是在做正確的事情。
所以,其本質都是圍繞,做正確的事和正確的做事。以上只是代表個人觀點,不喜勿噴!!!!!新年的第一天,關機睡了,祝大家在新的一年裡心想事成!!!!!
本質啊本質之四 陣列的本質
陣列 1.陣列是同型別的聚合 2.定義乙個陣列,如 type x n 意思是記憶體裡有 n個連續的 type 型變數,連續的排列在一起。x 是第乙個元素的位址,是乙個立即數,是右值,不是變數。x x 0 這是編譯器處理的,因為當你將 x 賦值給乙個指標時 編譯器實際上就用的 x 0 3.多維陣列也是...
控制代碼的本質
handle就是pvoid,也就是無型別指標,上面這些資源的控制代碼handles都不過是指向struct的指標,至於這個struct的用處,連m 都說unused了,現在解釋下m 這麼做的意義,這就是所謂資料封裝,你可以在你的程式中把m 的內部結構指標傳來傳去,可是你卻不知道它到底指向的內容是什麼...
計畫的本質
軟體開發的計畫應該由技術人員來做,專案計畫應該由專案管理人員來做。軟體開發計畫和專案計畫分別包含哪些具體的內容,這不是本書討論的重點 略有涉及 我們關注的是計畫的本質。什麼是計畫?預見是指從現實事物的發展規律中把握其未來發展的趨勢。和猜測不同,預見必定基於現實事物的發展規律。這些發展規律往往表現為嚴...