什麼是黑盒測試?

軟件測試是軟件開發生命週期的基本組成部分,無論是對於 Web 還是移動應用程序軟件。

測試不僅證明了軟件產品的質量,而且還爲開發人員提供了增強它的機會。

幾乎每個軟件應用程序都需要一行代碼或一系列複雜的例程。因此,開發人員必須進行多次測試,以確保代碼能夠正常運行並實現其預期目的。

黑盒和白盒軟件測試是開發人員在這個階段經常執行的兩種測試形式。

在本文中,我們將重點介紹黑盒測試、其基本區別以及黑盒和白盒測試之間的相似之處。

黑盒測試,通常稱爲功能測試,是一種無需瞭解軟件內部代碼結構即可檢查軟件功能的技術。它可以應用於所有級別的軟件測試,但主要用於更高的可接受性和系統相關級別。

黑盒測試是一個獨立於其內部結構、設計和實現來測試系統及其行爲的過程。

測試人員提供輸入,輸出被視爲該軟件測試方法的一部分。

這可以識別系統對預期和意外用戶活動、響應時間、可用性困難和可靠性問題的響應。

黑盒測試是一種強大的方法,因爲它端到端地執行系統。

與最終用戶“不關心”系統的設計或結構並期望對他們的請求進行適當的回答一樣,測試人員可以複製用戶活動以確定系統是否兌現了承諾。

程序或應用程序是否提供廣告功能可以通過進行黑盒測試來確定。

在黑盒測試中,會檢查所有單獨的組件,例如用戶界面和體驗、Web 服務器或應用程序服務器、數據庫、依賴項和集成系統。

此類測試的其他名稱包括“不透明盒”、“封閉盒”、“基於規範”和“眼對眼”測試。

以下是黑盒測試的類型:

功能測試主要關注軟件的關鍵特性,以及關鍵組件與整個系統的集成。

該方法涉及冒煙測試/健全性測試、集成測試和系統測試,以測試軟件的獨特功能和特性。

此測試的一個典型示例是驗證只有具有正確憑據的用戶才能登錄,而具有錯誤憑據的用戶則不能。

非功能測試超越了特性和功能的測試。它不是確定軟件是否可以執行操作,而是檢查它如何完成該操作。

此類測試檢查軟件的可用性和理解性、峰值負載下的性能、與相關設備和瀏覽器的兼容性以及對安全威脅的脆弱性。

對程序的功能部分進行迴歸測試,以查看新版本是否顯示出其功能的迴歸或惡化。進行此測試是爲了確定特定功能是否在最近的版本中不再起作用,或者以前有效的操作現在是否表現不佳。

以下是不同的黑盒測試技術:

作爲測試所有可能輸入的替代方法,測試人員可以將可用輸入“分區”成組,然後僅測試來自每個分區的一個“樣本”輸入。測試人員只需檢查“18 歲以下”組中的一個出生日期和“18 歲以上”組中的一個日期,例如,如果系統請求用戶的出生日期併爲所有未滿年齡的用戶提供相同的響應的 18 歲,以及 18 歲以上的用戶的不同反應。

系統在給定邊界值附近的獨特行爲很容易被測試人員檢測到。例如,一個字段可能只允許 0 到 99 之間的數字。邊界值(-100、-99 和 -100)爲測試人員驗證正確的輸入驗證提供了一種方便的方法。

有很多系統會根據一些輸入爲您提供結果。在發現這樣的“規則”或條件集後,測試人員可以確定每個規則的效果並創建相應的測試用例。

當從一種狀態轉換到另一種狀態時,特定系統會引發許多響應。一個典型的例子是一個登錄系統,它允許用戶進行身份驗證,但在預定次數的失敗嘗試後鎖定帳戶。

如果測試人員確定了一種狀態轉換機制,他們可以構建測試用例來探測系統在狀態之間轉換時的情況。例如,如果系統在五次不成功的登錄嘗試後鎖定帳戶,則測試用例可以檢查在第六次登錄嘗試時發生的情況。

該技術涉及測試開發人員在構建類似系統時經常犯的錯誤。例如,測試人員可以檢查開發人員是否處理了字段中的空值、數字字段中的文本或純文本字段中的數字,以及輸入的淨化——是否可以提交包含可執行代碼的用戶輸入,該代碼具有安全影響。

異常錯誤猜測涉及測試可能影響測試系統的已知軟件漏洞。

以下是黑盒測試的優點:

測試人員只關心應用程序的圖形用戶界面 (GUI)。

因此,他們不會檢查源代碼是否有錯誤。

測試人員不需要理解代碼;因此外包黑盒軟件測試是可能的。

測試是從最終用戶的角度進行的。

由於測試人員不熟悉代碼,因此他們對代碼的功能沒有先入爲主的概念。

以下是黑盒測試的缺點:

可以重複測試過程,或者可以完全省略特定路徑。

當軟件設計人員已經執行了測試時,它們可能是不必要的。

由於測試人員缺乏編碼知識,可能無法檢查某些應用程序功能和特性。

測試人員必須確定他們必須測試什麼以確保程序符合最高質量標準。

黑盒測試對你的武器庫很有幫助,但它不應該是唯一的。它可能有助於建立對項目質量的信任。儘管如此,如果存在未記錄的需求,則不會使用黑盒測試來確定錯誤的優先級。