Compartilhar via


Team System における単体テスト

こんにちは。さて、今日から Tech・Ed 2007 Yokohama に向けるという意味も込めて Visual Studio Team System (VSTS)、そして Visual Studio 2008 (a.k.a. Codename "Orcas") の Team System での動向や新機能についての紹介を始めます。

内容は、VSTS というツールの機能やプラクティスだけではなく、ソフトウェア開発ライフサイクルやチーム開発の概念的な話なども交えます。

このブログで書いたことが、Tech・Ed での私のセッションで深堀されたり、そのままだったり(?)、また、取り上げられなかったりします(^^)

といったところで、今回は単体テストについて書きます。単体テストの重要性や、トレンドについては開発者であればいろいろなところで情報を収集できますし、すでになんらかの方法で実践されていらっしゃる方も多いのではないかと思います(ってことで、概念省略します)。

VSTS では、単体テストを行うためのフレームワークを提供しており、VSTS 2005 においても強力な単体テスト機能を有しています。

簡単なオペレーションで紹介しますと、コードを書いているときに「このメソッドの単体テストを作りたいなぁ」と思ったら、メソッド選択して右クリックするとコンテキスト依存メニューに 「単体テストの作成」 というのがでてきます。これでそのメソッドをテストするためのテストクラスのひな形を生成してくれるわけです。

テストの中身についても、いろいろありますが、おおざっぱに言うと、期待する値を定義して、実際にそのメソッドを実行した結果と比較し、その結果を評価し、OK/NG を決めるといった感じです(もちろん例外がThrow されたら・・・とかいろいろテストできます)。

テストクラスができたら、あとは単体テストを実行すれば、そのメソッドやクラスに変更があったときにもサクッとテストを実行でき、即テスト結果が手に入るわけです。

テストを記述するのには、それなりに時間はかかります。しかしながら、通常テストの作業をデバッグや手作業で毎回実施している時間をちゃんと計ってみたら、テスト書く時間よりはるかに多くの時間を割いているという現状を把握することができるのではないでしょうか。

ちなみに、VSTS では、単体テストをロードテスト時にも使用できます。Private メソッドのテストや ASP.NET での単体テストも行えます。カバレッジもとれるので、テストでどのコードが実行され、どのコードが実行されていないのかも把握することができます。

さて、ここからは VS(TS) 2008 のお話です。そんなとても便利で、今や業界共通のベストプラクティスである単体テストですが、VS 2008 では、Professional Edition から使えるようになる予定です。

下記にいくつかのスクリーンショットを載せますが、これらはぜーんぶ VS 2008 Professional Edition Beta1 のものです。

もちろん、2008 では単体テストの機能も強化されています。キーワードを挙げるとすれば

  • Test Driven Development の実践により近づく!
  • 使い勝手のさらなる向上!
  • ソースコードがなくても(アセンブリから)単体テストを作成できる!

といったところでしょうか。

image 
メソッドから単体テストを作成する画面

image
[Add Assembly...] でアセンブリを指定して単体テストを生成

image 
単体テストコードの例

image 
テスト書いたら即実行!!テストの一覧(Test View)とテスト結果もご覧のとおり

image
「Disable Deployment」チェックボックスが!!

注意: Visual Studio 2008 についての記述は、Beta1 を元にしており、投稿した時点における私の解釈であることをご了承ください。

今後、Tech・Ed 2007 Yokohama の 私のセッション に関連する投稿には、「 TechEd 」というタグをつけたいと思います。私の担当するセッションについては こちら をご覧ください。

※ Tech・Ed タグを TechEd に変更しました。他のブログも含め、Tech・Ed 2007 Yokohama の投稿は、TechEd タグで検索できると思います(追記: 2007年7月10日 18:56)。

ながさわ

Comments

  • Anonymous
    July 08, 2007
    こんにちは。さて、今日から Tech・Ed 2007 Yokohama に向けるという意味も込めて Visual Studio Team System (VSTS)、そして Visual Studio

  • Anonymous
    July 09, 2007
    こんにちは。 前回 に引き続き単体テスト関連です。今回は、単体テストを単に実行する、もしくは、自発的に実行するだけではなく、単体テストの実行をプロジェクトのポリシー(方針、ルール)として徹底することができるということを書きます。

  • Anonymous
    November 04, 2007
    こんにちは。今日も Tech・Ed に向けた Team System の話題を書きたいと思いますが、以前からたまに書いている VS 2008 Petit-Review としてお送りします。 というのも、単体テスト機能は、VS

  • Anonymous
    December 08, 2007
    MSDN オフラインセミナー 全国ツアー <チーム開発編>にご参加いただきありがとうございました。 このページでは、セミナーでご覧いただいたデモンストレーションでのオペレーションやテクニックについて主に、過去、そしてこれからこのブログに投稿する(した)ものを紹介する形でご紹介いたします。