白盒測試又稱為結構測試、透明盒測試、邏輯驅動測試或基於代碼的測試。就是在知道軟件代碼,和內部邏輯結構后進行的一項測試。主要目的是檢查內部結構,邏輯。方法是檢查每一條路徑。與黑盒測試相比,黑盒測試更偏向用戶,白盒測試更偏向於開發者。黑盒測試只需要輸入和結果。而白盒測試更需要測試,軟件內部是如何運行的。
今天我想說一說,白盒測試中的幾種邏輯覆蓋
白盒測試,為了保證測試的完整性,就要測試軟件內部的每一條路徑。邏輯覆蓋方法能幫助我們設計測試用例,以減少不必要的消耗:
邏輯覆蓋包括語句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋、條件組合覆蓋和路徑覆蓋。六種覆蓋標准發現錯誤的能力呈由弱到強的變化:
1.語句覆蓋每條語句至少執行一次。
2.判定覆蓋每個判定的每個分支至少執行一次。
3.條件覆蓋每個判定的每個條件應取到各種可能的值。
4.判定/條件覆蓋同時滿足判定覆蓋條件覆蓋。
5.條件組合覆蓋每個判定中各條件的每一種組合至少出現一次。
6.路徑覆蓋使程序中每一條可能的路徑至少執行一次。
以下我舉個例子

對於一個這樣邏輯的程序它的代碼大致如下
... if(y>1&&z=0) x=x/y; if(y=2||x>1) x=x+1; ...
1.語句覆蓋每條語句至少執行一次。
我們只需是每條語句執行一次即可 x=4,y=2,z=0
2.判定覆蓋每個判定的每個分支至少執行一次。
我們只需是每個分支執行一次即可
假設第一個用例在兩個判斷都為真,第二個用例都為假
x=4,y=2,z=0;x=1,y=1z=1
3.條件覆蓋每個判定的每個條件應取到各種可能的值。
只需讓每個調劑出現一次,條件為y>1,z=0,y=2,x>1
用例一讓所有條件為真x=4,y=2,z=0;用例二是所有條件為假x=1,y=1z=1
4.判定/條件覆蓋同時滿足判定覆蓋條件覆蓋。
x=4,y=2,z=0;x=1,y=1z=1
5.條件組合覆蓋每個判定中各條件的每一種組合至少出現一次。
可能組合為 真真,真假,假真,假假
用例一x=4,y=2,z=0;用例二x=1,y=2,z=1;三(2,1,0);四(1,1,1)
6.路徑覆蓋使程序中每一條可能的路徑至少執行一次。
即兩個判斷組合為真真,真假,假真,假假
一(4,2,0)二(1,1,0)三(4,2,1)四(1,1,1)
以上