第9回 Mercury QuickTest Professionalを使ったテスト:理論的・計画的なWebアプリケーションのテストの実現(3/3 ページ)
前回はオープンソースの機能テストツールであるJameleonを使ってWebアプリケーションのテストを作成した。今回は、商用製品である「QuickTest Professional 9.0」を用いて同様の内容を行ってみる。
ここまで設定したらスクリプトの作成は終了ですので、記録を停止します。記録を停止すると、図10のような画面が表示されます。上部のキーワードビューには設定したチェックポイントおよび画面遷移が記載されており、下部にはチェックポイントでの期待結果が変わるときに値を設定しておくためのデータテーブルと、Active Screenとブラウザに表示された画面が表示されます。Active Screen画面でも追加でチェックポイントを設定できるため、テスト開始時は非常に簡単なチェックポイントだけを入れておき、徐々にチェックポイントを増やすこともできます。
作成されたスクリプトはエキスパートビュー画面で見ることができます。リスト1は作成したスクリプトのコードです。QTPはDOMレベルでオブジェクトを記録しているため、単純にコードを見るだけではどんなことしているか分かりづらいですが、慣れてくるとこのコードを直接書いてチェックポイントを設定していくことも可能です。また、DOMレベルで保存されているオブジェクトはオブジェクトリポジトリに管理されており、このリポジトリを直接編集したり、複数のユーザーで共有したりできます。
作成したスクリプトを実行すると、図11のような結果リポートが出力されます。Jameleonと異なり、すべての画面ショットを保存することもエラーとなった画面ショットのみを保存することも可能です。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
作成したスクリプトを保存して実行することで何度でも同じテストを実施できます。ちなみにJameleonで作成したMercury Toursのテストと同じ内容をQTPで記録するとリスト2のようなスクリプトになります。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
ただし、Jameleonで作成した場合と異なり、遷移されたページが正しいかどうかの確認や飛行機の検索結果の判定方法は違います。チェックポイントは次のように設定されています。
Mercury Toursのトップページの確認
Mercury Toursのイメージリンクがあること(ビットマップチェックポイント)
Mercury Toursのイメージリンクの下に「Home」「Flights」「Hotels」「Car Rentals」「Cruises」「Destinations」「Vacations」のリンクがあること(標準チェックポイント)
Flight Finderページの確認
Flight Finderの文字列が「Use our」および「to search for the lowest fare on participating airlines.」の間で表示されていること(テキストチェックポイント)
airlineのコンボボックスの初期値が「No Preference」であること(標準チェックポイント)
Select a Flightのページの確認
DEPARTでBlue Skies Airlines 360がチェックされていること(標準チェックポイント)
RETURNでBlue Skies Airlines 630がチェックされていること(標準チェックポイント)
このように基本的なテストスクリプトの作成はGUIから簡単に行えるのがQTPの特徴です。QTPは多くの機能があり、ここで紹介したのは本当に触りだけです。使いこなせばこなすほど、さまざまなテストの自動化やテスト作業の効率化を実現できるようになります。
JameleonとQTPの違い
JameleonとQTPで同じWebアプリケーションのテストを作成してみました。基本的にWebアプリケーションの機能テストが実現できることは同じです。またCSVファイルを使ってデータドリブンなテストを実施できるのも共通しています。
それではQTPとJameleonの違いは何でしょうか。簡単に言ってしまうと、テストの記録の有無と複雑なテストを作成できるかどうかです。JameleonではJellyスクリプトで基本的にテストを作成していきます。ただし、テストのオペレーションによって条件分岐したり、ほかのテストを呼び出したりするのはJameleonではほとんど実現できません。もちろんJavaのコードと組み合わせれば実現可能ですが、そこまで苦労して自動化するメリットは出てこなくなります。
QTPはVBScriptsベースのスクリプト言語を持っているので、環境依存する部分はiniファイルに記述し、テストスクリプトからそのiniファイルを呼び出すことなども簡単にできるだけでなく、テストスクリプトを構造化していくことも可能です。
高度なテストを行いたいのであれば、QTPに付属しているスクリプトデバッガでVBScriptsを記述する方法が有効です。また米国のMercury Interactiveのサポートサイトには便利なVBScriptsのライブラリがユーザーによって多く登録されており、ユーザー同士のコミュニティーサイトも提供されています。
つまり、機能テストの簡単なものを実現するために利用できるツールがJameleonであり、本格的な機能テストの自動化でテスト工程全体の効率アップを図りたいのであればQTPを使用する必要があるということです。
ここで間違って欲しくないのは商用だからいいとか、オープンソースだから悪いということでないということで、プロジェクトの規模や予算に合わせてどちらを利用していくかを検討すればいいということです。
自動化を実現していくにはテストチームだけではできません。開発チームあるいは開発担当者の協力がなければテストの自動化のメリットは生まれてきませんので、その体制作りのためにもまずはJameleonではじめてみるというのもいいでしょう。
次回に向けて
次回はこの連載の締めくくりとして自動化のメリットとデメリットを再度説明し、自動化を行う際のポイントを解説したいと思います。
関連記事
- developersLife〜開発者という生き方
- 特集第1回:テストをどう考えていますか?
- 特集第2回:テストの計画をまとめる
- 特集第3回:テストを設計するには(その1)
- 特集第4回:テストを設計するには(その2)
- 特集第5回:テストを設計するには(その3)
- 特集第6回:カバレージを考慮した機能試験の自動化(その1)
- 特集第7回:オープンソースの自動化テストツール「Jameleon」の概要
- 特集第8回:Jameleonを使ったテスト
- QAの革新なくしては、世界水準のソフトウェアはつくれない
関連リンク
Copyright © ITmedia, Inc. All Rights Reserved.