白盒測試方法


白盒測試方法


一.前言

定義:   白盒測試又稱結構測試、透明盒測試、邏輯驅動測試或基於代碼的測試。白盒測試是一種測試用例設計方法,盒子指的是被測試的軟件,白盒指的是盒子是可視的,你清楚盒子內部的東西以及里面是如何運作的。"白盒"法全面了解程序內部邏輯結構、對所有邏輯路徑進行測試。"白盒"法是窮舉路徑測試。在使用這一方案時,測試者必須檢查程序的內部結構,從檢查程序的邏輯着手,得出測試數據。貫穿程序的獨立路徑數是天文數字。

白盒測試的目的:   通過檢查軟件內部的邏輯結構,對軟件中的邏輯路徑進行覆蓋測試;在程序不同地方設立檢查點,檢查程序的狀態,以確定實際運行狀態與預期狀態是否一致。

白盒測試的方法:

A. 靜態分析: 
  是一種不執行程序而進行測試的技術。靜態分析的主要目的是檢查軟件的表示和描述是否一致,沒有沖突或者沒有歧義。
B. 動態分析: 
  當軟件系統在模擬或真實的環境中執行前、過程中和執行后,對其行為分析。它顯示了一個系統在檢查狀態下是否正確。在動態分析技術中,最重要的技術是路徑和分支測試。下面要介紹的六種覆蓋測試方法屬於動態分析方法。

符號說明:

	^ 代表: 邏輯運算符 && 或者 ||
	T 代表: True
	F 代表: False
	A / B 代表: 條件表達式

二.測試方法

  1. 白盒測試的測試方法有代碼檢查法、靜態結構分析法、靜態質量度量法、邏輯覆蓋法、基本路徑測試法、域測試、符號測試、路徑覆蓋和程序變異。
  2. 日常使用方法\手段:
1.語句覆蓋:每條語句至少執行一次。
2.判定覆蓋:每個判定的每個分支至少執行一次。
3.條件覆蓋:每個判定的每個條件應取到各種可能的值。
4.判定/條件/分支覆蓋:同時滿足判定覆蓋條件覆蓋。
5.條件組合覆蓋:每個判定中各條件的每一種組合至少出現一次。
6.路徑覆蓋:使程序中每一條可能的路徑至少執行一次。

三.語句覆蓋

使程序中的每個可執行語句都能執行一次的測試用例

測試用例條件: ​ A ^ B = T

graph LR
A[引入]
    A --> B{判斷}
    B -->|T| C[結果1]
    B -->|F| D[結果2]

四.判定覆蓋

對於判斷語句,在設計用例的時候,要設計判斷語句結果為True和False的兩種情況 

測試用例條件: ​ A ^ B = T ​ A ^ B = F

graph LR
A[引入]
    A --> B{判斷}
    B -->|T| C[結果1]
    B -->|F| D[結果2]

五.條件覆蓋

設計用例時針對判斷語句里面每個條件表達式true 和 false各取值一次,不考判斷語句的計算結果

測試用例條件: ​ A=T​ A=F ​ B=T​ B=F

graph LR
A[ ]
    A --> B{判斷}
    B -->|T| C[ ]
    B -->|F| D[ ]

六.判定/條件/分支覆蓋

設計測試用例時,使得判斷語句中每個條件表達式的所有可能結果至少出現一次,每個判斷語句本身所有可能結果也至少出現一次。

測試用例條件: A ^ B = T A ^ B = F A=T A=F B=T B=F

graph LR
A[ ]
    A --> B{判斷}
    B -->|T| C[ ]
    B -->|F| D[ ]

七.條件組合覆蓋

設計測試用例時,使得每個判斷語句中條件結果的所有可能組合至少出現一次

測試用例條件: A= T B= T A= T B= F A= F B= T A= F B= F

graph LR
A[ ]
    A --> B{判斷}
    B -->|T| C[ ]
    B -->|F| D[ ]

八.路徑覆蓋

設計測試用例時,覆蓋程序中所有可能的執行路徑
優點:這種覆蓋方法可以對程序進行徹底的測試用例覆蓋,比前面講的五種方法覆蓋度都要高。
缺點:於路徑覆蓋需要對所有可能的路徑進行測試(包括循環、條件組合、分支選擇等),那么需要設計大量、復雜的測試用例,使得工作量呈指數級增長。路徑覆蓋雖然是一種比較強的覆蓋,但未必考慮判斷語句中條件表達式結果的組合,並不能代替條件覆蓋和條件組合覆蓋。
補充丟失邏輯圖:

 
       


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM