|
||||||||||||||||||||
| 前のページ 1 2 3 次のページ | ||||||||||||||||||||
| Seleniumの特徴 | ||||||||||||||||||||
|
先ほどは「テストの自動化ツール」という面からSeleniumをみてきましたが、実はその他にも様々な特徴を持っています。 |
||||||||||||||||||||
| マルチOS/マルチWebブラウザ対応 | ||||||||||||||||||||
|
Seleniumの大きな特徴の1つが、マルチOS/マルチWebブラウザ対応です。 「マルチOS/マルチWebブラウザ」というのは、1つのテストコードに対して複数のOSやWebブラウザで実行することができるという意味です。これは特にWebブラウザの互換性を重視する場合に重宝する機能といえるでしょう。 もし複数のWebブラウザで動作を確認したい場合、いちいちWebブラウザを変えて同じ試験項目をテストしなければなりません。それがSeleniumでは基本的にテストケースができあがっていれば、それぞれのWebブラウザで実行するだけでよいのです。 例えばInternet Explorer(IE)でもバージョンが違うIE 5.5とIE 6.0で動作確認をする必要がある場合も、同様に同じテストケースをそれぞれ実行すればよいというわけです。 SeleniumのWebサイトをみると、2007年3月下旬現在の最新版バージョン0.8.2では以下のOS/Webブラウザに対応していることがわかります。
表1:Seleniumに対応しているOSとWebブラウザの種類 もちろんSeleniumの動作がWebブラウザによって多少違う部分もあり、例えばSafariでは一部正常に動作しないコマンドがあるなど、100%の互換性が保障されているわけではありません。しかし今後の修正によって、Webブラウザ間での互換性の精度は今後より高まっていくと思われます。 |
||||||||||||||||||||
| 理解しやすいコマンド体系とアプリケーションの言語に依存しないHTMLによるテストコード | ||||||||||||||||||||
|
Seleniumを動作させるためのテストコードは、基本的にはHTMLで記述します。テスト即ちWebブラウザの操作および検証する内容は、3カラムのtableとして記述し、1行が1手順を示します。 例えば、以下のログインテストの項目を考えてみます。
上記の項目に対して、以下のようなtableをHTMLで作成します。tableの各行が上記の各手順に対応していることがわかると思います。
表2:HTMLで作成するtable HTMLで記述することにはいくつかの利点があります。それはコードの1行が1手順をあらわしているため、手動での操作手順と対応させやすいこととや、3カラムしかないためコマンド体系が理解しやすいことがあげられます。 また、テストコードがHTMLで書かれているということは、アプリケーション側の言語が何であるかを問わないということです。極論すれば、利用者(Webブラウザ)からみたHTMLコードが変わらない限り、サーバサイドの言語がまったく別のものになったとしても、同じSeleniumのテストコードを動かすことができるのです。 つまりHTMLを利用することは、これはアプリケーションの開発者でなくても(アプリケーションの作りを知らなくても)テストコードを書けるということを意味しています。HTMLは汎用性の高い言語ですので、比較的多くの人が扱えることも一役買っているといえるでしょう。 実際、筆者はPHPに関しては初心者なのですが、PHPで実装されたXOOPSというCMSのサイトに対してアプリケーションの中身をほとんど見ることなく、100数十項目におよぶSeleniumのテストコードを作成したことがあります。 |
||||||||||||||||||||
| より柔軟度が高い開発言語によるテストコード | ||||||||||||||||||||
|
HTMLによるテストコードはわかりやすく汎用性も高いのですが、複雑なことを記述するにはあまり向いていません。例えばログインなど定型的な動作をメソッドとして分離させて、元のテストコードから呼び出すといったことができません。複数のテストコードで同じ処理をしている場合、いちいち同じ記述を書かなくてはなりません。 これを簡単に記述したいというリクエストに応えてSeleniumでは開発言語を使ってテストコードを書くことも可能です。 対応している言語はJava、C#、Ruby、PHP、Perl、Pythonと多岐に渡ります。 テストコードを書く際に開発言語を使うことで、ログイン処理などの定型的な共通処理を別のメソッドとして切り出し、各テストケースからはメソッドを呼び出すだけで事足ります。定型処理の内容が変更になった場合の修正も簡単です。またループ処理によって同じ操作の繰り返しや、あまりないかもしれませんがif文による判定処理なども記述することが可能となります。 開発言語を使ってテストコードを書く場合、各言語のテスティングフレームワークと連携して記述します。例えばJavaの場合ならJUnitのテストケースとして記述・実行することになります。つまりJUnitのテストケースとしてIDE上からテストを実施できるのです。またantやmavenのタスクとして登録することで夜間実行するバッチ処理的なテストも実施できます。 一方、テストコードのわかりやすさや見易さはHTMLでの記述に比べて劣ります。コマンド体系はHTMLの書き方に準じるため比較的シンプルではあるものの、開発言語ならではのコーディング手法など、その言語に通じている人でないと若干理解しにくい面もあります。 こういった側面に応じられるようSeleniumではHTMLと開発言語それぞれの特徴によって、各プロジェクトの事情に合わせたテストコードを作成することができるようになっています。 |
||||||||||||||||||||
|
前のページ 1 2 3 次のページ |
||||||||||||||||||||
|
|
||||||||||||||||||||
|
|
||||||||||||||||||||
|
||||||||||||||||||||
|
|
||||||||||||||||||||
|
||||||||||||||||||||
|
|
||||||||||||||||||||
|
||||||||||||||||||||

