SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine(コードジン) DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Selenium 0.7利用手順書

Selenium 0.7利用手順書(前編)

Seleniumの概要とインストール手順

Seleniumの動作要件

 Seleniumを動作させるためには以下の要件が必要です。

表4 Seleniumの動作要件
項目内容
(サーバサイド)
OSWindows、MacOS、またはLinux。
WebサーバWebサーバ全般。Apache、IISなど種類問わず。
テスト対象アプリケーションWebアプリケーション全般。言語に依存しない。
(クライアントサイド)
OSWindows、MacOS、またはLinux。
ブラウザJavaScriptが動作可能であること(互換一覧を確認のこと)。

体験してみよう

 では、Seleniumがどのようなものか体験してみましょう。Seleniumの公式サイトでデモが公開されています。ブラウザで以下のWebページにアクセスしてください。

 すると図4のような画面が表示されます。これがSeleniumのテストを実行する画面(TestRunner画面)です。

編集部注
 デモのURLが変更になったようなので、Selenium: Selenium DemosのDemo1 [Passing Demo]を参照ください(2007/06/04現在)。なお、インターフェイスなどは執筆時点より若干変更されているようです。

画面説明

 SeleniumのTestRunner画面は以下の構成になっています。

TestRunnner画面の構成
場所説明
画面上部左側TestSuiteと呼ばれる、テストケースの一覧です。ここでテストケースをクリックすると、画面上部中央にそのテストケースの内容が表示されます。
画面上部中央現在の実施対象テストケースです。そのテストケースで動作検証する内容について表示されています。
画面上部右側テストの実行を指示したり、テスト結果を表示する制御部分です。
画面下部Seleniumがテストをして動かすWebアプリケーションが表示されます。
図4 Seleniumのテスト実行(TestRunner)画面
図4 Seleniumのテスト実行(TestRunner)画面

操作方法

  1. まず、画面上部左側のTestSuiteに表示されている項目(テストケース)をクリックしてください。
  2. テストケースをクリックするたびに画面上部中央に表示される内容が変わることを確認してください。
  3. TestSuiteで適当なテストケースをクリックして選択したら、画面上部右側の[Selected]ボタンを押してください。[Run]/[Walk]/[Step]というラジオボタンはRunのままで結構です。
  4. すると、画面上部中央と画面下部が自動で動いていきますね!
  5. 画面上部中央のフレームは、Run実行すると次のように着色されます。
    • 現在実行中の動作 …… 水色
    • 検証OKの項目 …… 薄緑
    • 検証NGの項目 …… ピンク
  6. それでは次に、画面上部右側の[All]ボタンをクリックしてみてください。今度は、TestSuiteの全テストケースが連続して実行されます。

検証結果

 各テストケースにおける検証項目は上述したように、テスト実施するとその結果に応じて着色されます。また、実行したテストケースおよび項目(コマンド)に対する成功/失敗の件数統計が画面上部右側に表示されます。

Seleniumを利用するメリット

 Seleniumを利用するメリットをまとめておきましょう。Seleniumを利用する最大のメリットは、回帰テストが低コストで実施できることです。

 SeleniumはWebアプリケーションテストを自動化するツールです。テスト自動化ツールは、一度動作するテストコードを書いてしまえば、自動化したテストを繰り返し実行することができます。従って、バグを修正した際に、該当箇所のテストを実施するだけでなく回帰テスト(リグレッションテスト)として全テストを再実施することが容易に行えます。

 最初に、テストコードを作成する初期コストはかかりますが、テストを繰り返して実行する頻度が上がれば上がるほどメリットが大きくなります。

図5 テスト工数イメージ(バグを修正してテストを再度実行する場合)
図5 テスト工数イメージ(バグを修正してテストを再度実行する場合)

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

図6 テスト工数イメージ(完成品に機能を追加する場合:既存部分はテストコード作成済み)
図6 テスト工数イメージ(完成品に機能を追加する場合:既存部分はテストコード作成済み)
回帰テスト(別名:regression test、退行テスト、レグレッションテスト)
 プログラムを変更した際に、その変更によって予想外の影響が現れていないかどうか確認するテスト。
 最も一般的に行われるのは、プログラムのバグを修正したことによって、そのバグが取り除かれた代わりに新しいバグが発生していないかどうかという検証である(IT用語辞典e-Wordsより)。

Selenium利用時の注意点

 Selenium利用時の注意点として以下の3点が挙げられます。

  1. 初期コストが非常にかかる
  2. 仕様変更時、対応コストがかかる
  3. 完全なブラウザ互換ではない
 ここで言うコストとは、純粋にテストコードの作成や変更のことを指し、学習コストのことは含めません。

 以下、詳しくみていきます。

(1)初期コストが非常にかかる

 JUnitなど他のテスティングフレームワークと同様に、テストを実施するためのテストコードを作成する必要があります。その初期コストはかなり大きく、回帰テストをまったく、もしくはほとんど実施しない場合、Seleniumを使用しない方が工数がかかりません。

図7 テスト工数イメージ(回帰テストを実施しない場合)
図7 テスト工数イメージ(回帰テストを実施しない場合)

(2)仕様変更時、対応コストがかかる

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

図8 テスト工数イメージ(仕様変更でソースおよび試験項目が変更になる場合)
図8 テスト工数イメージ(仕様変更でソースおよび試験項目が変更になる場合)

 テストケースを書き直す条件については、今後掲載を予定している「Selenium 0.7 Tips」を参照してください。

(3)完全なブラウザ互換ではない

 Seleniumの特徴としてブラウザ互換性を挙げました。ただし、現状では完全な互換性があるわけではありません。異なるブラウザでは、動作が異なることがあります。

 例えば、表示された文字列の検証を行う手順において、IEでは検証OKとなるのに、Firefoxでは検証NGとなる場合があります。そのため、複数のブラウザに対して試験を実施しなければならない場合、余計な工数がかかったり、最悪の場合、実施できない試験項目が発生することがあるので注意が必要です。

図9 テスト工数イメージ(複数のブラウザに対する試験/現状)
図9 テスト工数イメージ(複数のブラウザに対する試験/現状)

 ブラウザに対して異なる動作になってしまうのは、Seleniumの内部JavaScriptで作成されたコマンドがブラウザ間で異なって解釈されてしまうためです。

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

図10 テスト工数イメージ(複数のブラウザに対する試験/将来)
図10 テスト工数イメージ(複数のブラウザに対する試験/将来)
注意
 すべてのコマンドについて、すべてのブラウザで同じ動作をするコマンドが提供される予定があるわけではありません。

次のページ
ダウンロード、インストールと使用準備

修正履歴

この記事は参考になりましたか?

Selenium 0.7利用手順書連載記事一覧

もっと読む

この記事の著者

大田尾 一作(株式会社DTS)(オオタオ イサク)

株式会社DTS イノベーション推進部在籍。業務内容は、FintechやIoT、AIといった新しい領域でのビジネスを推進するための調査・研究。日本Seleniumユーザーコミュニティに参加。   

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/436 2007/06/04 13:21

おすすめ

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー