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