機能テストの自動化の利点、どのような機能を自動化すべきか、自動化されたテストの合否の判断方法などの説明は終わりにして、実際に機能テストを実現する製品の紹介に入っていきましょう。まずは、オープンソースの機能テストのテストフレームワークである「Jameleon」について説明していきましょう。
JameleonはJavaアプリケーション開発におけるテスト工程を自動化するためのツールで、実際に使用するデータを元にしたデータ駆動型のテストを行うことができるJavaアプリケーションのテスト自動化ツールです。つまり、Webアプリケーションの機能テストだけでなく、さまざまなアプリケーションのテストを自動化できます。
JamaleonはJameleon開発チームによって、LGPLのライセンスのもとで、開発・保守が続けられており、sourceforge.netのサイトで公開されています。
Jameleonの最新バージョンは2005年12月23日にリリースされたバージョン3.0.5で、ZIP形式でバイナリをJameleonのWebサイトからダウンロードできます。
JameleonではさまざまなJavaアプリケーションのテストを実現するため、プラグインベースで機能が追加できます。最新版のバージョン3.0では次のようなプラグインが提供されています。
これらのプラグインを利用することで、一般的なJUnitでの単体テストだけでなく、XMLベースのオープンソースのマクロ言語であるJellyやJavaプログラムにより、テストケースを作成できます。
また、最新版のバージョン3.0では図2のようなテストスクリプトの作成や実行を手助けするためのGUIツールが提供されています。
Jameleonはファンクションポイントと呼ばれるアプリケーションの機能、複数の機能をまとめたセッション、さらに複数のセッションをまとめたテストケースという構造を持っています(図3)。
ファンクションポイントはアクションポイント、バリデーションポイント、ナビゲーションポイントという3つに分割されます。アクションポイントはフォームのテキストボックスやボタンなどが正しく動作するかどうかを判断するポイントです。バリデーションポイントはアクションポイントで実行された内容が正しい動作であるかを判断するポイントです。例えば検索のページでは検索内容を入れるテキストボックスと、検索ボタンが正しく表示され入力可能およびボタンのクリックが可能かどうかをアクションポイントとして捉え、検索の結果をバリデーションポイントとして捉えることになります。ナビゲーションポイントはその名のとおり、ほかのページへのリンクをクリックしたときに正しく指定されたページが表示されているかを判断するポイントです。
Jameleonでは一般的にはファンクションポイントはJavaでコーディングし、テストケースをJellyというXMLベースのマクロ言語で記述することになります。ファンクションポイントをJavaで実装するというと、非常に難しいように感じられますが、実際はJava言語をJameleonのスクリプト言語で利用しているといった具合で、一般のJavaプログラミングに比べればはるかに簡単にファンクションポイントが実装できるようになっています。多少スクリプト言語を利用した経験のある方であれば、EclipseなどのIDE環境を利用することでJameleonをそれほど苦労することなく利用できるかと思います。また、バージョン3.0からはGUIツールによる支援も備わったのでより簡単にJameleonで機能テストを作成できます。
なお、Jameleonで検証可能なWebアプリケーションはJavaで書かれているWebアプリケーション以外でも問題なく利用できます。
JameleonのインストールはJameleonのWebサイトからZIP化されたファイル(jameleon-test-suite-3.0.5.zip)をダウンロードし、ZIPファイルを解凍するだけです。JDKが導入されていれば、jameleon-test-suite内のjameleon.batまたはjameleon.shを起動するだけで、図2のようなGUIツールが起動します。
次回はJameleonを使って簡単なテストを作成しながら、Jameleonの機能を説明します。
Copyright © ITmedia, Inc. All Rights Reserved.