軟體開發與專案管理
a、b、c 的真偽可彼此獨立決定。對於處理「if (a) { S1; } if (b) { S2; } if (c) { S3; }」,要滿足分支涵蓋(所有判斷的真與偽至少各執行一次)所需的最少測試案例數為下列何者?
- A1
- B2
- C8
查看答案與解析
正確答案:B. 2
3個判斷都必須各走過真與偽兩邊。以(a、b、c 全為真)與(全為偽)這2個測試案例,每個判斷的真與偽各執行一次,因此最少為2個。只用1個(全為真)也能執行 S1~S3 的所有敘述,滿足敘述涵蓋,但偽側的分支(什麼都不做直接往下的路徑)沒有被執行。8是測試真偽組合 2³ = 8種全部的數量。
- A. 全為真的1次能滿足敘述涵蓋,但各判斷的偽側分支沒有被執行。
- B. 正確。以全為真與全為偽的2次,每個判斷的真與偽各走過一次。
- C. 這是測試真偽組合 2³ = 8種全部的數量,分支涵蓋不需要那麼多。