Enterprise Watch
バックナンバー

「Visual Studio 2005 Team System」、その本質に迫る 【第四回】

~アプリケーションの品質向上をサポートする「Software Testers」

 ソフトウェアの品質を向上させるためには、テストが重要であることは広く認知されるようになった。Visual Studio 2005 Team System(以下、Team System)のVisual Studio Team Edition for Software Testers(以下、Software Testers)でも、開発ライフサイクルにおいて重要となるテスト機能をIDEに統合している。テストは「テストプロジェクト」としてIDEのソリューションエクスプローラに表示され、一括して管理可能になる。これまでアプリケーション開発ライフサイクルの後半で実施されてきたテストを、開発の早い段階からひんぱんに実行することで、アプリケーション開発で発生するバグやパフォーマンスといった問題の修正コストを軽減できる。

 そこで今回はSoftware Testersで実行可能なテストや、IDEに統合されたテストツールについて解説する。


Software Testersで実行可能なテスト

 Software Testersで実行可能なテストには、プロジェクトの関数やメソッドを実行するコードで作成された「単体(Unit)テスト」、Webブラウザの操作を記録して、そのセッションから作成される「Webテスト」、開発チーム既存の自動テストやツールを利用できる「汎用テスト」、自動テストを実行して複数ユーザーの操作をシミュレートする「負荷テスト」、自動化されていないタスクをステップごとに実行する「マニュアルテスト」がある。マニュアルテスト以外のすべてのテストは、コマンドラインはもちろん、それぞれのテストをグループ化しての実行も可能である。

[単体テスト、およびコードカバレッジの測定]
 ソースコードをテストする単体テストは、プロジェクトの関数やメソッドを実行するコードから構成される。生成されたテストコードでは、編集して動作をカスタマイズしたり、「Unit Test Frameworkライブラリ」のメソッドを呼び出すことも可能となっている。 またコードカバレッジでは、テストの際にカーネルから実行されているコードを行単位で確認できる。これにより未テストのカーネル部分も明らかになる。

 単体テスト、およびコードカバレッジがSoftware DevelopersとSoftware Testersにまたがっている理由は、開発段階から積極的に単体テストやコードカバレッジを実行することが望ましいと考えられているためである。開発フェーズで個々のプログラムのソースコードをテストすることで、ソースコード自体の品質を高め、開発の効率を上げることができる。

[Webテスト]
 Webテストは、WebブラウザでWebアプリケーションを実行した際のブラウザセッションから作成される一連のHTTP URLからなる。実際にWebブラウザ上でWebアプリケーションをオペレーション・実行した場合に、動作に問題がないか、十分なパフォーマンスが出ているかを確認できる。ユーザーログインなどの操作があるアプリケーションの場合には、SQL Server上に用意したユーザーデータを利用して、複数ユーザーによるテストなどを実行することもできる。

[汎用テスト]
 汎用テストは、任意のコマンドをテストとして実行する機能で、既存のテストをSoftware Testersから実行するメカニズムとなる。この機能により、多くのテストをIDEから管理できるほか、テストをグループ化して自動実行したり、その結果をIDEから確認できるようになる。


IDEに統合されたテストツール

 上記のようにSoftware Testersでは、テストをIDEに統合し、テストの作成や実行といった管理もIDEに統合されたテストツールから行える。


Test View
[Test View]
 Test Viewは、テストの作成、および編集をナビゲーションするツールで、実際にテスト用のコードを記述するVisual StudioのIDEもここから起動できる。作成されたテストは、Test Viewウィンドウに表示される。

 Test Viewからは、テスト用のコードを実行して動作を確認できる。その結果に問題があれば、すぐに修正が加えられる。


Test Explorer
[Test Explorer]
 Test Explorerは、テストの管理と実行を行うツールである。作成されたテストをカテゴリ別に管理でき、所有者やテストの種類などを指定して、表示するテストにフィルタをかけることも可能だ。カテゴリ別に管理したテストはグループ化され、コマンドラインのテストユーティリティからまとめて実行できるようになる。

 また、各テストの種類ごとに、その実行方法を厳密に定義することもできる。異なる種類のテスト(単体テストとWebテストなど)を実行する際に、テストをローカルで実行するか、配置した状態で実行するかといった厳密な実行方法を、テストの種類ごとに「Run Configuration」のダイアログボックスから定義できるようになっている。


Test Results
[Test Results]
 Test Resultsは、単体テスト、コードカバレッジ、Webテスト、汎用テストといった自動実行可能なテストの進行状況や結果を表示できる。結果のさらに詳しい情報は、「詳細ビュー」で確認できる。


[Code Coverage]
 テストの実行前に、「Run Configuration」のダイアログボックスからコードカバレッジを有効にすると、実行対象のソースコードが、テストでカバーされたコードとされなかったコードに色分けされてCode Coverageウィンドウに表示される。ソースコードのファイル、名前空間、クラス、メソッドの名前、テストの実行によって達成されたカバレッジ率も表示される。


コードのカバー率の結果 テストでカバーされたコードとそれ以外を色分け表示する「Code Coverageウィンドウ」

まとめ

 Software Testersは、テストプロジェクトをIDEに統合するものといえる。これによりアプリケーション開発ライフサイクルの早い段階からひんぱんにテストを実行できるようになり、構造的欠陥やパフォーマンス障害といったアプリケーションの問題を早期に検知して、その品質を高める「テスト駆動型」の開発が可能となる。これは、結果的に開発を効率化することにつながる。

 これまでのVisual Studioには、豊富なテスト機能が搭載されていなかったため、他のベンダーのテストソリューションを既に導入しているユーザーも多いだろう。これらのユーザーのために、マイクロソフトでは既存のテストコードを実行する機能もサポートしている。また、ボーランドやコンピュウェアといったテストソリューションベンダーは、すでにTeam Systemへの統合を表明している。他ベンダーの製品との統合は、次回のTeam Foundation Serverの回でも触れる予定だ。



URL
  マイクロソフト株式会社
  http://www.microsoft.com/japan/
  Visual Studio 2005 Team System
  http://www.microsoft.com/japan/msdn/vstudio/2005/teamsystem/
  Visual Studio 2005 Team System: Extending the Suite(英文)
  http://msdn.microsoft.com/library/en-us/dnvsent/html/vsts-ext.asp

関連記事
  ・ 「Visual Studio 2005 Team System」、その本質に迫る 【第一回】(2005/03/03)
  ・ 「Visual Studio 2005 Team System」、その本質に迫る 【第二回】(2005/03/10)
  ・ 「Visual Studio 2005 Team System」、その本質に迫る 【第三回】(2005/03/17)


( 北原 静香 )
2005/03/24 00:00

Enterprise Watch ホームページ
Copyright (c) 2005 Impress Corporation, an Impress Group company. All rights reserved.