語句覆蓋是廣泛使用的軟體測試之一。它來自白盒測試。
語句覆蓋技術用於設計白盒測試用例。該技術涉及至少執行一次原始碼的所有語句。它用於計算原始碼中原始碼中執行的語句總數。
語句覆蓋在白盒測試過程中得出測試用例的場景,該過程基於程式碼的結構。
在白盒測試中,測試人員的專注點是內部原始碼和流程圖或程式碼流程圖的工作。
通常,在內部原始碼中,有各種各樣的元素,如運算子,方法,陣列,迴圈,控制語句,例外處理程式等。根據給程式的輸入,執行一些程式碼語句,有些可能不執行 被執行。語句覆蓋技術的目標是覆蓋程式碼中所有可能的執行語句和路徑行。
下面通過一個例子來理解計算語句覆蓋率的過程:
在這裡,我們採用原始碼根據輸入值建立兩個不同的場景,以檢查每個場景的語句覆蓋百分比。
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%。
因此,語句覆蓋技術涵蓋了死程式碼,未使用的程式碼和分支。