Visual Studio 2005 Team Edition for Software Developersを使ってみよう (2)

サンプルファイル 43.76 KB

Visual Studio 2005 Team Systemのエディションのうち、Visual Studio 2005 Team Edition for Software Developers(VSTD)に用意されているコード分析機能について操作方法や効果的な使い方を解説します。VSTSのコード分析にはマネージコードの分析を行うFxCopとアンマネージコードの分析を行うPREFestの2種類がありますが、今回はマネージコードの分析についてのみ解説を行います。これらの機能を実際に使用するイメージを得ることを目標にしています。

1 2 3 →

はじめに

 Visual Studio 2005 Team System(以下、VSTS)には製品の品質を向上させる上で有効なテスト自動化の機能が付属しています。それらの機能の概要は『単体テストからパフォーマンス分析まで、VSTDでシステム開発を自動化しよう』で述べましたが、具体的な操作や実際に使用する上での注意点、さらにVSTSの連携機能を活かした使い方までは触れていませんでした。そこで今回はテスト自動化の機能のうち、Visual Studio 2005 Team Edition for Software Developersに用意されているマネージコードの分析機能について、操作方法と効果的な使い方を紹介します。

対象読者

  • .NET Frameworkを利用した開発プロジェクトに携わっている人
  • Visual Studio 2005 Team Systemに興味がある人
  • コード分析およびFxCopに興味がある人

必要な環境と準備

使用の前に

 VSTDのマネージコード分析機能を使う場合に、混乱しやすいキーワードがいくつかあるので先にそれを説明しておきます。本稿では、ここで説明した意図で言葉を使い分けますので、分かりにくくなった場合にはここに戻って内容を確認しながら読み進めてください。

表1 混乱しやすいキーワード
名前説明
規約コード分析で使用する1つ1つの決まりでIDを持っている。例えばIDがCA1804の規約の内容は「使用しないローカル変数を使用しない」である。
規則規約をまとめるためのカテゴリ。グローバリゼーション規則やセキュリティ規則などの11種類がある。
ルール適用する規約の集合。プロジェクトによって適用する規約は異なると考えられるため、ルールとしてまとめて管理するのが望ましい。
図1 規約・規則・ルールの関係
図1 規約・規則・ルールの関係

とりあえずコード分析を行ってみよう

 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;
        }
    }
}

 ソースはこの程度のものでかまいません。引数や変数もijといった適当なものにしてしまいましょう。次に、ソリューションエクスプローラからプロジェクトファイルをダブルクリックし、プロパティ画面を開きます。図1のようにコード分析のタブを開き、「コード分析の有効化」にチェックを付けてください。規則はいろいろ選択することができますが、とりあえずすべて選択しておきましょう。右側に「警告」という表示が見えますが、この部分を選択して警告をエラーに設定しなおしましょう。

図2 コード分析設定画面
図2 コード分析設定画面

 設定ができたところでビルドを行ってみましょう。図3のように多数のエラーがエラー一覧ウィンドウに表示されると思います。

図3 コード結果表示画面
図3 コード結果表示画面

 エラー一覧ウィンドウにはエラー内容の説明、エラーが起こったファイル名やプロジェクト名、エラーが起こった行などが表示されます。ファイルや行数が特定されているエラーに関しては、個々のエラーおよび警告の修正を行う際にエラー一覧ウィンドウから修正対象を選択してダブルクリックするだけで修正箇所に移動することができます。ただし、他のエラーを修正するなどして、コード分析時とファイル内容に差異ができている場合には修正箇所付近(正確にはもともと修正されるべきエラーがあった行)に移動されます。具体的に修正例を1つ上げますと警告の5番目には、

CA1014:Microsoft.Design:CLSCompliantAttributeを伴って設定され、その値がtrueでなければなりません

 と表示されています。この場合、「デザイン規則」の一つに違反している事を表しています。CA1014はアセンブリがCLS(Common Language Specification)に準拠していない場合に警告もしくはエラーが表示されます。解決方法ですが、「AssemblyInfo.cs」ファイルに[assembly: CLSCompliant(true)]というコードを追加し、プロジェクトを再ビルドすることで警告を解除できます。


1 2 3
→
INDEX
コード分析による品質向上のキモ - VSTDにおけるFxCopツール活用 -
Page1
はじめに
対象読者
必要な環境と準備
使用の前に
とりあえずコード分析を行ってみよう
規則を選択しよう
ルールをソリューション全体に適用しよう
SuppressMessageを使って除外の設定をしよう
まとめ
参考資料
プロフィール
WINGSプロジェクト りばてぃ/FUJIKO/ナオキ リバティ, フジコ, ナオキ

WINGSプロジェクトについて>
有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2011年7月時点での登録メンバは36名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。


プロフィール
山田 祥寛 ヤマダ ヨシヒロ

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for ASP/ASP.NET。執筆コミュニティ「WINGSプロジェクト」代表。
主な著書に「入門シリーズ(サーバサイドAjax/XMLDB/PEAR/Smarty)」「独習シリーズ(ASP.NET/PHP)」「10日でおぼえる入門教室シリーズ(ASP.NET/PHP/Jakarta/JSP&サーブレット/XML)」「Pocket詳解辞典シリーズ(ASP.NET/PHP/Perl&CGI)」「今日からつかえるシリーズ(PHP/JSP&サーブレット/XML/ASP)」「書き込み式 SQLのドリル」他、著書多数


記事へのコメント・トラックバック機能は2011年6月に廃止させていただきました。記事に対する反響はTwitterやFacebook、ソーシャルブックマークサービスのコメントなどでぜひお寄せください。

スポンサーサイト