メトリクスの計測方法 | CountPath パス (経路) 数

Understand で取得可能なメトリクス CountPath は、有効/到達可能なコードに基づく、実行可能パス数を計測し、メソッドの経路の複雑さを表す指標です。
ただし、exit や goto 文で終了するケースは計測の対象外となり、カウントされません。

IF ステートメントがある場合、2 の n 乗で計測されます。
下記の例では、IF ステートメントが 3 つあるため、2 の 3 乗 = 8 経路となり、 CountPath は 8 となります。

void pathDemo() {
  if(a)
    dothis();
  if(b)
    dothis();
  if(c)
    dothis();
}

このパス経路を、Control Flow グラフでを示した場合、下図のようになります。

パス経路は、下記の 8 パターンが想定されます。

  1. ACE
  2. ACF
  3. ADE
  4. ADF
  5. BCE
  6. BCF
  7. BDE
  8. BDF

CountPath は、コード行数 (CountLineCode) がそれほど大きくない場合にも、非常に大きくなる場合があるため、Understand では、その上限値を「999,999,999」としています。
値が大きい場合には、条件制御構造の見直しや、メソッドの抽出についてご検討ください。

また、カバレッジに対応させた場合、CountPath メトリクスは、C1:分岐網羅 (ブランチカバレッジ) の分岐数に相当すると考えられるため、単体試験項目のテストケース数の目安としても、ご利用いただけると思います。

タイトルとURLをコピーしました
Close Bitnami banner
Bitnami