2016-02-28 52 views
-1

我想知道是否有可能實現以下代碼的100%條件覆蓋率的一組測試輸入。測試 - 使用嵌套if實現條件覆蓋?

bool a = ...; 
bool b = ...; 
if (a == True){ 
    if (b == True && a == False){ 
     ... 
    } else{ 
     ... 
    } 
} else{ 
    ... 
} 

然而,大多數的資源,我發現只有一個條件處理。因此我不知道如何處理嵌套的ifs。具體而言,我不知道如何處理第二條if語句。由於給定外部if語句時「a == False」不應該是真的,所以說這段代碼永遠不會有100%的條件覆蓋測試用例是正確的嗎?

回答

1

不,這是不可能的:(b == True && a == False)將永遠是真實的,因爲它是一個塊

if (a == True) 

一個不能真假在同一時間內。要麼有一個錯誤,要麼你有死的代碼只能被刪除。然後,你可以有100%的覆蓋率。

+0

這是我看到的第一件事...... –

+0

從技術上講,不應該100%條件覆蓋率只需要測試輸入,其中a和b在某點是真實的和虛假的?或者如果在算法中每個都必須分別處理? – Pig