SHOEISHA iD

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

連載記事

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

翔泳社では、「独習」「徹底入門」「スラスラわかる」「絵で見てわかる」「一年生」などの人気シリーズをはじめ、言語や開発手法、最新技術を解説した書籍を多数手がけています。プロジェクトマネジメントやチームビルティングといった管理職向けの書籍も豊富です。

ITエンジニアとしてのスキルアップ・リスキリングに、ぜひお役立てください。

書籍に関する記事を見る

'); googletag.cmd.push(function() { googletag.pubads().addEventListener('slotRenderEnded', function(e) { var ad_id = e.slot.getSlotElementId(); if (ad_id == 'div-gpt-ad-1659428980688-0') { var ad = $('#'+ad_id).find('iframe'); if ($(ad).width() == 728) { var ww = $(window).width(); ww = ww*0.90; var style = document.createElement("style"); document.head.appendChild( style ); var sheet = style.sheet; sheet.insertRule( "#div-gpt-ad-1659428980688-0 iframe {-moz-transform: scale("+ww/728+","+ww/728+");-moz-transform-origin: 0 0;-webkit-transform: scale("+ww/728+","+ww/728+");-webkit-transform-origin: 0 0;-o-transform: scale("+ww/728+","+ww/728+");-o-transform-origin: 0 0;-ms-transform: scale("+ww/728+","+ww/728+");-ms-transform-origin: 0 0;}", 0 ); sheet.insertRule( "#div-gpt-ad-1659428980688-0 div{ height:"+(90*ww/728)+"px;width:"+728+"px;}", 0 ); } else { if ($(window).width() < 340) { var ww = $(window).width(); ww = ww*0.875; var style = document.createElement("style"); document.head.appendChild( style ); var sheet = style.sheet; sheet.insertRule( "#div-gpt-ad-1659428980688-0 iframe {-moz-transform: scale("+ww/320+","+ww/320+");-moz-transform-origin: 0 0;-webkit-transform: scale("+ww/320+","+ww/320+");-webkit-transform-origin: 0 0;-o-transform: scale("+ww/320+","+ww/320+");-o-transform-origin: 0 0;-ms-transform: scale("+ww/320+","+ww/320+");-ms-transform-origin: 0 0;}", 0 ); sheet.insertRule( "#div-gpt-ad-1659428980688-0 div{ height:"+(180*ww/320)+"px;width:"+320+"px;}", 0 ); } } } }); }); } else { document.write('
'); document.write('
'); }
WebDriverの採用で生まれ変わったOSSのブラウザテストツール「Selenium 2」入門

さよなら手作業・人海戦術! HTML5時代のツール「Selenium2」でWebシステムのテストを自動化

WebDriverの採用で生まれ変わったOSSのブラウザテストツール「Selenium2」入門 第1回

  • X ポスト
  • このエントリーをはてなブックマークに追加

 本シリーズは、WebブラウザをUIとして利用した業務システムやアプリケーション(以下、Webシステム、Webアプリケーション)のテストをテーマとして、Webブラウザを使ったテストを自動化するOSSのツール「Selenium2」を紹介します。業務システム開発の現場で適用してきたノウハウを元に、これまでSelenium2について知らなかった人から以前使った経験がある人まで、より実践的な「使える」内容を盛り込んでいきたいと思います。

  • X ポスト
  • このエントリーをはてなブックマークに追加

本シリーズのスコープと対象読者

 本シリーズはWebシステム・Webアプリケーションのテストの中でも「Webブラウザを操作して実施するテスト」をスコープにしています。開発工程としては、1モジュールとして単体テストに位置付けられる場合もあれば、複数のモジュールやシステムと連携して結合テストや総合テストに位置付けられる場合もあるでしょう。これらのテストのことを、本シリーズでは便宜上「ブラウザテスト」と呼ぶことにします。

 従って、本シリーズの対象読者は、Webシステム・Webアプリケーション開発に関わる方、特にブラウザテストに関わる方です。システムの開発言語は問いませんが、Java、C#、python、Ruby、PHP、Perlのいずれかでテストコードを記述します。

 シリーズ前半はSelenium2というツールの概要を掴んでいただけますので、テストを計画したりプロジェクトをマネージしたりする方にも見ていただければと思います。シリーズ後半はテストを実行していくにあたっての実践的な内容ですので、テストを実行する方が中心です。

Webシステムのテスト(ブラウザテスト)を取り巻く状況と課題

 はじめに、背景として今日のブラウザテストを取り巻く状況と課題を簡単に整理しておきましょう。

複数のブラウザ種類への対応(クロスブラウザ)

 これまでのInternet Explorer(以下、IE)一辺倒ではなくFirefoxやGoogle Chromeのシェア上昇などによって、インターネット上に公開されているWebシステムは勿論のこと、イントラネット上の業務システムであっても「IE6のみ対応」では済まない状況になってきています。複数のブラウザに対応していることを確認しようとした場合、テスト項目は同じでもブラウザの種類に比例してテスト数が増えることになります。

モバイルブラウザの問題

 スマートフォンの爆発的な普及に伴い、場合によってはモバイルブラウザのテストも必要になってきています。また、モバイルブラウザのテストは画面操作やスクリーンショットの取得など、PCブラウザに比べて大きく手間が掛かります。

リグレッションテストへの対応

 追加開発や仕様変更、バグ修正などの際に、改修した部分のテストだけではなく、既存部分にも影響がないことを確認するテスト(リグレッションテスト)は、実施するととても工数がかかります。短納期化が進む中、リグレッションテストを一部またはまったく実施できない実情も少なからず見受けられます。

テストの自動化・継続的統合

 アジャイル開発手法の浸透に伴い、日常的にテスト&ビルドを自動的に実行して短いサイクルで改善していこうという世界的なトレンドが広まっています。

 ブラウザテストはこれまで「手作業・人海戦術」で実施されてきました。ところが上述のような状況・課題に対して「手作業・人海戦術」では対応しきれないことは明白です。そこで、これらの課題に対してテストを自動化することで解決しよう、ということでテスト自動化ツールの出番です。

ブラウザテストの自動化とは

 「Webブラウザを操作して行うテスト」を自動化するというのは、「人間がWebブラウザを操作して」テストを実施する代わりに「テストツールが(テストコードに従って)Webブラウザを操作して」テストを実施するということです。それを行ってくれるのがブラウザテストの自動化ツールであり、今回紹介するSelenium2がその一つというこです。

 Selenium2以外のブラウザテスト自動化ツールには、以下のようなものがあります。

ブラウザテスト自動化ツール(商用)

ブラウザテストの自動化を実例で体験(デモムービー)

 ブラウザテストの自動化を体験するために、簡単な例を考えてみましょう。以下のようなテスト項目があったとします。

項番 項目名 実施内容
CZ-SC-01 検索機能が正常に動作すること
  • モジュールのトップ画面を表示する
  • 検索フォームにワードを入力して検索実行
  • 検索結果画面が正常に表示されること

 よくある検索機能の正常系テスト項目ですね。ここでは例としてCodeZineを題材にして、従来通り手でWebブラウザを操作してテストを実行してみます。テスト項目書には明記されていませんが、テスト実施のエビデンス(証跡)として画面のキャプチャ(スクリーンショット)を取ることが多々ありますので、検索ワードを入力して検索を実行する前と、検索実行後の検索結果画面の2か所でスクリーンショットを取得することにします。

  • CodeZineのトップページを開きます。
  • 右ペインに検索欄があるので検索ワード(例えば”selenium”)を入力し、プリントスクリーン機能や画面キャプチャツールを使用してスクリーンショットを取得します。
  • 「検索」ボタンをクリックします。
  • すると、検索結果画面が表示されました。ここでまた、スクリーンショットを取得します。

 これをSelenium2で実行するとどうなるのか。デモムービーを用意しましたのでご覧ください(約1分、音声はありません)。

 この例は非常に単純なテスト内容でしたが、これが100項目、200項目あったとしたらどうでしょうか。「実施する内容自体は単純だけど、時間がかかる」このような作業こそ自動化するメリットがあることは読者の皆さんはよくお分かりだと思います。

会員登録無料すると、続きをお読みいただけます

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

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

メールバックナンバー

次のページ
Selenium2とは

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

  • X ポスト
  • このエントリーをはてなブックマークに追加
WebDriverの採用で生まれ変わったOSSのブラウザテストツール「Selenium 2」入門連載記事一覧

もっと読む

この記事の著者

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

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

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

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

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/7427 2013/10/25 14:00
" ); }

おすすめ

アクセスランキング

  1. 1
    「オブザーバー・パターン」 ~マンガでプログラミング用語解説 NEW
  2. 2
    3/5まで書籍全文が無料公開 『Pythonで動かして学ぶ!Kaggleデータ分析入門』
  3. 3
    Microsoft、オープンソースのプログラミング言語「TypeScript 5.8」をリリース NEW
  4. 4
    フロントエンドの定番ライブラリ「React 19」の新機能を紹介──React Server Componentsとその他の改善点 NEW
  5. 5
    ゲーム業界で働くプログラマ・エンジニア、8割超が現在の職場のスキル評価に満足 NEW
  1. 6
    変化が激しい時代が抱える「3つのリスク」とは? 塩谷啓氏が語るベテランエンジニアの生存戦略
  2. 7
    GitHub、あらゆるエディタやIDEとGitHub Copilotとの統合を可能にする「Copilot Language Server SDK」を一般公開
  3. 8
    50歳以上のITエンジニアの転職動向はいかに?リクルートが調査 NEW
  4. 9
    Google Cloud、個人向け「Gemini Code Assist」の無償でのパブリックプレビューを開始 NEW
  5. 10
    自律型AIエージェント「JAPAN AI AGENT」、ユーザーによる簡単かつ自由なAIエージェント作成が可能に

アクセスランキング

  1. 1
    「オブザーバー・パターン」 ~マンガでプログラミング用語解説 NEW
  2. 2
    3/5まで書籍全文が無料公開 『Pythonで動かして学ぶ!Kaggleデータ分析入門』
  3. 3
    Microsoft、オープンソースのプログラミング言語「TypeScript 5.8」をリリース NEW
  4. 4
    フロントエンドの定番ライブラリ「React 19」の新機能を紹介──React Server Componentsとその他の改善点 NEW
  5. 5
    ゲーム業界で働くプログラマ・エンジニア、8割超が現在の職場のスキル評価に満足 NEW
  6. 6
    変化が激しい時代が抱える「3つのリスク」とは? 塩谷啓氏が語るベテランエンジニアの生存戦略
  7. 7
    GitHub、あらゆるエディタやIDEとGitHub Copilotとの統合を可能にする「Copilot Language Server SDK」を一般公開
  8. 8
    50歳以上のITエンジニアの転職動向はいかに?リクルートが調査 NEW
  9. 9
    Google Cloud、個人向け「Gemini Code Assist」の無償でのパブリックプレビューを開始 NEW
  10. 10
    自律型AIエージェント「JAPAN AI AGENT」、ユーザーによる簡単かつ自由なAIエージェント作成が可能に
  1. 1
    ITエンジニア本大賞2025、技術書部門とビジネス書部門の大賞が決定!
  2. 2
    iOS・iPadOS 18.3がリリース
  3. 3
    C# 13の新機能を理解する――暗黙的なインデックスアクセスとallows ref struct
  4. 4
    マイクロソフト、VSCodeの新機能「Copilot Next Edit Suggestions」のプレビュー版公開
  5. 5
    AIや統計の数式を解説する美少女VTuber「AIcia Solid Project」生みの親が語る、継続できるアウトプット活動とは?
  6. 6
    3/5まで書籍全文が無料公開 『Pythonで動かして学ぶ!Kaggleデータ分析入門』
  7. 7
    Webはどんどん複雑になっている? これまでのWebシステムのトレンドを振り返る
  8. 8
    Linuxディストリビューション「EndeavourOS Mercury」が一般提供開始
  9. 9
    ITエンジニア本大賞2025のプレゼン大会をレポート、最終決戦に臨んだ本に込められた想いとは
  10. 10
    開発者のOSS活動が会社から評価される世の中にしたい──日立製作所が専門組織設立に込めた情熱

