テストマネージャ
本稿での最後の機能の紹介です。テストマネージャはVSTTの各機能を利用して作成した個別のテストケースを論理的にまとめ上げるための機能を提供します。VSTDでは単体テストの作成、実行などを行うことができますが、テストマネージャは提供されていません。このため、VSTDではテストビューウィンドウというウィンドウを利用して、すべてのテストケースの一覧をフラットにしか参照することができません(テストビューウィンドウはVSTTにも付属しています)。テストケースが10や20個の単位であればいいですが、もっと量が多い場合には、テストマネージャを利用して、テストケースを意味のある単位にまとめ上げると非常に便利です。テストマネージャではこのまとめ上げる単位を「テストリスト」と呼びます。テストリストはネストさせて構成することも可能です。次の図14はテストリストをネストさせて構成している例です。
図14の左ペインにあるBVTやBankと名前のついているものがテストリストです。1つのテストリストには、複数のテストケースを登録することができます。また、1つのテストケースは複数のテストリストに属することができます。
このようにして作成したテストリストを利用して、その単位でテストを実行することができます。ここがテストマネージャに用意された最も便利な点だと思います。例えば、あるクラスの異なるメソッドに対して作成した単体テストを1つのテストリストにまとめ上げることで、クラスに対する単体テストを簡単に実行することができるようになります。
まとめ
今回はVSTTがもつさまざまな種類のテストの作成や編集、実行、管理を行うための機能についてみてきました。これらの機能について簡単にポイントをまとめておきます。
- 単体テスト
- VSTDの単体テスト機能と同様のことができる
- VSTTの単体テスト機能にはコードカバレッジデータのマージ機能が付属している
- Webテスト
- Webアプリケーションの操作を記録してテストを作成する
- 操作そのものではなく、HTTP要求を記録している
- ブラウザのみで動作する処理はテストできない
- 複雑で高度なテストにはテストケースのコード化で対応できる
- ロードテスト
- 単体テスト、Webテストのテストケースを利用して作成する
- 大きくシナリオ、カウンタセット、実行設定の3つで構成されている
- テストの設定にはそれなりの時間と労力が必要となる
- テスト結果の詳細はSQL Serverに保存される
- 手動テスト
- 人間による手作業が必要なテストをVSTTに統合する
- 手順書はMicrosoft Office Wordまたはテキストファイルで作成される
- 汎用テスト
- コマンドラインツールなどの外部の実行可能形式ファイルを呼び出す
- VSTTに統合されない自動テストのテスト成否をVSTTに統合する
- 順序指定テスト
- ロードテスト以外のテストケースを指定した順番どおりに処理する
- コマンドラインから実行した場合、手動テストは一時的に削除されて実行される
- テストマネージャ
- テストを論理的な単位にまとめあげることができる
- まとめあげたテストをその単位で実行することができる
VSTTで一般的に大きく取り上げられる機能としては、単体テスト、Webテスト、ロードテストがあります。単体テストは前述の通り、VSTDでもほぼ同様のことが行えます。Webテストはさておき、ロードテストまでもがWebアプリケーションにしか利用できないという誤った認識をされていることが多く、そういった意味で用途が限定されてしまうのではないか、ということから、あまり有効な製品ではないと思われていることも多いようです。
しかし、今回紹介したように単体テストにはVSTDにはない機能が提供されていたり、ロードテストは単体テストベースで作成したりといったことが可能です。どちらかと言うと大規模アプリケーション開発において非常に有効な機能では、と思われるかも知れませんが、大規模であっても中小規模であってもVSTTによるメリットは同じく享受できると考えています。しかし、ロードテストの部分でも多少触れましたがテストの自動化を行うためにはそれなりの作業時間を要することになります。作成したテストがあまり活用されない、頻繁に変更されるという状況ではコスト対効果がほぼなくなってしまうどころか、場合によっては作成コストがテストの自動化による削減コストを上回ってしまう場合すらあります。
VSTTはテストを支援する製品として非常に強力なものですが、なんのために導入するのか、という目的をもとに利用されることをお勧めします。今回はVSTTが持つさまざまな機能の概要を紹介しましたが、これらが導入のための検討材料になればと思います。
次回はVSTSの発表からしばらくしてから追加されたクライアント製品であるVisual Studio Team Edition for Database Professionalsについて、データベーススキーマの変更管理、データジェネレータ、データベースの単体テスト機能を中心に紹介します。