軟體開發與專案管理
temp 與 err 的值可彼此獨立決定。對於處理「if (temp > 80) { fan = HIGH; } else { fan = LOW; } if (err) { log(); }」,要滿足敘述涵蓋(所有敘述至少執行一次)所需的最少測試案例數為下列何者?
- A2
- B3
- C4
查看答案與解析
正確答案:A. 2
敘述有 fan = HIGH、fan = LOW、log() 這3個。fan = HIGH 與 fan = LOW 在一次執行中只會走到其中之一,因此至少需要2次;例如以(temp > 80、err 為真)與(temp ≤ 80、err 為偽)這2個測試案例,就能執行全部3個敘述。3是建立與敘述數量相同的測試案例的情況,4則是測試2個條件真偽所有組合(路徑)的數量。敘述涵蓋是最弱的涵蓋基準,例如即使沒有走過第二個 if 的偽側(什麼都不做的路徑)也能滿足。
- A. 正確。要走過 if 與 else 兩邊需要2次,log() 可在其中任一次一起執行。
- B. 這是依敘述數量建立測試案例的情況。一個測試案例可以執行多個敘述,所以可以更少。
- C. 這是測試所有真偽組合(路徑)的數量,敘述涵蓋不需要那麼多。