軟件測試 決策覆蓋測試

2020-07-17 15:30 更新

決策覆蓋技術(shù)屬于白盒測試,它為布爾值提供決策覆蓋。此技術(shù)報告布爾表達(dá)式的真/假結(jié)果。每當(dāng)語句中有兩個或多個結(jié)果的可能性時,如while語句,if語句和case語句(控制流語句),它被視為決策點(diǎn),因?yàn)橛袃蓚€結(jié)果為true或false。

決策覆蓋率通過使用控制流圖或圖表涵蓋代碼的每個布爾條件的所有可能結(jié)果。

通常,決策點(diǎn)有兩個決策值,一個是true,另一個是false,這就是為什么大多數(shù)時候結(jié)果總數(shù)是2的原因。決策覆蓋率的百分比可以通過將行使結(jié)果的數(shù)量除以結(jié)果總數(shù)并乘以100來計算出。

在這種技術(shù)中,很難獲得100%的覆蓋率,因?yàn)橛袝r表達(dá)式變得復(fù)雜。因此,有幾種不同的方法來報告決策覆蓋范圍。所有這些方法都涵蓋了最重要的組合,非常類似于決策覆蓋。這些方法的好處是增強(qiáng)了控制流的靈敏度。

我們可以找到?jīng)Q策覆蓋的數(shù)量如下。

下面通過一個例子來理解它??紤]應(yīng)用于決策覆蓋技術(shù)的代碼:

Test (int a)    
{   
    If(a>4)   
        a=a*3   
    Print (a)   
}

場景1:a的值是7(a = 7),那么 -

Test (int a=7)   
{ 
    if (a>4)   
        a=a*3   
    print (a)   
}

如果檢查條件(a> 4),則此代碼的結(jié)果為“True”。

當(dāng)a的值為7時控制流程圖如下 -

判定覆蓋測試

決策覆蓋率的計算:

判定覆蓋測試

Decision Coverage = ?*100  (Only "True" is exercised)  
                    =100/2  
                    = 50  
Decision Coverage is 50%

場景2:a的值是3(a = 3)

Test (int a=3)   
{ 
    if (a>4)   
        a=a*3   
    print (a)   
}

這段代碼的結(jié)果是:“False”,因?yàn)闄z查條件(a> 4)。

判定覆蓋測試

決策覆蓋率的計算:

= ?*100  (僅在 "False" 時執(zhí)行) 
=100/2   
= 50  
Decision Coverage = 50%

決策覆蓋范圍的結(jié)果表:

測試用例 A的值 輸出 決策覆蓋范圍
1 3 3 50%
2 7 21 50%





以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號