SHOEISHA iD

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

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

Visual Studio 2008徹底入門

チーム開発はこれで決まり! Visual Studio Team System 2008

Visual Studio 2008徹底入門(10)


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

開発者向け機能

 では、具体的な機能を見ていきます。従来、開発者向けとしてはVisual Studio 2005 Team Edition for Software Developers(以下、VSTD)という製品が提供されていました。VSTS2008では同じ位置づけの製品として(名前から推測するに、開発者向けというより開発フェーズ向けと言った方がいいかもしれませんが)Visual Studio Team System 2008 Development Edition(以下、VSTS-DE)が提供されています。VSTS-DEに用意されている主要機能は以下の3つです。

  • 単体テスト
  • 静的コード分析
  • 動的コード分析

 この主要3機能というくくりはVSTDのときと変わりありません。これらのそれぞれに機能の強化や新機能の追加を行ったものがVSTS-DEになります。このため、VSTDのときに覚えたことやノウハウが無駄になることはありません。本稿では、変更・追加された点に焦点を絞りますので既存の機能については以下の記事をご覧ください。

単体テスト機能

 単体テスト機能は、Visual Studio 2008からはProfessional Editionでも利用可能になり、より利用者のすそ野が広がっています。このことも大きな変更点ではありますが、ここでは、単体テスト機能そのものの強化ポイントを確認します。ざっと列挙すると次のようなポイントがあります。

  • より効率的なテストの実行
  • ソースコードなしでのテストコードの生成
  • テストクラスの継承
  • データバインディングの簡易化

 例えば、VSTDでは、パブリック以外のメソッド・プロパティなどのテストコードを生成すると、テストプロジェクト内に「VSCodeGenAccessors.cs」(Visual Basicでは「VSCodeGenAccessors.vb」)というファイルが作成されていました(プライベートアクセッサと呼ばれます)。中身には、リフレクションを利用してプライベートコードを呼び出すためのコードが生成されていましたが、VSTS2008ではこの代わりにクラスごとに「.accessor」というファイルが生成されます。

図3:プライベートアクセッサファイル
図3:プライベートアクセッサファイル

 この変更により、プライベートアクセッサの中身を自分で編集できなくなった不便さはありますが、パフォーマンスの改善が図られているようです。

 また、単体テストは通常、これから自分が作成するソースコードがある前提で作成するものですが、既存のソースコードがないアセンブリからでも単体テストが作成できるようになっています。単体テストの作成時に(次の図4に示す画面)、アセンブリの追加を選択して単体テストを作成したいアセンブリを選択すると、ソースコードから構築されるのと同じツリー構造を表示させることができます。なお、ソースから構築されるツリーのルートにはプロジェクトのアイコンが表示され、これによって見た目の区別が行われています。

図4:アセンブリからの単体テストコード生成
図4:アセンブリからの単体テストコード生成

 データバインディングに関しては、VSTDのときから利用できましたが、今回からはウィザード形式でデータソース(データベースやCSVファイルなど)を選択して設定できるようになり、より簡単にデータドリブンテストが実施できるようになっています。設定は、テストビューウィンドウなどでテストケースを選択した際に表示されるプロパティウィンドウで行うことができます。

図5:単体テストのプロパティウィンドウの内容
図5:単体テストのプロパティウィンドウの内容

静的コード分析機能

 VSTDでは静的コード分析はマネージコード部分に限ればFxCopという解析ツールが用意されているだけでした。VSTS-DEでは、FxCopのルールの強化に加え、コードメトリクス分析機能が追加されています。

 FxCopでは、規則(検証内容の集合)のセットに変更はありませんが、規則に含まれる規約(実際に検証を行うための定義情報)は、WPFなど最新のテクノロジーへの対応や、より細かい設定ができるようになどの変更が行われ、200種類以上の追加が行われています。一般的に「規則が大幅に追加されました」という場合には、「それぞれの規則に含まれる規約が大幅に追加されました」というのが正しい表現になりますので注意してください。

 また、次の図6に示すコード分析の設定画面に、「生成されたコードから結果を表示しない」というチェックボックスが追加されているのも新しい点です。このオプションにより、Visual Studioが生成したソースコードを分析対象から外すことができるようになったため、従来よりもより重要な警告を発見しやすくなっています。

図6:コード分析の設定画面
図6:コード分析の設定画面

 コードメトリクスは、ソースコードをクラス単位、メソッド単位で解析し、その構造の内容を数値で示すための機能です。VSTS-DEのコードメトリクス機能では以下の5つの指標を得ることができます。

  • コード行
  • クラス結合
  • 継承の深さ
  • サイクロマティック複雑度
  • 保守容易性インデックス

 少し補足をすると、サイクロマティック複雑度とは、メソッド内の実行経路数を示すための尺度で、条件分岐の数と複雑度を元に計算される数値です。VSTS-DE以外の品質検査系ツールにおいてもコードメトリクス機能がある場合には上記の上4つの情報を得る機能は大抵揃えているのではないかと思います。保守容易性インデックスはMicrosoftが自社内の調査において独自に設定したもので、さまざまな情報から決定される数値となっています。その他のデータは数値が低いほど成績が良いのに対し、保守容易性インデックスは数値が高いほど成績が良いという判断になりますので注意してください。次の図7はコードメトリクス分析を行い、上記5つのデータが表示されている画面です。

図7:コードメトリクス分析
図7:コードメトリクス分析

動的コード分析機能

 動的コード分析機能はVSTDまでと同様にパフォーマンスプロファイラ機能が用意されています。大きな括りとしての変化はありませんが、パフォーマンスプロファイラは以下にあげるような機能強化が図られています。

  • 64ビットサポート
  • ホットパス分析
  • WCFプロファイリングサポート
  • レポート解析、分析効率の改善
  • パフォーマンスカウンタサポートの強化

 従来は、パフォーマンスプロファイリングは32ビットOS上で実行される32ビットアプリケーションのみをサポートしていましたが、VSTS-DEからは64ビットOS上で実行される32/64ビットアプリケーションをサポートするようになりました。ホットパス分析のホットパスとは、パフォーマンスの影響が最も大きい処理順(トレース)を示すもので、これによりボトルネックなどパフォーマンスの影響となっている部分をより視覚的に確認することができます。また、分析対象としてWCFを利用しているアプリケーションも対象とすることができるようになっています。分析を行う際には、Windowsのパフォーマンスカウンタの収集などを指定して、レポート分析に役立てることもできます。

 パフォーマンスプロファイリング実行後は、従来よりも効率的にレポートの分析が行われ、結果も見やすくなっています。また、過去のレポートと比較できるようになり、以前の分析結果に基づく変更がパフォーマンスにどのように影響を及ぼしているかを簡単に確認できるようになっています。

図8:パフォーマンスレポートの比較
図8:パフォーマンスレポートの比較

次のページ
テスト担当者向け機能

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

  • このエントリーをはてなブックマークに追加
Visual Studio 2008徹底入門連載記事一覧

もっと読む

この記事の著者

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

静岡県榛原町生まれ。一橋大学経済学部卒業後、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/2573 2008/09/05 11:23

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング