第2回:Visual Studio 2005で進めるテスト駆動開発 (2/4)

Visual Studio 2005を活用した、テスト駆動開発とソフトウェア品質向上アプローチ
Visual Studio 2005を活用した、テスト駆動開発とソフトウェア品質向上アプローチ

第2回:Visual Studio 2005で進めるテスト駆動開発
著者:日本ユニシス  稲葉 歩   2005/12/6
前のページ  1  2   3  4  次のページ
ソースコードが効率的に作成・修正できること

   VS2005 Team Systemには優秀なコードエディタやデバッガが搭載されています。これで表2の1の要素はクリアできます。
テストコードが効率的に作成・修正できること

   ユニットテスト用のクラスライブラリ(注1)の使い方を理解すればテストコードの作成はそれほど難しくありませんので、表2の2の要素をクリアできます。

※注1: Microsoft.VisualStudio.TestTools.UnitTestingの名前空間に用意されています。
テストが効率的に実施できること

   テストの実行もメニューから選択するだけですから簡単です。これで表2の3の要素もクリアできます。


作業間をシームレスに遷移できること

   ソースコードの作成も含めて、これらの作業はすべてVS2005 Team System上で実行可能ですので、表2の4の要素がクリアできます。

   以上のことから、テスト駆動開発をリズミカルに進めるためのテスティングフレームワークとして、VS2005 Team Systemは十分に有効であるといえるでしょう。


コード分析

   ソフトウェアは動けばよいというものではありません。期待通りの動作をするということは当然の品質レベルとして、ソフトウェア開発では保守性という観点の品質も要求されます。

   誰にとっても読みやすいコードを作るために、多くの場合は「コーディング規約」を作成します。開発者は規約を守るようにコーディングし、皆でレビューをして規約に順守していることを検証し、保守性を向上させようと努力することになります。コードはコンピュータが理解できる言語で記述されているのですから、ここも自動化してコストの削減をはかりたいところです。


ガイドラインを利用する

   VS2005 Team Systemでは、作成したコードが「Design Guidelines for Class Library Developers(注2)」というガイドラインに則っているかを自動的にチェックするコード分析の機能があります。


   つまり、コーディング規約をこのガイドラインにそった内容にすることで、コードのレビューの自動化が可能になります。

   コード分析を利用するためにはSolution Explorerでプロジェクトを右クリックし、「Property」を選択します。プロジェクトの設定画面が開きますので、「Code Analysis」タブを選択し、「Enable Code Analysis」をチェックします。こうしてコード分析の機能を設定すると、ビルドのたびにコード分析が自動的に実行されます。

   ユニットテストの際に使用したソースコード(AddressBookクラス)に対してコード分析を実行した結果を図3に示します。このように、既定の状態ではガイドラインへの違反を発見すると警告として表示されます。

作成したソースコードの解析結果
図3:作成したソースコードの解析結果
(画像をクリックすると別ウィンドウに拡大図を表示します)

   これで「コードのレビュー」の自動化ができました。

   しかし、開発者は規約に準拠したソースを記述する責任があることに変わりはありません。コード分析の機能はVS2005 Team Systemに統合されており、ビルドするたびに自動的に実行できるという点がポイントです。

   通常の開発では、少しコーディングしてはビルド、少しコーディングしてはビルドというように頻繁にビルドが実行されます。このビルドのたびにガイドラインへの準拠が確認でき、ビルドのたびに警告がでないように修正していくことになります。

   最終的なコードを印刷すれば数百ページにおよぶことはざらにあります。膨大な量のコードをレビューするのは大変ですし、テスト・実装がすべて終わった後にそのレビュー結果がまとめて提示され、すべてのコードを一度に修正するのも大変です。

   それよりはVS2005 Team Systemにソースコードを自動的にチェックさせて、常にガイドラインへ準拠するように実装していくほうが楽でしょう。

   このガイドラインは、.NETのクラス・ライブラリを作成する際の標準的なルールになっていますので、基本的にはこのガイドラインにそった規約を採用することをお勧めします。「規約の作成」の作業も必要なくなる上に、ほとんどの.NET開発で通用しますのでプロジェクトごとに規約を覚え直す手間もなくなります。

   ただし、ガイドラインの内容が企業やプロジェクトの持つポリシーと相容れない可能性もあるかもしれません。また、コード分析にはクラス・ライブラリではない画面などの実装には必要のないようなルールも含まれています。このような場合のために、部分的にチェックを行わないように設定することも可能です。

前のページ  1  2   3  4  次のページ


日本ユニシス株式会社 稲葉 歩
著者プロフィール
日本ユニシス株式会社  稲葉 歩
.NETテクノロジコンサルティング所属
.NET Frameworkを中心としたシステム開発プロジェクトにてアーキテクト、トラブル対応、営業支援、などを主に担当しています。


INDEX
第2回:Visual Studio 2005で進めるテスト駆動開発
  はじめに
ソースコードが効率的に作成・修正できること
  リファクタリング
  「統合」開発環境のメリット
Visual Studio 2005を活用した、テスト駆動開発とソフトウェア品質向上アプローチ
第1回 テストは開発者から利用者の視点へ
第2回 Visual Studio 2005で進めるテスト駆動開発
第3回 Visual Studio 2005 Team Systemで補うテスト駆動開発
第4回 チーム開発における品質向上策とVisual Studio 2005
開発ライフサイクルとVisual Studio 2005という選択肢
第1回 開発ライフサイクルが生むメリット
第2回 アーキテクチャ策定における有効性を探る
第3回 Visual Studio 2005による開発とテスト環境
第4回 チーム開発とVisual Studio 2005 Team Foundation Server
チーム開発ここまできた、個人からチームの生産性向上へ
第1回 Visual Studio 2005によるプロジェクトの進捗管理
第2回 Visual Studio 2005の変更管理の有効性
第3回 成果物の管理とプロジェクトのコミュニケーション向上
第4回 自動ビルドによるプログラムの品質・保守の有効性

人気記事トップ10

人気記事ランキングをもっと見る