1. 程式人生 > >白盒測試---邏輯路徑覆蓋的五種方法和物理路徑覆蓋(一)

白盒測試---邏輯路徑覆蓋的五種方法和物理路徑覆蓋(一)

一、語句路徑覆蓋:是一個比較弱的邏輯路徑覆蓋標準。是指通過選擇足夠的測試用例,使得執行這些用例時,被測程式的每一個語句至少被執行一次。 舉例:
 測試用例  輸入 預期輸出  被測路徑
 TC1  x=4,y=2,z=0  x = 3  sacbed(紅色路線)
二、判定路徑覆蓋:稍強於語句路徑覆蓋。指通過設計足夠的測試用例,使得程式中的每一個判定至少都獲得一次“真值”和“假值”。或者說使得程式中的每一個分支都至少通過一次。  舉例:
 測試用例 輸入  預期輸出  測試路徑 
 TC2  x=1 y=3 z=0  x = 1/3  sacbd(紅色)
 TC3  x=3 y=2 z=1  x = 4  sabed(藍色)
 三、條件路徑覆蓋:對於每一個判定中所包含的若干個條件,應設計足夠多的測試用例,是的判定中的每一個條件都至少取到一次“真值”和“假值”的機會。就是說,每一個條件的判定結果都要至少出現一次。    判定路徑覆蓋與條件路徑覆蓋的區別:    1. 判定是指流程中的每一個夌形,條件是指夌形中的每一個條件。    2. 判定路徑關注的是每一個判定後的分支
都需要覆蓋,而條件路徑指的是使每一個條件成立或不成立的情況都需要覆蓋。    3. 比如(x>1)這個條件,有兩種情況可以使它成立或不成立,x=2時條件成立, x=0條件不成立;又比如(x>1 && y==0)這個條件,需要分別對其中的子條件x>1和y==0單獨進行條件成立不成立的情況分析。x=2,y=0使x>1成立,y==0成立;x=0,y=1是x>1不成立,y==0也不成立。 舉例:
 測試用例 輸入  預期輸出  測試路徑 
 TC4  x=0 y=2 z=0  x = 1  sacbed(紅色)
 TC5  x=2 y=1 z=1  x = 3  sabed(藍色)
進一步解說,這裡總共包含四個條件(y>1)、(z==0)、(y==2)、(x>1);設計用例的時候需要使它們都分別出現“真值”和“假值”至少各一次。TC4,TC5就覆蓋四個條件至少一次“真值”和“假值”的取值。 四、判定/條件路徑覆蓋:通過設計足夠多的測試用例,使得執行這些測試用例時,判定中的每一個條件的所有可能結果至少出現一次,並且每一個判定本身的所有可能結果也至少出現一次。也就是判定和條件路徑覆蓋的結合。 舉例:     
 測試用例 輸入  預期輸出  測試路徑 
 TC6  x=4 y=2 z=0  x = 3  sacbed(紅色)
 TC7  x=1 y=1 z=1  x = 1  sabd(藍色)