Visual Studio 2010 では様々な機能強化が見られるが、特にテストの強化が特徴的である。
特に Microsoft Test Manager と呼ばれる新しいテスト専用ツールを提供し、テストの計画、実行、管理、問題追跡といった一連のテスト プロセスを 1 つのツールでカバーすることができるようになる。
Test Manager を活用したテスト プロセスは、基本的に以下の 3 つのフェーズに分けられる。
- テストの計画
- テストの実施
- 問題の追跡
これらフェーズは必ずしも順番通りに実施されるものではなく、必要に応じてさかのぼって実施されることもあるが、ここではわかりやすく順を追って解説する。
テストの計画
Test Manager を活用してテストを実施するために、いくつかの定義をあらかじめ行う必要がある。特に重要なものは「構成の定義」と「テスト環境の定義」だ。
構成の定義では、ハードウェアやソフトウェアのテスト条件を定義する。アプリケーションには、システム要件として複数のハードウェアやソフトウェアをサポートすることがある。この場合、ひとつのテスト項目をサポートする複数の環境で実施する必要があるが、これを定義するのが構成だ。構成の定義では最終的にテスト マトリクスと呼ばれる、どのテスト項目を、どのテスト環境で実施するかの表を作成する。すると、テスト項目は自動的にテスト マトリクスでチェックされている数分作成される。
図: テストマトリクスの作成
テスト環境の定義では、テスト結果としてどのような情報を収集するか、ネットワークのエミュレーションを行うかなど、テストを実施する環境の定義を行う。それ以外にも、テスト環境を仮想環境として定義することもできる。
Visual Studio Lab Management 2010 を構築すると、テスト環境を仮想環境として構築することができる。テスト環境を仮想環境として構築することによって、以下のメリットがある。
- テスト環境の仮想イメージを共有することができるため、複数のエンジニアが同じテスト環境の構築に時間を費やすことなく、テストの効率が向上する。
- テスト担当者と開発者が同一のテスト環境を共有することができる。これによって、テスト担当者と開発者が異なる環境を利用することによって発生する環境依存の問題に対し、問題の再現性を高めることができる。
- テスト時において、問題が発生した瞬間の環境をスナップショットとして取得することができ、かつテスト担当者はそのスナップショットを別の開発者に引き渡すことができる。
- テストを繰り返し実施するにつれて環境が “壊れていく” ことがあるが、毎回テスト開始前に初期環境に復元することによって、常に “クリーン” な環境でテストを実施することができる。
- アプリケーションのビルドから、仮想環境への配置、仮想環境上でのテストの一連の流れをすべて自動化することができる
Test Manager で実施するテストは自動テストと手動テストに分けることができる。自動テストは、テスト実施手順があらかじめプログラム化されたもの、手動テストはエンド ユーザーによるシステムの操作を手順化したものであり、開発プロジェクトの最終工程である総合テストや、システム化案件の発注側による受け入れテストなどで見られる。
これらテストは要件と 1 対 1 で対応づけることができる。これによって、仕様変更時にどのテストを実施する必要があるか、どの要件が実装およびテストされているかなど、開発プロジェクト全般にわたって管理することができる。
テストの実施
Test Manager によるテストにおいては、特に手動テストの実施が特徴的だ。
手動テストを選択すると、テスト ツールが画面の端に表示され、テストの計画時に定義したテストの手順が表示される。テスト担当者は表示されているテストの手順にしたがって、アプリケーションのテストを実施する。
テストの実施中に何も問題が発生しなかった場合にはそのままテストは終了するが、もし問題が発生した場合には、そこからバグ票を作成し、担当の開発者に割り当てることができるが、その際に問題の解析に必要な様々な情報をあわせて引き渡すことが可能だ。以下にその一部を紹介しよう。
- テスト担当者による実際の画面の操作がビデオ ストリーミング (Windows Media 形式) で記録されており、そのストリーミング ファイルをバグ票に添付することができる。テストの手順ごとに時間のハイパーリンクがバグ票に記述され、そのハイパーリンクをクリックするとその手順を実施した時間のストリーミングが写し出される。
- 任意のタイミングで画面キャプチャを取得することができる。実際の画面キャプチャで問題の状況を視覚的に補足したり、アプリケーションが前後でどう修正されたか、修正の履歴管理を行うことができる。
- テストを実施しているシステムの情報を記録する。そのテスト環境の、OS の種類や、搭載メモリ容量、CPU の規格など、問題の分析に有用なシステムの情報を渡すことができる。
- Visual Studio 2010 の新機能 IntelliTrace のデータとして、デバッグの履歴をファイルとして受け渡すことができる。IntelliTrace はデバッグの履歴を保持することができる機能であり、ここではテストを実施した際、どのルート (呼び出し) が行われ、その際にどのような処理 (ファイル IO、データベース アクセス等) が行われたかをデバッグ情報として取得することができる。これまでこのような情報を必要とする場合、ダンプ ファイルを取得していた。ダンプ ファイルはその瞬間の情報しか保持しないのに対し、IntelliTrace はどのようなコードが実行されたかを見ることができるため、実際に処理を実行していない開発者がコードを追跡する際に強力な情報となる。
- Visual Studio Lab Management 2010 で仮想環境を構築した場合、問題が発生した瞬間のスナップショットを担当の開発者に引き渡すことができる。
図: Test Manager による手動テストの実施
これまでこのような情報は、バグ票への記述だけでは伝えづらく、電話やメール、時にはミーティング等を開いて詳細に解説する必要があった。その際、テスト担当者がすべての情報を伝えることができればよいが、テスト担当者が無意識に実施した操作などは情報から漏れやすい。例えば、ブラウザの戻るボタンをクリックするというのは比較的無意識に実施しやすい手順であるが、アプリケーションがそのような操作を想定しておらず、問題解析に時間がかかったというのは経験があるかもしれない。Test Manager を活用した手動テストにおいては、様々な情報を提供することによって、問題の再現性を高め、テスト担当者と開発者間の作業効率を高める。
さらに、テスト担当者の操作は記録されており、後で再生させることができる。(注意: ビデオ ストリーミングではなく、自動テストとして実際の操作を再生させることができる) 特に回帰テスト時において、問題発生時の操作を厳密に再現する必要がある場合に、この UI 自動テストの機能が活躍する。
問題の追跡
発行したバグ票はもちろん、関連する要件やタスクなどを Test Manager で管理することができる。したがって、発生した問題が現在どのような状況にあるかを一元管理することが可能だ。
開発者はバグ票とともに引き継がれた様々な情報をもとに、問題を解析し、アプリケーションに必要な修正を施す。その結果、最新のビルドができあがっていくが、Test Manager から問題を一元管理することができるとはいえ、その最新ビルドがどの問題が修正された結果なのかを追って探すのは一苦労である。特にバグの検出とその修正のサイクルは頻繁に行われる上、1つのビルドに 1 つのバグのみが解決されているとは限らない。さらに場合によっては新しい要件による実装がビルドに組み込まれているかもしれない。
Test Manager は、その最新のビルドに関連付けられた要件、バグ、タスクなどを洗い出し、提示することができる。これによってそのビルドがどのような理由により修正されたものかを、異なる複数の理由が組み合わさったものでも判別するのが容易となる。
さらに、このビルドにより、どのテスト項目を実施すべきかの提案もしてくれる。一度実施したテストがソフトウェアの修正後も引き続き期待通りに動くとは限らない。そのため回帰テストが必要となるが、数多くのテストをすべて再度実行するのは非効率である。このテストの影響度分析機能はこのような問題を解決する。
図: ソフトウェアの修正における影響度を判別
このように Test Manager を活用することによって、これまで人の手によって何とか実施、管理されていた様々な作業がツールで効率化できることがご覧いただけたかと思う。
Test Manager は Visual Studio 2010 Ultimate、または Visual Studio Test Professional 2010 に付属している。また Test Manager の動作には、Team Foundation Server が必要だ。
Test Manager 2010 の詳細については、以下の Web ページを参照いただきたい。Test Manager 2010 を用いたテスト プロセスの実施と管理についての詳細なホワイトペーパーも公開している。
http://go.microsoft.com/?linkid=9745515
Team Foundation Server および Visual Studio 2010 Ultimate の無償評価版もこの URL で入手できる。ぜひ実際に評価版をインストールして Test Manager の機能を評価いただきたい。