SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

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

コード分析による品質向上のキモ - VSTDにおけるFxCopツール活用 -

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


  • このエントリーをはてなブックマークに追加

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に興味がある人

必要な環境と準備

使用の前に

 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)]というコードを追加し、プロジェクトを再ビルドすることで警告を解除できます。

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
規則を選択しよう

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
Visual Studio 2005 Team Edition for Software Developersを使ってみよう連載記事一覧

もっと読む

この記事の著者

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、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本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

WINGSプロジェクト りばてぃ/FUJIKO/ナオキ(リバティ, フジコ, ナオキ)

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

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/2136 2008/09/04 18:49

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング