黑盒測試和白盒測試

FunTester發表於2020-04-26

軟體測試是軟體開發過程中的基本活動。黑盒測試和白盒測試是兩種不同型別的軟體測試策略,它們具有同樣強大的功能,並且結合使用時甚至更好。

黑盒測試

在軟體中,黑盒測試很方便,可以減少災難性(軟體)崩潰的風險。災難性的軟體崩潰可能是什麼?系統在更新客戶資料庫的過程中崩潰了?在這種情況下,可能會丟失客戶資料。

黑盒測試分為三種型別:功能測試,非功能測試和迴歸測試。

黑盒功能測試

透過功能性的黑盒測試,我們可以在不知道軟體如何執行的情況下檢查該軟體是否按預期進行。

軟體是用模組或元件構成的。它是由許多不同的元件組成的一系列元件,組成一個完整的系統。透過以這種方式,在小型元件中,我們可以測試每個元件以確保其正常工作,而不僅僅是測試大型系統。

因此,對於每個小元件,都有輸入和預期輸出。要進行黑盒測試,您需要建立一個有效和無效輸入的列表,包括邊界條件等等。

這是一個簡單的功能性黑匣子測試示例。假設有一個軟體模組,該模組輸入一個數字。

您的簡化測試輸入為:

  • 正數
  • 負數
  • 小數點後的數字
  • 非數字值
  • 空輸入

非功能黑盒測試

我們還可以使用黑盒測試來測試其他預期的系統行為。這些可能包括系統響應時間,預期的資料,大量網路流量等場景。

非功能測試將包括諸如設定模擬測試環境之類的內容,以檢視系統在壓力下的效能。有各種各樣的工具可以幫助我們實現這些測試目標並使所涉及的流程自動化。

迴歸黑盒測試

這是當我們在一個地方進行更改時,對整個系統進行黑盒測試(包括功能測試和非功能測試)時,請確保該更改不會意外影響系統的其他部分。顯然,此過程需要自動化!

白盒測試

白盒測試是當測試軟體模組的內部結構時:程式碼本身。出於各種原因,白盒測試是可以採用的良好測試策略。

出於安全原因

有時,程式碼本來就是 “不安全的”:是因為它引用並使用了來自外部源的不安全函式,偶然地導致資料洩漏或使用了錯誤的結構都會帶來安全隱患。

解決效能問題

有無數種方法可以完成某一項業務的軟體模組的開發實現。儘管可以正常工作,但這並不意味著它已經以最佳方式進行了配置。如果從效能角度來看程式碼結構可以更高效,那麼白盒測試可以發現這一點。

檢查鏈路

在確認交易之前或之後,應將交易記錄在您的系統中嗎?也許之前和之後都需要記錄它?白盒測試允許您檢查路徑和資料流的內部工作方式,以檢視它們是否最有意義和/或符合系統要求。

需要黑盒和白盒測試的結合

黑盒測試對於確保系統按預期執行至關重要。無需編碼知識就可以執行這種測試,因為它不需要檢查程式碼本身。在這種情況下,瞭解軟體系統的工作原理和業務邏輯更為重要。白盒測試更加困難,需要由經驗豐富的程式設計師使用高階工具進行。

兩種型別的測試都有一個大的工具集可以幫助測試人員解決問題,請參考之前的文章。


  • 鄭重宣告:文章首發於公眾號 “FunTester”,禁止第三方(騰訊雲除外)轉載、發表。

技術類文章精選

  • java 一行程式碼列印心形
  • Linux 效能監控軟體 netdata 中文漢化版
  • 效能測試框架第二版
  • 如何在 Linux 命令列介面愉快進行效能測試
  • 圖解 HTTP 腦圖
  • 將 swagger 文件自動變成測試程式碼
  • 基於 java 的直線型介面測試框架初探
  • Selenium 4.0 Alpha 更新日誌
  • Selenium 4.0 Alpha 更新實踐
  • 如何統一介面測試的功能、自動化和效能測試用例

非技術文章精選

  • 為什麼選擇軟體測試作為職業道路?
  • 寫給所有人的程式設計思維
  • 成為自動化測試的 7 種技能
  • 如何在 DevOps 引入自動化測試
  • Web 端自動化測試失敗原因彙總
  • 如何在 DevOps 引入自動化測試
  • 測試人員常用藉口
  • API 測試基礎
  • API 自動化測試指南
  • 未來的 QA 測試工程師
如果覺得我的文章對您有用,請隨意打賞。您的支援將鼓勵我繼續創作!
打賞支援
暫無回覆。

相關文章