ユースケース:コードレビュー

コードレビューとは、ソフトウェアの開発工程のひとつで、ソースコード上の誤りを検出し修正することです。
ソフトウェアを構成する全てのソースコードをレビューするためには、多くの時間が必要となります。そのため、開発現場ではレビューを行う範囲を独自に絞り込むことで、より少ない時間でレビューを実施します。独自に絞り込んだ範囲を用いたレビューでは、レビューが属人化してしまうケースや、範囲自体に不備があり誤りが検出されないケースがありえます。

ここでは、Understandを用いたレビューすべきソースコードの特定やソフトウェアの定量的な評価の方法をご紹介します。

コードレビューの関連資料はこちら>>

課題

  • 重点的にレビューすべきソースコードを絞り込みたい
  • コードレビューの準備に時間がかかる
  • ソースコードを定量的に評価したい

原因

レビュー範囲が特定できない
例:レビューの範囲が開発者の経験や勘で決められており、属人化している。

変更後の差分が把握できない
例:ソースコードのみでは、変更点や客観的なレビュー箇所を判断しきれない。

解決策

Understandは、C/C++、Java、VB.NET、C#、Python、JavaScript、TypeScriptなどで開発されたプログラムを高速解析することができます。

Understandは、ビルド環境がなく、コンパイルできないソースコードであっても、ある程度の解析結果を得ることができます。
また、C/C++においては関数ポインターによる関数の呼び出しやポインター変数のアドレス操作の解析も行うことができます。
以下にUnderstandを使った、コードレビューの手順の一部をご紹介いたします。
複雑度や行数などのソースコードの定量的な値を用いてコードレビューの優先度を決定します。

  1. 比較プロジェクトを作成する
  2. コードレビューすべき変更点を確認する
  3. 変更点の変更差分を確認する

1.比較プロジェクトを作成する

Understandの機能

Understandでは、変更前のソースコードと変更後のソースコードを比較することが可能です。比較する方法として、変更前後のUnderstandプロジェクトファイルを手動で作成する方法や、Gitリビジョンを指定して比較プロジェクトを作成する方法があります。

2.コードレビューすべき変更点を確認する

Understandの機能

Understandでは、修正前と修正後のコードから作成した2つのUnderstandプロジェクトを比較し、追加/削除/変更されたエンティティの一覧、および、差分メトリクス(コード行数、Cyclomatic など)を表示します。

3.変更点の変更差分を確認する

Understandの機能

2つのUnderstandプロジェクトを比較し、追加/削除/変更された処理フローや関数の参照関係の差分を色分けして表示します。
加えて、比較元と比較先のコード差分を色分けして表示します。

処理フローの差分

関数の参照関係の差分

運用例

「解決策」の手順を自動化して、Gitのホスティングツールで確認する

Understandのコマンドライン機能を利用して、解決策の手順1~2」の操作を自動で実行し、Understand API機能を利用して「解決策の手順3」のグラフを自動で出力することが可能です。プルリクエストやマージリクエストのタイミングで変更された関数ごとの差分を、Git画面上に色分け表示した差分グラフで表示できます。

詳細は、弊社開発基盤ソリューションチームによる技術ブログ(Devplatform Blog)にて公開しております。 YAMLファイル(CIツールに指示するファイル)をサンプルスクリプトとしてご提供も可能です。

関数の色分け表示された制御フローグラフ付きのコメント

関連情報のご紹介

コードレビューのユースケースについて、操作動画や関連セミナーをまとめております。
是非お役立てください。

関連資料のご案内

過去に開催したソフトウェア品質向上セミナーの講演資料をご案内します。資料は、セミナーにご登壇いただいた企業様の品質向上に関する取り組みをご紹介しています。
資料をご希望の方は、申込フォームよりお申し込みください。

三菱スペース・ソフトウエア株式会社様

三菱スペース・ソフトウエア株式会社が実践する課題解決につながるツール選定・活用法のご紹介

ツール選定から導入後の効果や評価までを、ソフトウェアプロセス改善活動の視点からご紹介いたします。

ソースコード解析ツール Understandに
関するお問い合わせ

  • テクマトリックス株式会社
    東京本社

    ソフトウェアエンジニアリング事業部

    03-4405-7853

メールでのお問い合わせ
scitools-info@techmatrix.co.jp

お問い合わせ

製品についてやテクマトリックスについてなど、
こちらよりお気軽にお問い合わせいただけます。