對于一些基本的、邏輯性不強的操作,可以使用自動化測試工具。應該說,現在在性能測試、壓力測試等方面,自動化測試有其不可替代的優勢。它可以用簡單的腳本,實現大量的重復的操作。從而通過對測試結果的分析,得出結論,這樣不僅節省了大量的人力和物力,而且使測試的結果更準確。對于一些邏輯性很強的操作,如果自動化測試不是很健全的話,不建議使用。因為這需要比較復雜的腳本語言,不可避免的增加了由于測試腳本的缺陷所造成測試結果錯誤的誤差。這時就需要手動測試了。
手工測試也存在這一些缺陷,手工測試者最常做的就是重復的手工回歸測試,不但代價昂貴,而且容易出錯。自動化測試可以減少但不能消除這種工作的工作量。測試者可以有更多的時間去從事更有趣的測試,例如在應用程序在復雜的場景下的不同處理等,盡管測試就是要花費更長的時間找到錯誤,但比不意味著因此而要付出更高的代價。所以選擇正確的測試方法是尤為重要的。
我在某位博客上又歸結了自動化測試的優缺點:
自動化測試的優點:
1、對程序的回歸測試更方便。這可能是自動化測試最主要的任務,特別是在程序修改比較頻繁時,效果是非常明顯的。由于回歸測試的動作和用例是完全設計好的,測試期望的結果也是完全可以預料的,將回歸測試自動運行,可以極大提高測試效率,縮短回歸測試時間。
2、可以運行更多更繁瑣的測試。自動化的一個明顯的好處是可以在較少的時間內運行更多的測試。
3、可以執行一些手工測試困難或不可能進行的測試。比如,對于大量用戶的測試,不可能同時讓足夠多的測試人員同時進行測試,但是卻可以通過自動化測試模擬同時有許多用戶,從而達到測試的目的。
4、更好地利用資源。將繁瑣的任務自動化,可以提高準確性和測試人員的積極性,將測試技術人員解脫出來投入更多精力設計更好的測試用例。有些測試不適合于自動測試,僅適合于手工測試,將可自動測試的測試自動化后,可以讓測試人員專注于手工測試部分,提高手工測試的效率。
5、測試具有一致性和可重復性。由于測試是自動執行的,每次測試的結果和執行的內容的一致性是可以得到保障的,從而達到測試的可重復的效果。
6、測試的復用性。由于自動測試通常采用腳本技術,這樣就有可能只需要做少量的甚至不做修改,實現在不同的測試過程中使用相同的用例。
7、增加軟件信任度。由于測試是自動執行的,所以不存在執行過程中的疏忽和錯誤,完全取決于測試的設計質量。一旦軟件通過了強有力的自動測試后,軟件的信任度自然會增加。
自動化測試的缺點:
1、不能取代手工測試 ------------- 有很多需要人腦判斷結果的測試用例無法用自動工具實現,或者代價太大
2、手工測試比自動測試發現的缺陷更多 -----------------非常同意
3、對測試質量的依賴性極大
4、測試自動化不能提高有效性
5、測試自動化可能會制約軟件開發。由于自動測試比手動測試更脆弱,所以維護會受到限制,從而制約軟件的開發。
7、工具本身并無想像力
綜上所述,可以歸結自動化完成不了的,手工測試都能彌補,兩者有效的結合是測試質量保證的關鍵。
原文轉自:http://www.anti-gravitydesign.com