看新定的測試覆蓋率標準,有點暈。ide
一、語句覆蓋率達到100%
二、分支覆蓋率不低於70%
開始以爲,這兩個限制有點矛盾,語句覆蓋率都達到100%了,分支覆蓋率還沒達到100%?答案:是。舉個例子說明: 測試
if A and B then Action1
if C or D then Action2 設計
就拿這個來講,A=true B=true C=true,語句覆蓋率是100%,可分支覆蓋率是50%,並無走false的分支。從而引起一個理解,分支並不必定是實際的代碼,而是邏輯上的分支,而分支覆蓋率並非指的是對實際代碼句的覆蓋。it
溫習一下軟件工程裏測試邏輯覆蓋的分類:io
(1)語句覆蓋。
爲了個提升發現錯誤的可能性,在測試時應該執行到程序中的每個語句。語句覆蓋是指設計足夠的測試用例,使被測試程序中每一個語句至少執行一次。
(2)斷定覆蓋。
斷定覆蓋指設計足夠的測試用例,使得被測程序中每一個斷定表達式至少得到一次「真」值和「假」值,從而使程序的每個分支至少都經過一次,所以斷定覆蓋也稱分支覆蓋。
(3)條件覆蓋。
條件覆蓋是指設計足夠的測試用例,使得斷定表達式中每一個條件的各類可能的值至少出現一次。
(4)斷定/條件測試。
該覆蓋標準指設計足夠的測試用例,使得斷定表達式的每一個條件的全部可能取值至少出現一次,並使每一個斷定表達式全部可能的結果也至少出現一次。
(5)條件組合覆蓋。
條件組合覆蓋是比較強的覆蓋標準,它是指設計足夠的測試用例,使得每一個斷定表達式中條件的各類可能的值的組合都至少出現一次。
(6)路徑覆蓋。
路徑覆蓋是指設計足夠的測試用例,覆蓋被測程序中全部可能的路徑。
在實際的邏輯覆蓋測試中,通常以條件組合覆蓋爲主設計測試用例,而後再補充部分用例,以達到路徑覆蓋測試標準。class