工欲善其事,必先利其器。荀子曰:吾嘗終日而思矣,不如須臾之所學也。吾嘗〔足支〕而望矣,不如登高之博見也。登高而招,臂非加長也,而見者遠。順風而呼,聲非加疾也,而聞者彰。假輿馬者,非利足也,而致千裡。假舟輯者,非能水也,而絕江河。君子生非異也,
善假於物也。君子性非異也,
善假於物也。
在測試過程中,測試載入器是必需的,特別是在系統效能測試、負載測試(壓力測試)和安全性測試等方面。在負載測試中,需要類比大量資料(如每秒鐘發送幾十個資料包)或大量並發使用者(如同時線上訪問使用者5000人)等各種應用場合時,如果不藉助測試載入器,幾乎是不可能完成這種測試工作的。
其次,軟體測試具有一定的重複性,主要體現在迴歸測試中。任何一個軟體測試專案後期都要進行迴歸測試,可能是由於修正缺陷,也可能是由於軟體不斷升級而新加功能、增強功能。迴歸測試就是要驗證已經實現的大部分功能,為了消除代碼改動所造成的影響而要進行大量的測試。雖然迴歸測試找到軟體缺陷的可能性小、效率比較低,但又是必要的、不可缺少的。如果由手工完成不斷重複的迴歸測試,會很大程度上降低測試工作的趣味性。如果由測試載入器自動完成迴歸測試,將會解放測試人員,是一件非常有意義的事。
除此之外,手工測試還存在其它的限制,主要有:
1) 通過手工測試無法做到覆蓋所有代碼路徑。
2) 許多與時序、死結、資源衝突、多線程等有關的錯誤通過手工測試很難捕捉到
3) 在進行系統可靠性測試時,需要類比系統運行十年、幾十年的情景,以驗證系統能否穩定運行,也是手工測試無法類比的。
4) 如果有大量(幾千)的測試案例,需要在短時間內(1天)完成,又不可能投入大量人力。
5) 測試可以發現錯誤,但並不能表明程式的正確性。因為不論黑盒、白盒都不能實現窮舉測試。對一些關鍵程式,如飛彈發射軟體,則需要考慮利用數學歸納法或謂詞演算等進行證明。
由於手工測試的局限性,軟體測試藉助測試載入器成為必要,並向軟體測試全面自動化發展,可以解決手工測試的局限性,帶來一些益處。
1) 縮短軟體開發測試周期。對上千個測試案例,測試載入器可以在很短時間內完成,而且測試載入器不知勞累、24小時不停地運行同樣測試案例十遍、一百遍等。這些都體現了軟體測試載入器執行測試具有速度高、效率高的特點。
2) 指令碼可以多次重複運行,降低成本。在迴歸測試中、在很多不同的測試環境(如不同的瀏覽器、不同的作業系統、不同的串連條件等)下,測試載入器可以多次運行同樣的測試案例,而測試指令碼只要開發一次。
3) 增強測試的穩定性和可靠性,通過測試載入器運行測試指令碼,能保證百分之百被執行,所有的測試結果都能客觀地記錄下來。
提高軟體測試的準確度和精確度,軟體測試自動化的結果都是數量化,並且和所預期結果或規格說明書規定的標準進行量化對比
在本講,主要介紹以下內容:
p
1.
自動化測試和測試自動化
p
2.測試載入器的實現原理
p
3.結構化、資料驅動和關鍵字驅動指令碼
p
4.測試載入器選擇的標準
p
5.開源工具的完整解決方案
p
6.商業工具的完整解決方案
p
7.以開源工具Selenium介紹自動化功能測試
p
8.以開源工具JMeter介紹自動化效能測試
p
9.測試自動化架構 詳見:第5講 全程軟體測試-測試自動化
還可參考:
- 《全程軟體測試》的一些亮點
- 如何有效又圓滿地完成軟體測試?
- 如何更好地理解《全程軟體測試》
- 技術佈道——全程軟體測試