要自動化多少才夠?

Automate This!
http://blogs.msdn.com/micahel/archive/2007/04/11/AutomateThis.aspx

April 11, 2007
Posted by Micahel
Published in Test Guide

你的測試有多少被自動化? 你知道你自動化的足夠嗎? 或是太多?

目前我的團隊是採用每件事都自動化的策略. 這意味著我們自動化每個最後加入的測試個案. "110%自動化" 是其中一個, 我們長官喜歡強調的事情. 有些團隊會留下一些因時間因素或是技術因素, 而無法自動化的個案. 我們則會很辛苦的企圖去讓這類的數量降到最低.

好處:
- 每個build出來, 都可以進行測試. 可以確保受測程式到目前所有我們覺得要正確的部分都正確
- 可以方便支援各種環境組合的測試, 以及各種語言版本的測試 , 只要環境準備好就可以開始測試
- 當有Hot fix要出的時候, 不用要求測試小組幫忙, 只要放到原先自動化測試環境就可以了.

壞處:
- 自動化測試是事先規劃好的流程, 並不是以隨機探索的方式(exploratory)來執行. 即使其中加入一些隨機產生的機制, 也無法保證夠隨機, 因為這些隨機的機制是事先想的, 變化還是有限.
- 假如有些意想不到的事情發生時, 會造成受測系統當掉, 或是可能可以復原, 但是動化測試是無法停下來, 去對這些狀況去做進一步的測試或是調查.
- 還有不要忘記維護 - "要讓每件事能持續正常運作" - 的代價, 並且這些代價可能是無法幫助你找到新的bug, 它只會找到你原先已知的問題.
- 最後, 在這樣的狀況下, 你說測試人員還有時間去手動玩一下受測系統嗎?


另外一個自動化的策略, 是不做任何自動化. 這裡每個測試都是使用滑鼠和鍵盤, 來做人工執行.
好處:
- 每次測試你都有機會, 以隨機探索的方式來執行. 整個產品你都有可以cover到.
- 當有些意想不到的事情發生時, 你可以隨時進一步更深入去做測試, 去追蹤它. 並且沒有維護的代價, 不需要因為有些需求變動發生, 就要花時間去更新測試個案. 所以, 每個
人隨時隨地都在使用受測系統.

壞處:
- 它不可每個build都進行完整的測試, (除非你每兩周拿到一個新build), 所以若bug這時已經被產生了, 可能要隔很久之後, 才會被回歸測試找到. 也有可能那時候已經找不太出
來了.
- 此外, 在各種不同的環境組合下, 你希望能都在上面執行完整的測試, 並且不要漏掉任何重要的問題, 像這樣是一點都不符合經濟效益.
- 當要出hot fix的時候, 你可能也需要完整的測試. 但是當你已經執行十次, 二十次, 或是兩百次後, 很困難去要求大家頭腦都很清醒, 也很享受其中.

作者自己本身相當掙扎, 因為自動化好處和壞處他都知道的相當清楚, 所以很難抉擇. 有些測試或是一部分的測試, 是非常適合自動化. 但是有些測試若是以手動執行, 那會是很無聊, 很制式化. 此外, 自動化測試適合出來的漂亮圖形數據,一般來說管理者喜歡.

"Session-Based Test Management"(http://www.satisfice.com/articles/sbtm.pdf)看起來似乎是一個好的方法, 來補足自動化測試的不足, 讓測試人員能深入去探索受測系統, 並且幫助他們思考地更深入, 以及提供更多資訊讓管理人員參考. 我不知道我們的團隊是否能應用的很好.

不過作者知道要百分之百自動化代價很大, 或是都不自動化代價也很大, 但是他也不知道要如何balance這兩件事, 不知大家的經驗如何?

arrow
arrow
    全站熱搜

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