測試自動化金字塔中被遺忘了一層

The Forgotten Layer of the Test Automation Pyramid
http://blog.mountaingoatsoftware.com/the-forgotten-layer-of-the-test-automation-pyramid

即使agile方法論的好處很多, 可是我們還是要自動化我們的測試, 但是我們大多做不到. 自動化測試的代價非常昂貴, 當一個功能完成後, 可能要花數個月去完成它, 有些狀況可能要花數年. 團隊認為之所以這麼困難很快寫好, 其中一個原因就是我們在錯誤的level上做自動化. 由下圖可以知道, 有三個level可以做自動化, 這個圖稱為測試自動化的金字塔
http://blog.mountaingoatsoftware.com/wp-content/uploads/Testpyramid.jpg
 
在測試自動化金字塔的底部是unit testing. 若想要有一個穩定的測試自動化策略, Unit testing是一個很好的選擇, 所以他是在金字塔的底部並且所佔面積最大.它可以告訴程式設計師錯誤在哪裡, 或者是縮小要尋找的範圍. 若是由人來做測試, 它可能會說某個功能不正常, 這樣程式設計師可能會有1000行或是更多行的程式要檢查. 此外, 通常會使用和開發者相同的程式語言來撰寫unit testing, 因此對程式開發人員來說會覺得非常自在.

至於最上面一層, 我們最好不要化太多精力去做它. 雖然它可以運作, 但是很容易需要重寫或是修改, 所以要花費更多時間和精力去維護它. 此外太多部份是有關於使用者輸入地部份或是結果呈現的部分, 不一定每次都要測試這些地方, 並且這樣也很浪費測試時間.

在測試自動化金字塔的中間是service layer. 雖然作者叫它是service layer, 但是不是代表它只能用在SOA的架構上面. 所有應用程式都有所提供不同情況的services, 例如有些應用程式會提供一些service來處理使用介面的inputs. 所以若是應用程式能把使用介面和內部所提供的service分開來, 我們便可以利用service-level的testing.

許多組織在做測試自動化時, 走錯方向好幾年, 他們總是忽略了service-level testing. 雖然nit testing是很棒, 但是他並沒有辦法滿足太多application層測試的需求. 如果沒有利用service level的測試, 你可能會都是在做user interface testing的自動化, 這將會讓你的測試自動化費用持續昂貴, 測試程式持續脆弱, 維護費用一直升高.

arrow
arrow
    全站熱搜

    kojenchieh 發表在 痞客邦 留言(0) 人氣()