Seleniumの動作要件
Seleniumを動作させるためには以下の要件が必要です。
| 項目 | 内容 |
| (サーバサイド) | |
| OS | Windows、MacOS、またはLinux。 |
| Webサーバ | Webサーバ全般。Apache、IISなど種類問わず。 |
| テスト対象アプリケーション | Webアプリケーション全般。言語に依存しない。 |
| (クライアントサイド) | |
| OS | Windows、MacOS、またはLinux。 |
| ブラウザ | JavaScriptが動作可能であること(互換一覧を確認のこと)。 |
体験してみよう
では、Seleniumがどのようなものか体験してみましょう。Seleniumの公式サイトでデモが公開されています。ブラウザで以下のWebページにアクセスしてください。
すると図4のような画面が表示されます。これがSeleniumのテストを実行する画面(TestRunner画面)です。
画面説明
SeleniumのTestRunner画面は以下の構成になっています。
| 場所 | 説明 |
| 画面上部左側 | TestSuiteと呼ばれる、テストケースの一覧です。ここでテストケースをクリックすると、画面上部中央にそのテストケースの内容が表示されます。 |
| 画面上部中央 | 現在の実施対象テストケースです。そのテストケースで動作検証する内容について表示されています。 |
| 画面上部右側 | テストの実行を指示したり、テスト結果を表示する制御部分です。 |
| 画面下部 | Seleniumがテストをして動かすWebアプリケーションが表示されます。 |

操作方法
- まず、画面上部左側のTestSuiteに表示されている項目(テストケース)をクリックしてください。
- テストケースをクリックするたびに画面上部中央に表示される内容が変わることを確認してください。
- TestSuiteで適当なテストケースをクリックして選択したら、画面上部右側の[Selected]ボタンを押してください。[Run]/[Walk]/[Step]というラジオボタンはRunのままで結構です。
- すると、画面上部中央と画面下部が自動で動いていきますね!
- 現在実行中の動作 …… 水色
- 検証OKの項目 …… 薄緑
- 検証NGの項目 …… ピンク
- それでは次に、画面上部右側の[All]ボタンをクリックしてみてください。今度は、TestSuiteの全テストケースが連続して実行されます。
検証結果
各テストケースにおける検証項目は上述したように、テスト実施するとその結果に応じて着色されます。また、実行したテストケースおよび項目(コマンド)に対する成功/失敗の件数統計が画面上部右側に表示されます。
Seleniumを利用するメリット
Seleniumを利用するメリットをまとめておきましょう。Seleniumを利用する最大のメリットは、回帰テストが低コストで実施できることです。
SeleniumはWebアプリケーションテストを自動化するツールです。テスト自動化ツールは、一度動作するテストコードを書いてしまえば、自動化したテストを繰り返し実行することができます。従って、バグを修正した際に、該当箇所のテストを実施するだけでなく回帰テスト(リグレッションテスト)として全テストを再実施することが容易に行えます。
最初に、テストコードを作成する初期コストはかかりますが、テストを繰り返して実行する頻度が上がれば上がるほどメリットが大きくなります。

また、完成しているアプリケーションに機能追加をする場合、機能追加分については新たにテストコードを作成(修正)する必要がありますが、既存部分については作成済みのテストコードを使用して回帰テスト(リグレッションテスト)を容易に実施することが可能です。

最も一般的に行われるのは、プログラムのバグを修正したことによって、そのバグが取り除かれた代わりに新しいバグが発生していないかどうかという検証である(IT用語辞典e-Wordsより)。
Selenium利用時の注意点
Selenium利用時の注意点として以下の3点が挙げられます。
- 初期コストが非常にかかる
- 仕様変更時、対応コストがかかる
- 完全なブラウザ互換ではない
以下、詳しくみていきます。
(1)初期コストが非常にかかる
JUnitなど他のテスティングフレームワークと同様に、テストを実施するためのテストコードを作成する必要があります。その初期コストはかなり大きく、回帰テストをまったく、もしくはほとんど実施しない場合、Seleniumを使用しない方が工数がかかりません。

(2)仕様変更時、対応コストがかかる
仕様変更でソースおよび試験項目が修正になる場合、テストコードを変更しなければならない場合があります。その場合テストコード修正の対応コストが発生し、場合によってはSeleniumを利用しない方が工数がかからないこともありえます。

テストケースを書き直す条件については、今後掲載を予定している「Selenium 0.7 Tips」を参照してください。
(3)完全なブラウザ互換ではない
Seleniumの特徴としてブラウザ互換性を挙げました。ただし、現状では完全な互換性があるわけではありません。異なるブラウザでは、動作が異なることがあります。
例えば、表示された文字列の検証を行う手順において、IEでは検証OKとなるのに、Firefoxでは検証NGとなる場合があります。そのため、複数のブラウザに対して試験を実施しなければならない場合、余計な工数がかかったり、最悪の場合、実施できない試験項目が発生することがあるので注意が必要です。

ブラウザに対して異なる動作になってしまうのは、Seleniumの内部JavaScriptで作成されたコマンドがブラウザ間で異なって解釈されてしまうためです。
これに対して、バージョン0.7.0ではブラウザ間の互換性が高まりました。まだ完全ではありませんが、将来的にすべてのコマンドについてブラウザ間で同じ動作をするようにアップグレードされれば、一つのテストコードで複数のブラウザに対してテストを実施することが可能となり、非常に効率化を図ることができると考えられます。

