コード分析による品質向上のキモ - VSTDにおけるFxCopツール活用 -
Visual Studio 2005 Team Edition for Software Developersを使ってみよう (2)
ダウンロード サンプルファイル (42.7 KB)
Visual Studio 2005 Team Systemのエディションのうち、Visual Studio 2005 Team Edition for Software Developers(VSTD)に用意されているコード分析機能について操作方法や効果的な使い方を解説します。VSTSのコード分析にはマネージコードの分析を行うFxCopとアンマネージコードの分析を行うPREFestの2種類がありますが、今回はマネージコードの分析についてのみ解説を行います。これらの機能を実際に使用するイメージを得ることを目標にしています。
はじめに
Visual Studio 2005 Team System(以下、VSTS)には製品の品質を向上させる上で有効なテスト自動化の機能が付属しています。それらの機能の概要は『単体テストからパフォーマンス分析まで、VSTDでシステム開発を自動化しよう』で述べましたが、具体的な操作や実際に使用する上での注意点、さらにVSTSの連携機能を活かした使い方までは触れていませんでした。そこで今回はテスト自動化の機能のうち、Visual Studio 2005 Team Edition for Software Developersに用意されているマネージコードの分析機能について、操作方法と効果的な使い方を紹介します。
対象読者
- .NET Frameworkを利用した開発プロジェクトに携わっている人
- Visual Studio 2005 Team Systemに興味がある人
- コード分析およびFxCopに興味がある人
必要な環境と準備
- Visual Studio 2005 Team Edition for Software Developersがインストールされていること
使用の前に
VSTDのマネージコード分析機能を使う場合に、混乱しやすいキーワードがいくつかあるので先にそれを説明しておきます。本稿では、ここで説明した意図で言葉を使い分けますので、分かりにくくなった場合にはここに戻って内容を確認しながら読み進めてください。
| 名前 | 説明 |
| 規約 | コード分析で使用する1つ1つの決まりでIDを持っている。例えばIDがCA1804の規約の内容は「使用しないローカル変数を使用しない」である。 |
| 規則 | 規約をまとめるためのカテゴリ。グローバリゼーション規則やセキュリティ規則などの11種類がある。 |
| ルール | 適用する規約の集合。プロジェクトによって適用する規約は異なると考えられるため、ルールとしてまとめて管理するのが望ましい。 |

とりあえずコード分析を行ってみよう
VSTSのマネージコード分析はビルド時に実行され、ソースコードに規約違反がないかをチェックし、違反が見つかった場合はビルドエラー、もしくは警告を出します。マネージコード分析は、実際にはアセンブリに対して分析を行っているため、セキュリティといった実行時の問題に関しても分析を行うことができます。では、とりあえず使ってみましょう。
まず足し算や引き算のような簡単なクラスライブラリを作成してみましょう。
using System; using System.Collections.Generic; using System.Text; namespace CodeZineSampleFxCop { public class Calculater { public Calculater() { } public int Addition(int i, int j) { return i + j; } } }
ソースはこの程度のものでかまいません。引数や変数もiやjといった適当なものにしてしまいましょう。次に、ソリューションエクスプローラからプロジェクトファイルをダブルクリックし、プロパティ画面を開きます。図1のようにコード分析のタブを開き、「コード分析の有効化」にチェックを付けてください。規則はいろいろ選択することができますが、とりあえずすべて選択しておきましょう。右側に「警告」という表示が見えますが、この部分を選択して警告をエラーに設定しなおしましょう。
設定ができたところでビルドを行ってみましょう。図3のように多数のエラーがエラー一覧ウィンドウに表示されると思います。
エラー一覧ウィンドウにはエラー内容の説明、エラーが起こったファイル名やプロジェクト名、エラーが起こった行などが表示されます。ファイルや行数が特定されているエラーに関しては、個々のエラーおよび警告の修正を行う際にエラー一覧ウィンドウから修正対象を選択してダブルクリックするだけで修正箇所に移動することができます。ただし、他のエラーを修正するなどして、コード分析時とファイル内容に差異ができている場合には修正箇所付近(正確にはもともと修正されるべきエラーがあった行)に移動されます。具体的に修正例を1つ上げますと警告の5番目には、
CA1014:Microsoft.Design:CLSCompliantAttributeを伴って設定され、その値がtrueでなければなりません
と表示されています。この場合、「デザイン規則」の一つに違反している事を表しています。CA1014はアセンブリがCLS(Common Language Specification)に準拠していない場合に警告もしくはエラーが表示されます。解決方法ですが、「AssemblyInfo.cs」ファイルに[assembly: CLSCompliant(true)]というコードを追加し、プロジェクトを再ビルドすることで警告を解除できます。
この記事は参考になりましたか?
- Visual Studio 2005 Team Edition for Software Developersを使ってみよう連載記事一覧
-
- VSTDのパフォーマンスプロファイラで、アプリケーションのボトルネックを検出しよう
- コード分析による品質向上のキモ - VSTDにおけるFxCopツール活用 -
- システム品質向上のワザ -VSTDの単体テスト機能を極める-
- この記事の著者
-
山田 祥寛(ヤマダ ヨシヒロ)
静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
WINGSプロジェクト りばてぃ/FUJIKO/ナオキ(リバティ, フジコ, ナオキ)
<WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書、記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア


