手動測試,就是指完全依賴人工測試軟件,主要根據測試用例來執行測試,但是測試用例也不可能100%覆蓋軟件功能還要通過其他方式來發現軟件缺陷,這樣就要求測試人員的經驗要豐富并且具有發散思維的能力,通過錯誤猜測等方法來彌補測試用例沒有覆蓋的部分。
其實在軟件測試過程中人工測試占很大的比重,任何軟件測試都不可能離開人工測試,尤其是邏輯性很強的軟件。人是有思維的,在測試過程中可以從不同的角度來思考問題,就如上面提到過的發散思維,所以人工測試也是發現軟件缺陷最多的。但是它同樣也存在一些問題:
人工測試代價比較昂貴,人員投入較大并且測試者做的是重復的勞動很容易產生精神疲勞從而導致錯誤的產生和測試盲點,有些問題在其他人看來很容易發現但是測試者卻看不到。
自動化測試,就是借助于一些測試工具來執行測試。首先,對于一些基本的、邏輯性不強的操作可以使用自動化測試,比如現在使用自動化測試最頻繁的回歸測試。其次,有些測試是人工不能實現的或者實現起來成本較高的測試需要使用自動化工具,比如壓力,負載測試等。
自動化測試有它的優點:
1、對于程序回歸測試更方便,這也是自動化測試的主要用途之一,特別是在程序修改比較頻繁的時候效果非常明顯。由于測試的腳本和用例都是設計好的,測試期望的結果也可以預料,將回歸測試自動化可以極大的提高效率縮短回歸時間。
2、可以執行手工測試困難或不可能達到的測試,比如同時并發N個用戶,不可能讓N個測試人員同時測試,這時使用自動化測試工具模擬多用戶并發從而達到目的。
3、更好的利用資源,可以讓更多更繁瑣的事情執行自動化測試,減少了測試的錯誤,同時也解脫了測試人員,使有限的人力資源可以充分利用。
4、測試的重復利用,由于自動測試通常使用的是自動化腳本技術,這樣就可以只需要做較少的甚至是不修改就可以實現在不同的測試過程中使用相同的用例。
5、減少錯誤,由于測試的自動執行,所以不存在執行過程中的疏忽和錯誤,測試的質量完全取決于測試的設計。
同樣自動化測試也有缺陷:
1、自動化測試沒有思維,設計的好壞決定了測試的質量。
2、自動化測試發現的問題比手工測試要少的多。
3、自動化測試軟件本身就是一個產品,它在運行的時候有可能影響被測軟件的性能。
4、自動化測試并不是簡單的錄制和回放,需要修改腳本、設計場景等,所以他對測試設計人員的要求很高。
綜上所述,測試工作無論是手工測試還是自動測試都是軟件質量的保障途徑,兩者要有效的結合才能達到很好的效果,在測試過程中要準確的判斷何時需要手工測試何時需要自動化測試才能保證測試的質量。
原文轉自:http://www.anti-gravitydesign.com