一.黑盒測試(Black-box Testing)
黑盒測試也稱功能測試,測試中把被測的軟件當成一個黑盒子,不關心盒子的內部結構是什麼,只關心軟件的輸入數據與輸出數據。
不看軟件代碼,只對功能進行測試
對軟件進行操作,觀察結果是否和我們想象的一致
黑盒,顧名思義就是:把測試對象看作一個不能打開的黑盒子。測試時,測試人員完全不用考慮盒子裏面的邏輯結構和具體運作,只依據程序的需求規格說明書,檢查程序的功能是否符合它的功能說明,檢驗輸出結果對不對。
二.白盒測試(White-box Testing)
白盒測試是基於代碼的測試。白盒指的打開盒子,去研究裏面的源代碼
和程序結果。接口測試也是白盒測試的是一種 。
對代碼進行測試,對代碼裏面的的接口,數據結構,邊界值,路徑覆蓋,錯誤處理等等內容進行測試
與黑盒恰恰相反,這種方法是把測試對象看作一個打開的透明盒子。測試時,測試人員會利用程序內部的邏輯結構及有關信息,通過在不同點檢查程序狀態,檢驗程序中的每條通路是否都能按預定要求進行正確工作。
三.區別
黑盒測試和白盒測試,二者最大的區別應該就是測試時關注的對象不一樣。
黑盒測試主要針對的是程序所展現給用戶的功能,白盒測試主要針對的是程序代碼邏輯,簡單的說,就是前者測試最終展示功能,後者測試後臺程序的代碼邏輯。
測試方法不一樣
黑盒測試的測試方法有:等價類劃分、邊界值分析法、錯誤分析法、因果圖法
白盒測試的測試方法有:邏輯覆蓋法、基本路徑測試法、代碼檢查法、程序變異、靜態結構分析法、靜態質量度量法、符號測試法、
四.優缺點
(1)黑盒
優點:
1.對於較大的代碼單元來說,黑盒測試比白盒測試效率更高。
2.測試人員不需要了解細節,包括特定的編程語言。
3.測試人員和開發人員是彼此獨立的。
4.從用戶的角度測試,很容易被理解和接受。
缺點:
1.很多測試路徑沒有被測試到。
2.不能直接對特定程序段進行測試,而該程序段可能隱藏很多錯誤。
3.大部分和研究相關的測試都是直接針對白盒測試的。
(2)白盒
優點:
1.幫助軟件測試人員增大代碼的覆蓋率,提高代碼的質量,發現代碼中隱藏的問題。
2.能相對來說了解軟件的具體實現代碼
3.對代碼的測試來說相對比較好
缺點:
1.程序運行會有很多不同的路徑,不可能測試所有的運行路徑;
2.測試基於代碼,只能測試開發人 員寫的對不對,而不能知道研發人員設計的正確與否,可能會漏掉一些功能需求;
3.系統龐大時,測試開銷 會非常大。