黑盒測試,白盒測試與灰盒測試的比較和區別如下所示:
編號 | 黑盒測試 | 白盒測試 | 灰盒測試 |
---|---|---|---|
1 | 不需要瞭解內部工作結構(代碼)。測試用例只需要GUI(圖形用戶介面)。 | 測試需要瞭解內部工作結構(軟體編碼)。 | 部分瞭解內部工作結構。 |
2 | 黑盒測試也稱為功能測試,數據驅動測試和封閉盒測試。 | 白盒測試也稱為結構測試,透明盒測試,基於代碼的測試和透明測試。 | 灰盒測試也稱為半透明測試,因為測試人員對編碼知識有限。 |
3 | 測試方法包括試驗技術和錯誤猜測方法,因為測試人員不需要知道軟體的內部編碼。 | 通過驗證軟體中固有的系統邊界和數據域來進行白盒測試,因為不缺乏內部編碼知識。 | 如果測試人員具有編碼知識,則通過驗證軟體的數據域和內部系統邊界來進行。 |
4 | 輸入表的測試空間(用於創建測試用例的輸入)非常龐大,在所有測試空間中最大。 | 與黑盒測試相比,輸入表的測試空間(用於創建測試用例的輸入)較少。 | 輸入表的測試空間(用於創建測試用例的輸入)小於黑盒和白盒測試。 |
5 | 發現軟體的隱藏錯誤非常困難,因為錯誤可能是由於黑盒測試未知的內部工作造成的。 | 發現隱藏錯誤很簡單,因為它可能是由於內部工作,這在白盒測試中得到了深入探索。 | 很難發現隱藏的錯誤,可在用戶級測試中找到。 |
6 | 它不適用於演算法測試。 | 它非常適合並推薦用於演算法測試。 | 它不被考慮用於演算法測試。 |
7 | 黑盒測試中的時間消耗取決於功能規範的可用性。 | 由於冗長的代碼,白盒測試需要很長時間來設計測試用例。 | 測試用例設計可以在短時間內完成。 |
8 | 測試人員,開發人員和最終用戶可以參與測試。 | 只有測試人員和開發人員才能參與測試; 最終用戶不能涉及。 | 測試人員,開發人員和最終用戶可以參與測試。 |
9 | 這是所有測試過程中耗時最少的過程。 | 在所有測試過程中,整個測試過程是最耗時的。 | 比白盒測試耗時更少。 |
10 | 黑盒測試涵蓋了抵禦病毒攻擊的彈性和安全性。 | 白盒測試不包括針對病毒攻擊的彈性和安全性。 | 灰盒測試不包括針對病毒攻擊的彈性和安全性。 |
11 | 黑盒測試的基礎是外部期望內部行為未知。 | 灰盒測試的基礎是編碼,負責內部工作。 | 基於高級資料庫圖表和數據流圖進行測試。 |
12 | 它不像白盒和灰盒測試方法那麼詳盡。 | 黑盒和灰盒測試方法之間最為詳盡。 | 部分詳盡; 取決於基於編碼或基於GUI的測試用例的類型。 |