您的軟體架構夠敏捷嗎?
圖片來源: https://www.magzter.com/articles/488/256119/5a2a9554df1c0 什麼都要敏捷? 近年來,敏捷概念幾乎已經深入人心,不光是軟體業談敏捷,慢慢的可以看見各行各業也在談敏捷的思想,前幾次的 Agile 活動裡,不再像以前一樣,只會出現軟體相關產業的面孔。為什麼敏捷思想開始深入人心?其實是因為『變化』不只存在於軟體產業,要面對未來、面對變化、面對挑戰,唯有敏捷以對,隨時快速地調整自己,提升自我能力,靈活的面對這些改變,隨時再出發、隨時再出擊。 測試理念的崛起 測試可說是近十年來,發展最快速的軟體開發理論之一,早期的軟體開發將測試定義為軟體開發生命週期裡的其中一個階段,通常後期進行,也就是當軟體完成到某一程度時才進行,但是當軟體完成到某一程度時,也代表著你要對軟體做任何的需求改變、功能的改變、又或者是新增功能,所需的成本可能是非常的高的,這也是傳統的瀑布式開發慢慢為人所棄用的最主要原因之一,因為人們慢慢地察覺到,軟體的『測試』應該與『開發』這件動作密不可分才是,又或者說,測試其實應該算是軟體開發的其中一個動作,而且是非常重要的一個動作,因為經由測試,你曾能夠確認軟體正常運行無誤、經由測試才能確保軟體能夠被交付、符合客戶需求 + 如預期的運作。 而早在十多年前,TDD, Test Driven Development 的大師 Kent Beck 所撰寫的 TDD by Example 一書就已經提到這樣的觀念,先撰寫測試的程式碼 (Unit Test),在撰寫 Production 的程式碼 從 TDD/ATDD 談傳統 SDLC 的缺陷 在 ATDD 裡提到了左移測試的 V-Model 模型,這個被討論了十多年,只是不幸的是左移這件事常常被誤解成只是將測試移轉至左側,而忽略了由上而下的測試進行。然而,當然,許多的軟體開發者也都知道,在軟體開發生命週期越後期測試所發現問題的時候,修復的代價就越高,這個狀況幾乎可以解釋為傳統 SDLC 的缺陷了,所以,這表示什麼?這意味著在軟體開發生命週期裡應該盡早進行測試才能夠降低這些風險,因為在這些年來因為沒有盡早測試而產生的問題如下: 測試人員可能沒有參與軟體的初始規劃,通常導致測試對系統了解有限+最後分配給測試的資源又嚴重不足 許多需求,架構和設計缺陷都沒有再一開始被『發...