轉:軟件測試中條件覆蓋,路徑覆蓋,語句覆蓋,分支覆蓋的區別
舉個例子吧 ?
? if ? A ? and ? B ? then ? Action1 ?
? if ? C ? or ? D ? then ? Action2 ?
? ?
? 語句覆蓋最弱,只需要讓程序中的語句都執行一遍即可 ? 。上例中只需設計測試用例使得A=true ? B=true ? C=true ? 即可。 ?
? ?
? 分支覆蓋又稱判定覆蓋:使得程序中每個判斷的取真分支和取假分支至少經歷一次,即判斷的真假均曾被滿足。上例需要設計測試用例使其分別滿足下列條件即可 (1)A=true,B=true,C=true,D=false(2)A=true,B=false,C=false,D=false。 ?
? ?
? 條件覆蓋:要使得每個判斷中的每個條件的可能取值至少滿足一次。上例中第一個判斷應考慮到A=true,A=false,B=true,B=false第 二個判斷應考慮到C=true,C=false,D=true,D=false,所以上例中可以設計測試用例滿足下列條件 (1)A=true,B=true,C=true,D=true(2)A=false,B=false,C=false,D=false。 ?
? ?
? 路徑覆蓋:要求覆蓋程序中所有可能的路徑。所以可以設計測試用例滿足下列條件 (1)A=true,B=true,C=true,D=true(2)A=false,B=false,C=false,D=false(3)A=true,B=true,C=false,D=false(4)A=false,B=false,C=true,D=true。 ?
? ?
? 不論那種覆蓋方法,都不能保證程序的正確性。