C++testの静的解析の1つにメトリクス測定機能があります。ここでは、メトリクスの1つであるCyclomatic複雑度を各関数(メソッド)に対し測定してみましょう。
解析実行手順
[ソリューション エクスプローラー]上のプロジェクトを選択した状態で、[緑の三角アイコン横の▼]>[テストの実行]>[ユーザー定義]>[StaticAnalysis]>[4 4_Cyclomatic(チュートリアル)]を選択します。緑の進捗バーが表示され、左から右に到達すると解析が完了になります。
[品質タスク]ビューに解析結果が表示され、各関数(メソッド)のCyclomatic複雑度の数値を確認できます。
メトリクス計測機能 運用ワンポイント アドバイス
メトリクスの計測結果は、バグではありません。しかし、バグが多く含まれるソースコードの1つの傾向として、メトリクスの数値がある一定以上高い値を持つコードと言われています。そのため、コーディング工程の中でメトリクスを測定し、モニタリングすることでリスクヘッジすることができます。
また、Cyclomatic複雑度が50を超えると、単体テストが非常に困難になり開発現場で運用する事が出来なくなるケースが多々あります。そのため、新規開発コードでは、テスト開始前にCyclomatic複雑度を測定し、測定値が50を超えるようならリファクタリングを実施した方が、その後のテスト/デバッグ作業をスムーズに行うことができます。