決策覆蓋技術屬於白盒測試,它為布林值提供決策覆蓋。此技術報告布林表示式的真/假結果。每當語句中有兩個或多個結果的可能性時,如while語句,if語句和case語句(控制流語句),它被視為決策點,因為有兩個結果為true
或false
。
決策覆蓋率通過使用控制流圖或圖表涵蓋程式碼的每個布林條件的所有可能結果。
通常,決策點有兩個決策值,一個是true
,另一個是false
,這就是為什麼大多數時候結果總數是2的原因。決策覆蓋率的百分比可以通過將行使結果的數量除以結果總數並乘以100來計算出。
在這種技術中,很難獲得100%的覆蓋率,因為有時表示式變得複雜。因此,有幾種不同的方法來報告決策覆蓋範圍。所有這些方法都涵蓋了最重要的組合,非常類似於決策覆蓋。這些方法的好處是增強了控制流的靈敏度。
我們可以找到決策覆蓋的數量如下。
下面通過一個例子來理解它。考慮應用於決策覆蓋技術的程式碼:
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),則此程式碼的結果為「True」。
當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)
}
這段程式碼的結果是:「False」,因為檢查條件(a> 4)。
決策覆蓋率的計算:
= ?*100 (僅在 "False" 時執行)
=100/2
= 50
Decision Coverage = 50%
決策覆蓋範圍的結果表:
測試用例 | A的值 | 輸出 | 決策覆蓋範圍 |
---|---|---|---|
1 | 3 | 3 | 50% |
2 | 7 | 21 | 50% |