白盒測試方法 實戰

2021-10-05 22:54:03 字數 3483 閱讀 4574

定義

白盒測試又稱結構測試,透明盒測試、邏輯驅動測試或基於**的測試。白盒測試是一種測試用例設計方法,白盒指的是程式的內部結構和運作機制是可見的。

目的

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

白盒測試的方法:大致分為靜態方法和動態方法兩大類。

a. 靜態分析:

是一種不執行程式而進行測試的技術。靜態分析的主要目的是檢查軟體的表示和描述是否一致,沒有衝突或者沒有歧義。

b. 動態分析:

當軟體系統在模擬或真實的環境中執行前、過程中和執行後,對其行為分析。它顯示了乙個系統在檢查狀態下是否正確。在動態分析技術中,最重要的技術是路徑和分支測試。邏輯覆蓋法的六種覆蓋測試方法屬於動態分析方法。

1.邏輯覆蓋法

2.迴圈覆蓋法

3.基本路徑法

邏輯覆蓋法的六種方法:

符號說明:

^ 代表邏輯運算子 && 或者 ||

t 代表 true f 代表 false

a / b 代表條件表示式

(1)語句覆蓋

每條語句至少執行一次,重點在語句。

測試用例條件: a ^ b = t

(2)判定覆蓋(分支覆蓋)

每個分支都要執行一次,重點在分支。在設計用例的時候,要設計判斷語句結果為true和false的兩種情況

測試用例條件:

a ^ b = t

a ^ b = f

(3)條件覆蓋

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

測試用例條件:

a=t     a=f

b=t     b=f

(4)判定條件覆蓋(分支條件覆蓋)

設計測試用例時,使得判斷語句中每個條件表示式的所有可能結果至少出現一次,每個判斷語句本身所有可能結果也至少出現一次,即判定+條件覆蓋-重複用例。

測試用例條件:

a ^ b = t    a ^ b = f

a=t     a=f

b=t     b=f

(5)條件組合覆蓋

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

測試用例條件:

a= t    b= t

a= t    b= f

a= f    b= t

a= f    b= f

(6)路徑覆蓋

設計測試用例時,覆蓋程式中所有可能的執行路徑

優點:這種覆蓋方法可以對程式進行徹底的測試用例覆蓋,比前面講的五種方法覆蓋度都要高。

缺點:由於路徑覆蓋需要對所有可能的路徑進行測試(包括迴圈、條件組合、分支選擇等),那麼需要設計大量、複雜的測試用例,使得工作量呈指數級增長。路徑覆蓋雖然是一種比較強的覆蓋,但未必考慮判斷語句中條件表示式結果的組合,並不能代替條件覆蓋和條件組合覆蓋。

舉例:

def do(a,b,x):

if(a>1) and (b==0):

x=x/a

if(a==2) or (x>1):

x=x+2

return x

【圖1.1】

分支a:if(a>1) and (b==0):

b:if(a==2) or (x>1):

條件表示式:

m:a>1

n:b==0

x:a==2

y:x>1

(1)語句覆蓋【圖 1.1】適用

a)主要特點:使程式中的每個可執行語句至少被執行一次。

b) 用例設計xy

路徑15050

acef290

70acdf

【圖1.2】

(2)判定覆蓋【圖 1.2】適用

a)主要特點: 對於判斷語句,在設計用例的時候,要設計判斷語句結果為true和false的兩種情況。

b) 用例設計xy

路徑19090

abf2

5050

acef390

70acdf

(3)條件覆蓋【圖 1.2】適用

a) 主要特點:設計用例時針對判斷語句裡面每個條件表示式true 和 false各取值一次,不考判斷語句的計算結果。

b) 用例設計xy

路徑19070

acd2

4085

ace(4)判定條件覆蓋【圖 1.2】適用xy

路徑19090

abf2

5050

acef390

70acdf470

90acdf

(5)條件組合覆蓋** 【圖 1.2】適用xy

路徑19090

abf2

9070

acdf390

30acef470

90acdf530

90acef670

70acef750

50acef

(6)基本路徑法【圖 1.2】適用

a)主要特點: 設計測試用例時,覆蓋程式中所有可能的執行路徑

b) 用例設計xy

路徑19090

abf2

5050

acef390

70acdf470

90acdf

已知三角形三遍abc,現在有個程式能判斷三角形類別(如:等腰三角形),請為這個程式設計測試用例。

分析:構成三角形的條件:兩邊之和大於第三邊

構成等腰三角形的條件:任意兩邊相等

構成等腰直角三角形的條件:任意兩邊相等且兩邊的平方和等於第三邊的平方和

構成等邊三角形的條件:三條邊都相等

用到設計測試用例的方法:等價類、邊界值、因果圖

等價類:

有效等價類

輸入三個正整數或正小數

無效等價類

a. 空

b. 非數字

c. 小於三個數

d. 大於三個數

f. 負整數

測試用例如下:

輸入條件

有效等價類

無效等價類

是否是三角形

a>0

python 白盒測試 白盒測試方法

白盒測試是單元測試階段常用到的測試方法,其特點有 1 可以構成測試資料,使特定程式部分得到測試 2 有一定的充分性度量手段 3 可獲得較多工具支援 4 通常只用於單元測試。下邊通過一段 來看一下白盒測試中的邏輯覆蓋 那麼為了清晰,我們畫出乙個該程式的流程圖 1 語句覆蓋 語句覆蓋是最弱的邏輯覆蓋準則...

白盒測試實戰 NITIAN Word

最近,我在編寫一款自娛自樂的單詞對比記憶的軟體nitian word,這裡選取它的一部分邏輯,利用白盒方法進行測試,算是理論聯絡實際吧。主要邏輯 string wordsarray new string global.input words ceiling ntdictionary dict new...

白盒測試實戰 NITIAN Word

最近,我在編寫一款自娛自樂的單詞對比記憶的軟體nitian word,這裡選取它的一部分邏輯,利用白盒方法進行測試,算是理論聯絡實際吧。主要邏輯 string wordsarray new string global.input words ceiling ntdictionary dict new...