McCabe概念:
McCabe度量法是一種基於程序控制流的複雜性度量方法。
McCabe複雜性度量又稱環路度量,其計算公式爲:V(g)=m-n+2
,其中m和n分別代表圖中的邊數
和頂點數
。
下面來分析幾道往年軟考例題
- (2016年上半年試題)對下圖所示流程圖採用白盒測試方法進行測試,若要滿足路徑覆蓋,則至少需要___個測試用例。採用McCabe度量法計算該程序對環路複雜性爲___。
路徑覆蓋是指設計若干個測試用例,覆蓋程序中的所有路徑。
上圖中一共有6條路徑:12345678,1234568,1235678,123568,12678,1268。
根據McCabe度量法環路複雜性公式V(g)=m-n+2,圖中m=10,n=8,V(g)=10-8+2=4。
那麼答案應是:6個用例,環路複雜度爲4。 - (2015年上半年試題)若採用白盒測試方法測試以下代碼,並滿足條件覆蓋,則至少需要___個測試用例。採用McCabe度量法算出該程序的環路複雜性爲___。
int find_max(int i, int j, int k){
int max;
if(i > j) {
if(i > k){
max = i;
} else {
max = k;
}
} else {
if(j > k) {
max = j;
} else {
max = k;
}
}
return max;
}
先畫出該代碼的流程圖,如下:
要滿足條件覆蓋,要求三個判斷框的Y和N至少要經過一次,即:1Y2Y,1Y2N,1N3Y,1N3N,至少需要4個測試用例。
根據McCabe度量法環路複雜性公式V(g)=m-n+2,圖中m=9,n=7, V(g)=9-7+2=4。
那麼答案應是:4個用例,環路複雜度爲4。