語句覆蓋測試

語句覆蓋是廣泛使用的軟體測試之一。它來自白盒測試。

語句覆蓋技術用於設計白盒測試用例。該技術涉及至少執行一次源代碼的所有語句。它用於計算源代碼中源代碼中執行的語句總數。

語句覆蓋在白盒測試過程中得出測試用例的場景,該過程基於代碼的結構。

在白盒測試中,測試人員的專注點是內部源代碼和流程圖或代碼流程圖的工作。

通常,在內部源代碼中,有各種各樣的元素,如運算符,方法,數組,迴圈,控制語句,異常處理程式等。根據給程式的輸入,執行一些代碼語句,有些可能不執行 被執行。語句覆蓋技術的目標是覆蓋代碼中所有可能的執行語句和路徑行。

下麵通過一個例子來理解計算語句覆蓋率的過程:

在這裏,我們採用源代碼根據輸入值創建兩個不同的場景,以檢查每個場景的語句覆蓋百分比。

源代碼結構:

  • 輸入兩個值,如a = 0和b = 1。
  • 計算出這兩個值的總和。
  • 如果總和大於0,則列印“這是正結果”。
  • 如果總和小於0,則列印“這是負結果”。
input (int a, int b)
{
    Function to print sum of these integer values (sum = a+b)
    If (sum>0)
    {
        Print ("這是正結果")
    } else
    {
        Print ("這是負結果")
    }
}

所以,這是程式的基本結構,這是它將要完成的任務。

現在,讓我們看一下兩種不同的場景,並計算給定源代碼的語句覆蓋的百分比。

場景1:
如果a = 5,則b = 4

print (int a, int b) {
    int sum = a+b;
    if (sum>0) {
        Print ("這是正結果")
    } else
    {
        Print ("這是負結果")
    }
}

場景1中,可以看到sum的值是9,並且根據條件結果將是“這是正結果”。以黃色突出顯示的語句是此方案的已執行語句。
要計算第一個場景的語句覆蓋率,假設取語句總數為7和執行語句數為5。

Total number of statements = 7
Number of executed statements = 5

Statement coverage = 5/7*100
= 500/7
= 71%

類似地,在場景2中,

如果:A = -2, B = -7

print (int a, int b) {
int sum = a+b;
if (sum>0)
    print ("這是正的結果")
else
    print ("這是負的結果")
}

在場景2中,可以看到sum的值將是-9(小於0),並且根據條件,結果將是“這是負的結果”。以黃色突出顯示的語句是此方案的已執行語句。

要計算第一個場景的語句覆蓋率,請使用語句總數為7的和已使用語句數為6。

Total number of statements = 7
Number of executed statements = 6

Statement coverage = 6/7*100 <br>
= 600/7
= 85%

但是,可以看到兩種情況都涵蓋了所有語句,我們可以認為整體語句覆蓋率是100%。

因此,語句覆蓋技術涵蓋了死代碼,未使用的代碼和分支。


上一篇: 分支覆蓋測試 下一篇: 決策覆蓋測試