イベント

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

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

メールバックナンバー

アクセスランキング

  1. 1
    「オブザーバー・パターン」 ~マンガでプログラミング用語解説 NEW
  2. 2
    3/5まで書籍全文が無料公開 『Pythonで動かして学ぶ!Kaggleデータ分析入門』
  3. 3
    Microsoft、オープンソースのプログラミング言語「TypeScript 5.8」をリリース NEW
  4. 4
    フロントエンドの定番ライブラリ「React 19」の新機能を紹介──React Server Componentsとその他の改善点 NEW
  5. 5
    ゲーム業界で働くプログラマ・エンジニア、8割超が現在の職場のスキル評価に満足 NEW
  1. 6
    変化が激しい時代が抱える「3つのリスク」とは? 塩谷啓氏が語るベテランエンジニアの生存戦略
  2. 7
    GitHub、あらゆるエディタやIDEとGitHub Copilotとの統合を可能にする「Copilot Language Server SDK」を一般公開
  3. 8
    50歳以上のITエンジニアの転職動向はいかに?リクルートが調査 NEW
  4. 9
    Google Cloud、個人向け「Gemini Code Assist」の無償でのパブリックプレビューを開始 NEW
  5. 10
    自律型AIエージェント「JAPAN AI AGENT」、ユーザーによる簡単かつ自由なAIエージェント作成が可能に

アクセスランキング

  1. 1
    「オブザーバー・パターン」 ~マンガでプログラミング用語解説 NEW
  2. 2
    3/5まで書籍全文が無料公開 『Pythonで動かして学ぶ!Kaggleデータ分析入門』
  3. 3
    Microsoft、オープンソースのプログラミング言語「TypeScript 5.8」をリリース NEW
  4. 4
    フロントエンドの定番ライブラリ「React 19」の新機能を紹介──React Server Componentsとその他の改善点 NEW
  5. 5
    ゲーム業界で働くプログラマ・エンジニア、8割超が現在の職場のスキル評価に満足 NEW
  6. 6
    変化が激しい時代が抱える「3つのリスク」とは? 塩谷啓氏が語るベテランエンジニアの生存戦略
  7. 7
    GitHub、あらゆるエディタやIDEとGitHub Copilotとの統合を可能にする「Copilot Language Server SDK」を一般公開
  8. 8
    50歳以上のITエンジニアの転職動向はいかに?リクルートが調査 NEW
  9. 9
    Google Cloud、個人向け「Gemini Code Assist」の無償でのパブリックプレビューを開始 NEW
  10. 10
    自律型AIエージェント「JAPAN AI AGENT」、ユーザーによる簡単かつ自由なAIエージェント作成が可能に
  1. 1
    ITエンジニア本大賞2025、技術書部門とビジネス書部門の大賞が決定!
  2. 2
    iOS・iPadOS 18.3がリリース
  3. 3
    C# 13の新機能を理解する――暗黙的なインデックスアクセスとallows ref struct
  4. 4
    マイクロソフト、VSCodeの新機能「Copilot Next Edit Suggestions」のプレビュー版公開
  5. 5
    AIや統計の数式を解説する美少女VTuber「AIcia Solid Project」生みの親が語る、継続できるアウトプット活動とは?
  6. 6
    3/5まで書籍全文が無料公開 『Pythonで動かして学ぶ!Kaggleデータ分析入門』
  7. 7
    Webはどんどん複雑になっている? これまでのWebシステムのトレンドを振り返る
  8. 8
    Linuxディストリビューション「EndeavourOS Mercury」が一般提供開始
  9. 9
    ITエンジニア本大賞2025のプレゼン大会をレポート、最終決戦に臨んだ本に込められた想いとは
  10. 10
    開発者のOSS活動が会社から評価される世の中にしたい──日立製作所が専門組織設立に込めた情熱