天天看點

白盒測試快速入門1-簡介

什麼是白盒測試?

白盒測試被定義​​為測試軟體解決方案的内部結構,設計和編碼。在這種類型的測試中,代碼對測試人員是可見的。它主要側重于通過應用程式驗證輸入和輸出的流程,改進設計和可用性,加強安全性。白盒測試也稱為透明盒測試,開箱測試,結構測試,基于代碼的測試和玻璃盒測試。它通常由開發人員執行。

它是軟體測試“盒子測試”方法的兩個部分之一。其對應的黑盒測試涉及從外部或最終使用者類型的角度進行測試。另一方面,白盒測試基于應用程式的内部工作,并圍繞内部測試。

由于透視框概念,使用了術語“WhiteBox”。透明框或WhiteBox名稱表示能夠透過軟體的外殼(或“盒子”)進入其内部工作。同樣,“黑匣子測試”中的“黑匣子”表示無法看到軟體的内部工作方式,是以隻能測試最終使用者體驗。

白盒測試中驗證什麼?

白盒測試涉及測試以下軟體代碼:

  • 内部安全漏洞
  • 編碼過程中的路徑損壞或結構不良
  • 特定輸入流
  • 預期輸出
  • 條件循環
  • 單獨測試每個語句,對象和函數

測試可以在系統,內建和單元級别的軟體開發中完成。白盒測試的基本目标之一是驗證應用程式的工作流程。它涉及針對預期或期望的輸出測試一系列預定義輸入。

如果視訊無法通路,請單擊此處

如何進行白盒測試?

  • 步驟1)了解源代碼

測試人員經常做的第一件事就是學習并了解應用程式的源代碼。由于白盒測試涉及測試應用程式的内部工作,是以測試人員必須非常了解他們正在測試的應用程式中使用的程式設計語言。此外,測試人員必須高度了解安全編碼實踐。安全性通常是測試軟體的主要目标之一。

  • 步驟2)建立測試用例并執行

白盒測試的第二個基本步驟涉及測試應用程式的源代碼以獲得正确的流程和結構。一種方法是編寫更多代碼來測試應用程式的源代碼。測試人員将針對應用程式中的每個過程或一系列過程開發少量測試。此方法要求測試人員必須熟悉代碼,并且通常由開發人員完成。

白盒測試示例

考慮以下代碼

WhiteBox測試的目标是驗證代碼中的所有決策分支,循環和語句。

要運用上面代碼中的語句,WhiteBox測試用例就是

a = 1,b = 1

a= -1,b = -3

白盒測試技術

主要的白盒測試技術是代碼覆寫率分析。有自動化工具可用于執行代碼覆寫率分析。以下是一些覆寫分析技術

  • 語句覆寫: - 至少對代碼中的每個可能的語句進行一次測試。
  • 分支覆寫 - 此技術檢查軟體應用程式的每個可能路徑(if-else和其他條件循環)。

除此之外,還有許多覆寫類型,例如條件覆寫,多條件覆寫,路徑覆寫,功能覆寫等。每種技術都有其自身的優點,并嘗試測試(覆寫)軟體代碼的所有部分。使用Statement和Branch覆寫,您通常可以獲得80-90%的代碼覆寫率,這已足夠。

白盒測試的類型

白盒測試包含幾種用于評估應用程式,代碼塊或特定軟體包的可用性的測試類型。下面列出了 -

  • 單元測試

它通常是在應用程式上完成的第一種類型的測試。在開發時,對每個單元或代碼塊執行單元測試。單元測試基本上由程式員完成。作為一名軟體開發人員,您需要開發幾行代碼,一個函數或一個對象,并在軟體開發生命周期早期繼續進行單元測試以幫助識别大多數錯誤之前對其進行測試以確定其正常工作。在這個階段确定的錯誤更便宜,易于修複。

  • 記憶體洩漏測試

記憶體洩漏是運作速度較慢的應用程式的主要原因。如果您的軟體應用程式運作緩慢,那麼在檢測記憶體洩漏方面經驗豐富的QA專家非常重要。

除此之外,一些測試類型是黑盒和白盒測試的一部分。它們列出如下

  • 白盒滲透測試

在此測試中,測試人員/開發人員擁有應用程式源代碼,詳細網絡資訊,涉及的IP位址以及運作應用程式的所有伺服器資訊的完整資訊。目的是從多個角度攻擊代碼以暴露安全威脅

  • 白盒Mutation測試:

Mutation測試通常用于發現用于擴充軟體解決方案的最佳編碼技術。

參考資料

白盒測試工具

比如

  • pytest
  • nose
  • unittest
  • doctest
  • Veracode
  • EclEmma
  • RCUNIT
  • NUnit
  • JSUnit
  • JUnit
  • CppUnit
  • gtest

白盒測試的優點

  • 通過查找隐藏錯誤來優化代碼。
  • 白盒測試案例可以輕松實作自動化。
  • 由于通常涵蓋所有代碼路徑,是以測試更加徹底。
  • 即使GUI不可用,也可以在SDLC中盡早開始測試。

WhiteBox測試的缺點

  • 白盒測試可能非常複雜且昂貴。
  • 通常執行白盒測試用例的開發人員會厭惡它。開發人員測試的白盒測試不詳細可能導緻生産錯誤。
  • 白盒測試需要專業資源,并對程式設計和實作有詳細的了解。
  • 白盒測試非常耗時,更大的程式設計應用程式需要時間來完全測試。

小結

白盒測試可能非常複雜。所涉及的複雜性與正在測試的應用程式有很大關系。執行單個簡單操作的小型應用程式可以在幾分鐘内進行白盒測試,而較大的程式設計應用程式需要數天,數周甚至更長時間才能完全測試。

白盒測試應該在軟體應用程式上進行,因為軟體應用程式在編寫後會在每次修改後再次開發。