BOOK Preview

Microsoft Visual Studio 2005による
Webアプリケーションテスト技法

第3章 VSTSとTFSによるソフトウェアテストの全体像

マイクロソフトプレスの書籍紹介ページ
日経BPソフトプレスの書籍紹介ページ
書籍情報(書籍目次)のページ
2007/04/02
Page1 Page2 Page3

 本コーナーは、.NET関連の新刊書籍から主要なチャプターをそのまま転載し、その内容を紹介するものです。

 今回は日経BPソフトプレス/マイクロソフトプレスより2007年4月2日発行の書籍『Microsoft Visual Studio 2005によるWebアプリケーションテスト技法−Visual Studio テスト ツールを用いた業務アプリケーションの実践的テスト手法』より、同社の許可を得てその内容を転載しています。

 本書は、大規模Webアプリケーション構築の実践的テクニックを網羅した『.NETエンタープライズWebアプリケーション 開発技術大全』シリーズ全5巻、そして、Visual Studio 2005(ASP.NET 2.0)の新機能を活用したアプリケーション設計についてまとめた『Microsoft Visual Studio 2005によるWebアプリケーション構築技法』の著者であるマイクロソフトのコンサルタント赤間氏による新刊書籍です。既刊の書籍はいずれも開発者のバイブル的な存在になっています。

 本書では、Visual Studio 2005 Team Systemに搭載されているテスト機能を活用して、単体、結合、性能テストを行うための実践的な手順について解説されています。システムが大規模/複雑になってくると、テストを漏れなく効率的に行うにはツールの活用とツボを押さえたテストが重要になってきますが、本書は.NETのアプリケーション開発において、その2点を確実にカバーするものです(テストの対象はWebアプリケーションとなっていますが、本書のテスト技法の大半は、ほかの.NETアプリケーションにもそのまま適用することができるはずです)。 また、チームによる開発/テストを前提としており、Team Systemを使って各チームが効果的に連携するためのポイントにも重点が置かれています。

 本稿は、同書の「第3章 VSTSとTFSによるソフトウェアテストの全体像」からの転載です。ここではVisual Studio 2005 Team Editionの各エディションについて、どのメンバーがどのエディションを使い、どのようなテスト作業を行えばよいかについてまとめられています。また、チーム開発の基幹となるTeam Foundation Serverの現実的な導入手順についても触れられています。

 Visual Studio 2005 Team SystemやTeam Foundation Serverには数多くの機能が搭載されており、実際に使いこなすのはなかなか容易ではありませんが、機能説明の羅列やできることの羅列ではなく、数ある機能のうち、何をどのような手順で行っていけばよいのかが、その理由とともに明確に示されているところが本書の特長といえるでしょう。

 なお、書籍の詳細については書籍情報のページをご覧ください。

ご注意:本記事は、書籍の内容を改訂することなく、そのまま転載したものです。このため用字用語の統一ルールなどは@ITのそれとは一致しません。あらかじめご了承ください。

 第3章以降ではVisual Studio Team System(VSTS)によるソフトウェアテストの実践を見ていくが、細かい解説に進んでいく前に、まずは混乱しやすいエディション構成とその使い分けについて解説を行う。また、Team Foundation Server(TFS)についても、全体像を掴んでおくとソフトウェアテストに関する理解が深まるため、本書の範疇からはやや外れるが、併せて解説を行う。

3.1 Visual Studio Team System概要

 Visual Studio Team System(VSTS)とは、クライアントツールVisual Studio 2005 Team Edition(VSTE)とサーバー環境Team Foundation Server(TFS)から構成される、クライアント/サーバー型のチームアプリケーション開発環境である(図3-1)*1

図 3-1 Visual Studio Team Systemイメージ図
 
*1 この図からわかるように、Visual Studio Team System(VSTS)とは、クライアントツールとしてのVisual Studio 2005 Team Edition(VSTE)と、サーバー環境としてのTeam Foundation Server(TFS)の総称のことを指す。よって、本章のタイトルである「VSTSとTFSによる……」という表現は厳密には正しくない。

 この開発環境を正しく構成するためには、まずクライアントツールの使い分けと、TFSサーバーの機能概要を知ることが必要である。これについて、以下に順に解説する。

3.1.1 クライアントツールVisual Studio 2005 Team Edition

 クライアントツールであるVisual Studio 2005 Team Edition(VSTE)には、主に4種類のエディションがある。さらに負荷テスト専用ツールと全部入りバージョン、さらにプロジェクトリーダーなどが利用するクライアント専用ツールがあり、これらを含めると都合7種類のエディションがある。実際のチームアプリケーション開発ではこれらを適切に使い分ける必要がある。以下に整理する。

  • 開発環境で開発チームが利用するツール

    • Visual Studio 2005 Team Edition for Software Architect(VSTE/SA)
    • Visual Studio 2005 Team Edition for Software Developers(VSTE/SD)
    • Visual Studio 2005 Team Edition for Database Professionals(VSTE/DP)

  • テスト環境でテストチームが利用するツール

    • Visual Studio 2005 Team Edition for Software Testers(VSTE/ST)
    • Visual Studio 2005 Team Test Load Agent(VSTTLA)

  • その他の特殊なツール

    • Visual Studio 2005 Team Suite(VSTS)*2
    • Visual Studio 2005 Team Explorer(TFC)*3
