自動化軟件測試的意義與定位 自動化測試工具
通常情況下,軟件測試的工作量很大。而測試中的許多操作是重復性的、非智力性的和非創造性的,并要求做準確細致的工作,這樣,計算機就比人更適合完成任務。另一方面,手工測試存在如下的局限性:
1. 通過手工測試無法做到覆蓋所有代碼路徑。
2. 簡單的功能性測試用例在每一輪測試中都不能少,而且具有一定的機械性、重復性,工作量往往較大。
3. 許多死鎖、資源沖突、多線程等有關的錯誤,通過手工測試很難捕捉到。
4. 進行系統壓力、性能測試時,需要模擬大量數據或大量并發用戶等各種應用場合時,很難通過于工測試來進行。
5. 進行系統可靠性測試時,需要模擬系統長時間運行,以驗證系統能否穩定運行,這也是手工測試無法模擬的。
6. 如果有大量(幾千)的測試用例,需要在短時間內(1天)完成,手工測試幾乎不可能做到。
于是,就誕生了軟件自動化測試這個領域。軟件自動化測試是相對手工測試而存在的,主要是通過所開發的軟件測試工具、腳本等來實現,具有良好的可操作性、可重復性和高效率等特點。其主要好處有:
1. 縮短軟件開發測試周期,可以讓產品更快投放市場。
2. 測試效率高,充分利用硬件資源。
3. 節省人力資源,降低測試成本。
4. 增強測試的穩定性和可靠性。
5. 提高軟件測試的準確度和精確度,增加軟件信任度。
6. 軟件測試工具使測試工作相對比較容易,但能產生更高質量的測試結果。
7. 手工不能做的事情,自動化測試能做,如壓力、性能測試。
如上所述,軟件自動化測試有很多優點,可以帶來非常明顯的收益,但是,目前情況下,軟件自動化測試還不能解決所有的測試問題,也有以下限制:
1. 不能取代手工測試
3. 對測試質量的依賴性極大
4. 測試自動化不能提高有效性
5. 測試自動化可能會制約軟件開發。
6. 工具本身并無想象力,不能主動發現缺陷
另外,人工測試比測試工具更優越的另一個方面是可以處理意外事件。雖然工具也能處理部分異常事件,但是對真正的突發事件和不能由軟件解決的問題就無能為力。