白盒測試---邏輯路徑覆蓋的五種方法和物理路徑覆蓋(一)
阿新 • • 發佈:2019-01-28
一、語句路徑覆蓋:是一個比較弱的邏輯路徑覆蓋標準。是指通過選擇足夠的測試用例,使得執行這些用例時,被測程式的每一個語句至少被執行一次。
舉例:
二、判定路徑覆蓋:稍強於語句路徑覆蓋。指通過設計足夠的測試用例,使得程式中的每一個判定至少都獲得一次“真值”和“假值”。或者說使得程式中的每一個分支都至少通過一次。
舉例:
三、條件路徑覆蓋:對於每一個判定中所包含的若干個條件,應設計足夠多的測試用例,是的判定中的每一個條件都至少取到一次“真值”和“假值”的機會。就是說,每一個條件的判定結果都要至少出現一次。
判定路徑覆蓋與條件路徑覆蓋的區別:
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也不成立。
舉例:
進一步解說,這裡總共包含四個條件(y>1)、(z==0)、(y==2)、(x>1);設計用例的時候需要使它們都分別出現“真值”和“假值”至少各一次。TC4,TC5就覆蓋四個條件至少一次“真值”和“假值”的取值。
四、判定/條件路徑覆蓋:通過設計足夠多的測試用例,使得執行這些測試用例時,判定中的每一個條件的所有可能結果至少出現一次,並且每一個判定本身的所有可能結果也至少出現一次。也就是判定和條件路徑覆蓋的結合。
舉例:
測試用例 | 輸入 | 預期輸出 | 被測路徑 |
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(藍色) |
測試用例 | 輸入 | 預期輸出 | 測試路徑 |
TC4 | x=0 y=2 z=0 | x = 1 | sacbed(紅色) |
TC5 | x=2 y=1 z=1 | x = 3 | sabed(藍色) |
測試用例 | 輸入 | 預期輸出 | 測試路徑 |
TC6 | x=4 y=2 z=0 | x = 3 | sacbed(紅色) |
TC7 | x=1 y=1 z=1 | x = 1 | sabd(藍色) |