*2 すべてのVSTEエディションが含まれている「全部入り」バージョンがVisual Studio 2005 Team Suiteであるが、この略称は"VSTS"であり、開発環境の全体像を示すVisual Studio Team Systemの略称と一致してしまうため、注意が必要である。本書では、注記なしで"VSTS"と書いた場合には後者(Visual Studio Team System)を指すものとして記述している。
 
*3 VSTEと略すと分かりにくいため、ここでは"TFC"(Team Foundation Client)と記述した。

 これらのツールのうち、特に重要なのはSoftware DevelopersとSoftware Testersの使い分けである。Visual Studio 2005には多数のテストツールが備わっているが、エディションごとに利用可能なツールが異なる(表 3-1)。

主な利用者 コード分析 プロファイ 単体テスト 手動テスト Webテスト Rig
VSTE/SA アーキテクト
×
×
×
×
×
×
VSTE/SD 開発者
×
×
×
VSTE/ST テスター
×
×
×
Team Suite 開発リーダー
×
TFC プロジェクトリーダー
VSTTLA テスター
×
×
×
×
×
表 3-1 エディションごとの利用可能なテストツールの一覧

 VSTE/SDとVSTE/STは、簡単に言えば「業務アプリケーションの生のソースコードを対象としたテストを行うか否か」によってテストツールが振り分けられている。以下のようなポイントを見ていただきたい。

  • Visual Studio 2005 Team Edition for Software Developers (VSTE/SD)

    • 開発者は、アプリケーションのソースコードを対象としたテストを行う。
    • このため、静的コード分析ツールやプロファイラツール、単体機能テストツールなどの「ソースコードを直接テストするツール」が利用可能になっている。

  • Visual Studio 2005 Team Edition for Software Testers (VSTE/ST)

    • テスターは、出来上がったアプリケーションをユーザーインターフェイスから動作させてテストする。
    • このため、手動テストやWebテストなどの「アプリケーションをユーザーインターフェイスレベルからテストするためのツール」が利用可能になっている。*4
*4 例外として、VSTE/STでも単体テストが利用できるようになっているが、これはWebテストなどを行う際に下位エンジンとして単体テスト実行エンジンを使っていたりするためである。実際にはテスターが(ソースコードを対象とした)単体機能テストのコードを記述することは(基本的には)ない。

 よってこれらのエディション構成の基本的な使い分けは非常にシンプルで、図 3-2のようになる。

  • 開発チーム : アプリケーションのソースコードを触るチーム
    • Visual Studio 2005 Team Edition for Software Developersを使う。

  • テストチーム : 完成したバイナリファイルを使ってテストを行うチーム*5
    • Visual Studio 2005 Team Edition for Software Testersを使う。

  • 開発チームとテストチームは、TFSビルドサーバーとバグ追跡データベースシステムを介して連携作業を行う。
図 3-2 Visual Studio 2005 Team Editionの使い分けと作業連携

*5 テストチームは、完成したバイナリファイル「のみ」を触り、アプリケーションの(生の)ソースコードを触ることはない。テストチームが扱うのはあくまで「アプリケーションの完成品」である。ただし、このことはテストチームが一切コードを書かないということではない。テストチームがテストの自動化を行う際には、テスト「コード」(テストスクリプト)を書かなければならないことがしばしばある(例えば第1章の「ソフトウェアテスト概論」で示したテストスクリプトはまさにその好例である)。日本では、テスター=コードが書けない、といった認識が一般的であるように思われるが、高度なソフトウェアテストを実践するためには、テスターにもある程度の開発者としての素養が求められる。ちなみに、テストチームの中でこうした「テストを行うためのコード」を開発するスキルを持った人たちのことをテスト開発者(テストデベロッパ)と呼ぶ。以下のアドレスなどを参照してみるとよいだろう。

"Three Reasons To Consider Being a Test Developer", Steve Rowe's Blog, http://blogs.msdn.com/steverowe/archive/2005/01/19/356361.aspx

 この環境において、各チームは表 3-2のような作業を行うことになる。

単体機能テスト 結合機能テスト システムテスト
開発チーム DAC、BCに対する単体機能テストの開発
・静的コード分析
・カバレッジデータの収集
・バグの修正  ・バグの修正
・プロファイラによる分析
テストチーム ・テストケースの開発 シナリオベースの結合機能テストの実施(手動/自動)
・カバレッジデータの収集
・バグの報告書の起票
ロードテスト(Rigの構成、テストの実施・解析など)
・セキュリティテストやユーザビリティテストの実施調整
・バグ報告書の起票
プロジェクト管理チーム ・品質評価データの収集と分析 ・バグのトリアージ
・品質評価データの収集と分析
・バグのトリアージ
・品質評価データの収集と分析
表 3-2 各チームが各開発フェーズにおいて行うべき作業

 なお、これらのクライアントツール(VSTE/SDやVSTE/STなど)は、(TFSなしで)単体として利用することもできる。例えば単体機能テストを自動化してソースコード管理をするというだけであれば、VSTE/SDとVSS(Visual SourceSafe)のみで済ませることもできる。しかし、TFSを併用することにより、チーム間の連携作業やデータの分析作業などをより円滑に行うことができるようになる。

 引き続き、今度はサーバー環境であるTeam Foundation Server(TFS)の機能を見てみよう。

 

 INDEX
  Microsoft Visual Studio 2005によるWebアプリケーションテスト技法
  第3章 VSTSとTFSによるソフトウェアテストの全体像
  1. Visual Studio Team System概要
    2. サーバー環境Team Foundation Server
    3. VSTS / TFSの導入手順について
 
インデックス・ページヘ  「BOOK Preview」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間