分支覆蓋測試

分支覆蓋技術用於覆蓋控制流圖的所有分支。它至少涵蓋決策點的每個條件的所有可能結果(真和假)。分支覆蓋技術是一種白盒測試技術,可確保每個決策點的每個分支都必須執行。

然而,分支覆蓋技術和決策覆蓋技術非常相似,但兩者之間存在關鍵差異。決策覆蓋技術涵蓋每個決策點的所有分支,而分支測試涵蓋代碼的每個決策點的所有分支。

換句話說,分支覆蓋遵循決策點和分支覆蓋邊緣。許多不同的指標可用於查找分支覆蓋範圍和決策覆蓋範圍,但一些最基本的指標是:在程式執行期間查找程式的百分比和執行路徑。

與決策覆蓋一樣,它也使用控制流圖來計算分支數。

分支覆蓋測試

如何計算分支覆蓋範圍?

有幾種方法可以計算分支覆蓋率,但尋路是最常用的方法。

在此方法中,執行分支的路徑數用於計算分支覆蓋範圍。分支覆蓋技術可用作決策覆蓋的替代方案。在某處,它沒有被定義為單獨的技術,但它不同於決策覆蓋,並且是測試控制流圖的所有分支所必需的。

讓我們用一個例子來理解它:

Read X
Read Y
IF X+Y > 100 THEN
Print "Large"
ENDIF
If X + Y<100 THEN
Print "Small"
ENDIF

這是採用兩個變數X和Y以及兩個條件的基本代碼結構。如果第一個條件為真,則列印“Large”,如果為假,則轉到下一個條件。如果第二個條件為真,則列印“Small”。

控制代碼結構的流程圖

在上圖中,描繪了代碼的控制流程圖。在第一種情況下,通過“Yes”決定,路徑為A1-B2-C4-D6-E8,覆蓋邊數為1,2,4,5,6和8,但邊緣3和7未覆蓋 在這條路徑上。為了覆蓋這些邊緣,必須遍曆“No”決定。在“No”判定的情況下,路徑是A1-B3-5-D7,並且覆蓋邊緣的數量是3和7。因此,通過穿過這兩條路徑,所有分支都覆蓋。

Path 1 - A1-B2-C4-D6-E8
Path 2 - A1-B3-5-D7
Branch Coverage (BC) = Number of paths
    =2
用例 覆蓋的分支 路徑 分支覆蓋
Yes 1, 2, 4, 5, 6, 8 A1-B2-C4-D6-E8 2
No 3,7 A1-B3-5-D7 2

上一篇: 控制流程測試 下一篇: 語句覆蓋測試