軟件測試 語句覆蓋測試

2020-07-17 15:23 更新

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

語句覆蓋技術(shù)用于設(shè)計白盒測試用例。該技術(shù)涉及至少執(zhí)行一次源代碼的所有語句。它用于計算源代碼中源代碼中執(zhí)行的語句總數(shù)。

語句覆蓋在白盒測試過程中得出測試用例的場景,該過程基于代碼的結(jié)構(gòu)。

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

通常,在內(nèi)部源代碼中,有各種各樣的元素,如運算符,方法,數(shù)組,循環(huán),控制語句,異常處理程序等。根據(jù)給程序的輸入,執(zhí)行一些代碼語句,有些可能不執(zhí)行 被執(zhí)行。語句覆蓋技術(shù)的目標是覆蓋代碼中所有可能的執(zhí)行語句和路徑行。

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

在這里,我們采用源代碼根據(jù)輸入值創(chuàng)建兩個不同的場景,以檢查每個場景的語句覆蓋百分比。

源代碼結(jié)構(gòu):

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

所以,這是程序的基本結(jié)構(gòu),這是它將要完成的任務(wù)。

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

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

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

在場景1中,可以看到sum的值是9,并且根據(jù)條件結(jié)果將是“這是正結(jié)果”。以黃色突出顯示的語句是此方案的已執(zhí)行語句。要計算第一個場景的語句覆蓋率,假設(shè)取語句總數(shù)為7和執(zhí)行語句數(shù)為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 ("這是正的結(jié)果")   
else   
    print ("這是負的結(jié)果")   
}

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

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

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

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

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

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

//原文出自【易百教程】,商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請保留原文鏈接:https://www.yiibai.com/software_testing/statement-coverage-testing-in-white-box-testing.html




以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號