手工測試是傳統的測試方法,由測試人員手工編寫測試用例、執行、觀察結果。軟件測試中發現問題最多的都是手工測試,占整個項目的百分之九十五左右,所以說手工測試是軟件測試基礎。但手工測試也有一定的缺點:測試工作量大、重復多、回歸測試難以實現。
根據被測對象信息的不同,將軟件測試的方法分為白盒測試、黑盒測試、灰盒測試。
- 白盒測試
- 概念:白盒測試又稱玻璃盒測試、透明盒測試、開放盒測試、結構化測試、邏輯驅動測試、是基於程序結構的邏輯驅動測試。盒子指的是被測試的軟件,白盒指的是盒子是可視的,你清楚盒子內部的東西以及里面是如何運作的。
- 目的:
- 白盒測試發現問題后,解決問題的成本比較低
- 通過檢查軟件內部的邏輯結構,對軟件中的邏輯路徑進行覆蓋測試
- 在程序不同地方設立檢查點,檢查程序的狀態,以確定實際運行狀態是否與預期狀態是否一致
- 優點:
- 使測試人員去仔細思考軟件的實現
- 可以檢測代碼中的每條分支的路徑
- 揭示隱藏在代碼中的錯誤
- 對代碼的測試比較徹底
- 最優化
- 缺點:
- 無法檢測代碼中遺漏的路徑和數據敏感性錯誤
- 不驗證規格的正確性
- 昂貴
- 黑盒測試
- 概念:黑盒測試又稱功能測試,它是通過測試來檢查每個功能是否都能正常使用。黑盒測試着眼於程序外部結構,不考慮外部邏輯,主要針對軟件界面和軟件功能進行測試。黑盒測試是以用戶的角度,從輸入數據與輸出數據的對應關系出發進行測試的。
- 目的:減少測試時的測試用例數,用盡量少的測試用例完成測試,發現更多問題。
- 優點:
- 基本上不用人管着,如果程序停止運行了一般就是別冊程序crash了
- 設計完測試用例后,剩余的工作就不多了
- 對於更大的代碼單元來說,比白盒測試效率更高
- 缺點:
- 沒有清晰和簡潔的規格,測試用例很難實現
- 不能控制內部執行路徑,會有很多內部測試路徑沒有被測試到
- 不能直接對特定的程序段,這些程序可能非常復雜
- 灰盒測試
- 概念:灰盒測試是介於白盒測試和黑盒測試之間的一種測試,灰盒測試多用於集成測試階段。不僅關注輸出、輸入的正確性,同時也關注程序內部的情況。灰盒測試不像白盒測試那樣詳細完整,但又比黑盒測試更關注程序內部的邏輯,常常是通過一些表征性的現象、事件、標志來判斷內部的運行狀態。
- 目的:
- 確認軟件的質量,一方面是確認軟件做了你所期望的事情,另一方面是確認軟件以正確的方式來做了這個事情
- 提供信息,比如提供給開發人員或程序經理的反饋信息,為風險評估所准備的信息
- 保證整個軟件開發過程是高質量的
