判定覆蓋測試



軟體測試大體上可以分為白盒測試和黑盒測試兩種技術。在白盒測試中,會驗證軟體的資料結構、演算法、邏輯、流程和程式碼。判定覆蓋測試是白盒測試下的一個概念。它是一種旨在確認程式中所有判定結果都正常工作的技術。它有助於確認所有判定條件都至少執行了一次。

什麼是軟體判定覆蓋測試?

軟體判定覆蓋測試是白盒測試的一部分。它由開發人員執行,以驗證程式中的所有判定結果。它只處理布林值,即每個布林表示式的真或假。在某些情況下,如果存在來自語句(如 do while、if 和 case)的兩個或多個結果的可能性,則將其稱為判定點,因為有兩個結果,即假或真。

軟體判定覆蓋測試透過藉助控制流圖或流程圖來觸及程式碼中每個布林條件的所有可能結果。由於判定主要包含兩個值,即真或假,因此在大多數情況下,結果的總數為兩個。

計算軟體判定覆蓋率的公式

軟體判定覆蓋率可以透過將執行的結果總數除以原始碼中判定結果的總數,然後乘以 100 來計算。

Decision Coverage = (Total count of decision results executed / 
   Total count of decision results in the source code) * 100

由於在某些情況下判定表示式並不簡單,因此很難達到 100% 的覆蓋率。因此,有多種方法可以計算判定覆蓋率。這些方法涵蓋了每種組合,並且具有與判定覆蓋率類似的特徵。

示例

讓我們以以下程式碼片段為例來確定判定覆蓋率的數量。

Input X and Y
   Z = X + Y
   IF Z > 100 
   THEN PRINT “IT IS COMPLETED”
   END IF
   IF X > 50
     THEN PRINT “IT IS NOT COMPLETED”
   END IF
END

現在讓我們使用 X = 60 和 Y = 60 的值,使用第一個測試用例來計算判定覆蓋率。

上面程式碼行的流程圖,其中 X = 60,Y = 60,如下所示:

Software Decision Coverage

在上圖中,共有 4 個判定結果,用綠色表示的 1、2、3 和 4。根據使用 X = 60 和 Y = 60 的值的第一個測試用例,我們將執行 2 個判定結果,用藍色表示的 5 和 6。因此,根據公式:

Decision Coverage = (Total count of decision results executed / 
   Total count of decision results in the source code) * 100

Decision Coverage = (2 / 4) * 100 = 50 %.

現在讓我們使用 X = 40 和 Y = 20 的值,使用第二個測試用例來計算判定覆蓋率。

上面程式碼行的流程圖,其中 X = 40,Y = 20,如下所示:

Software Decision Coverage

在上圖中,共有 4 個判定結果,用綠色表示的 1、2、3 和 4。根據使用 X = 40 和 Y = 20 的值的第一個測試用例,我們將執行 2 個判定結果,用藍色表示的 5 和 6。因此,根據公式:

Decision Coverage = (Total count of decision results executed / 
   Total count of decision results in the source code) * 100

Decision Coverage = (2 / 4) * 100 = 50 %.

因此,透過考慮這兩個測試用例,我們將有 4 個判定結果的總數,以及 4(2+2)個執行的判定結果的總數。因此,根據公式,總判定覆蓋率為:

Decision Coverage = (Total count of decision results executed / 
   Total count of decision results in the source code) * 100

Decision Coverage = (4 / 4) * 100 = 100 %.

透過建立兩個測試用例,X = 60 和 Y = 60,以及 X = 40 和 Y = 20,我們實現了 100% 的判定覆蓋率。

結論

這總結了我們關於軟體判定覆蓋測試教程的全面內容。我們從描述什麼是軟體判定覆蓋測試、計算軟體判定覆蓋率的公式以及獲得軟體判定覆蓋率的示例開始。這使您對軟體判定覆蓋測試有了深入的瞭解。明智的做法是不斷練習您所學到的知識,並探索與軟體測試相關的其他知識,以加深您的理解並擴充套件您的視野。

廣告