Spec Explorer 2010リリースと、モデルベーステストについて

Microsoft(DevLabs)からVisual Studio 2008/2010 beta2向けに、モデルベーステスト(Model-based testing*1)を行う Spec Explorer 2010 というツールがリリースされた。

Spec Explorer

モデルベーステストとは

 モデルベーステストとはその名前から想像できるように、ソフトウェアのテストケースをモデルという抽象的な対象としたテスト手法である。
 抽象的なモデルというのは自分で定義さえすれば何でも良いのであるが、いわゆる「状態遷移のテスト」と定義してしまうには、範囲が異なる。どう異なるか説明すると、状態遷移のテストは「プログラムの実装(コード)レベル」であることに対し、モデルベーステストは「ソフトウェアの操作といったユースケースレベル」のような抽象的な部分まで含むんだ(定義次第で)テストということにある。
 といっても、普段のソフトウェアのテスト(動作確認)としては、モデルベーステストと同等のテストをしていると思う。

Spec Explorer 2010

 Spex Explorer Team Blog*2によると、Spec Explorerという名前はSpecifications(model)をexplorerする能力かという意味から来ているらしい。
 そんなことはさておき、Spec Explorer 2010はVisual Studio 2008もしくはVisual Studio 2010 beta2の拡張ツール(アドイン)としてインストールされる(コマンドラインツールも有り)。扱うモデルは、C#でプログラムを、Cord(Coordination Language)と呼ばれるスクリプト言語でシナリオを書くことになっているようだ。
 特徴としては、定義したモデルから、モデルのふるまい(動作)となる有限状態マシンとそれを実行するプログラムを作成し、Visual Studioのテストランナーでテストできるようである。私はMSDNを見ながら、少しサンプルを実行しただけなので、詳しくは自分で試してみて欲しい。テストパラメータの自動生成も出来そうで、興味深い。

NModel

 Spec Explorerの他には、NModelというツールがある。こちらは、Codeplex.comにてオープンソースで公開されている。NModelはSpec Explorer 2010とは異なり、コマンドラインツールと可視化(モデルビュアー)から構成されている。

まとめ

 モデルベーステストなかなか良さそうですよ、ってことで。まだまだ私自身ツールを使い切れていないので、これから使う予定です。

リンク

MSDN - Spec Explorer
http://msdn.microsoft.com/ja-jp/library/ee620411(en-us).aspx

Spec Explorer Team Blog
http://blogs.msdn.com/SpecExplorer/

NModel
http://www.codeplex.com/NModel

Model-based Testing with SpecExplorer - Microsoft Research
http://research.microsoft.com/en-us/projects/SpecExplorer/

Spec ExplorerはMS Researchからでした。こちらはモデルの記述にSpec#とAsmLという言語を使うらしい。

洋書

オススメです!

How We Test Software at Microsoft (Developer Best Practices)

How We Test Software at Microsoft (Developer Best Practices)