白盒測試是什麼意思有什麼優缺點

  白盒測試是一種測試用例設計方法,盒子指的是被測試的軟體,那麼你對白盒測試瞭解多少呢?以下是由小編整理關於什麼是白盒測試的內容,希望大家喜歡!

  白盒測試的介紹

  白盒測試又稱結構測試、透明盒測試、邏輯驅動測試或基於程式碼的測試。白盒指的是盒子是可視的,你清楚盒子內部的東西以及裡面是如何運作的。"白盒"法全面瞭解程式內部邏輯結構、對所有邏輯路徑進行測試。"白盒"法是窮舉路徑測試。在使用這一方案時,測試者必須檢查程式的內部結構,從檢查程式的邏輯著手,得出測試資料。貫穿程式的獨立路徑數是天文數字。

  採用什麼方法對軟體進行測試呢?常用的軟體測試方法有兩大類:靜態測試方法和動態測試方法。其中軟體的靜態測試不要求在計算機上實際執行所測程式,主要以一些人工的模擬技術對軟體進行分析和測試;而軟體的動態測試是通過輸入一組預先按照一定的測試準則構造的例項資料來動態執行程式,而達到發現程式錯誤的過程。在動態分析技術中,最重要的技術是路徑和分支測試。下面要介紹的六種覆蓋測試方法屬於動態分析方法。

  白盒測試的測試方法

  白盒測試的測試方法有程式碼檢查法、靜態結構分析法、靜態質量度量法、邏輯覆蓋法、基本路徑測試法、域測試、符號測試、路徑覆蓋和程式變異。

  白盒測試法的覆蓋標準有邏輯覆蓋、迴圈覆蓋和基本路徑測試。其中邏輯覆蓋包括語句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋、條件組合覆蓋和路徑覆蓋。六種覆蓋標準發現錯誤的能力呈由弱到強的變化:

  1、語句覆蓋每條語句至少執行一次。

  2、判定覆蓋每個判定的每個分支至少執行一次。

  3、條件覆蓋每個判定的每個條件應取到各種可能的值。

  4、判定/條件覆蓋同時滿足判定覆蓋條件覆蓋。

  5、條件組合覆蓋每個判定中各條件的每一種組合至少出現一次。

  6、路徑覆蓋使程式中每一條可能的路徑至少執行一次。

  白盒測試的要求

  1、保證一個模組中的所有獨立路徑至少被使用一次。

  2、對所有邏輯值均需測試 true 和 false。

  3、在上下邊界及可操作範圍內執行所有迴圈。

  4、檢查內部資料結構以確保其有效性。

  白盒測試的實施步驟

  1、測試計劃階段:根據需求說明書,制定測試進度。

  2、測試設計階段:依據程式設計說明書,按照一定規範化的方法進行軟體結構劃分和設計測試用例。

  3、測試執行階段:輸入測試用例,得到測試結果。

  4、測試總結階段:對比測試的結果和程式碼的預期結果,分析錯誤原因,找到並解決錯誤。

  白盒測試的優缺點

  優點

  1、迫使測試人員去仔細思考軟體的實現

  2、可以檢測程式碼中的每條分支和路徑

  3、揭示隱藏在程式碼中的錯誤

  4、對程式碼的測試比較徹底

  5、最優化

  缺點

  1、昂貴

  2、無法檢測程式碼中遺漏的路徑和資料敏感性錯誤

  3、不驗證規格的正確性

  白盒測試三步法

  1、根據程式碼的功能,人工設計測試用例進行基本功能測試;

  2、統計白盒覆蓋率,為未覆蓋的白盒單位設計測試用例,實現完整的白盒覆蓋,比較理想的覆蓋率是實現100%語句、條件、分支、路徑覆蓋;

  3、自動生成大量的測試用例,捕捉"程式設計師未處理某些特殊輸入"形成的錯誤。

  第1步的測試用例通常是現成的,因為詳細設計文件會規定程式的基本功能,沒有文件的,程式設計師在程式設計時也要想清楚程式的功能,這些基本功能就是基本測試用例;

  第2步是在第1步的基礎上,檢查未覆蓋的白盒單位,由於未覆蓋的邏輯單位通常對應未測試的等價類,因此第2步可以找出第1步所遺漏的測試用例;

  第3步用自動動態測試彌補第2步的固有缺陷。

  "三步法"儘量避免重複工作,白盒方法和黑盒方法相結合,人工方法和自動方法相補充,如果第2步的覆蓋率比較理想,那麼基本上可以保證找出所有等價類。在開發過程允許的限度內,"三步法"已接近極限,當得起"徹底測試"四個字。


白盒測試的優缺點