ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog

テクノロジー

Seleniumを使用したテスト自動化の取り組みを紹介します

はじめに

こんにちは。
マーケティングソリューションカンパニー開発本部 エンジニアの太田邦昭です。
Seleniumを使用したテスト自動化の推進及びサポートを主な業務としています。

本記事では、Webブラウザーを使ったアプリケーションのテストを自動化するオープンソースソフトウエアである『Selenium』を使用したテスト自動化の取り組みを事例を交えながら紹介します。

Seleniumとは

まず最初にWebブラウザーを使ったアプリケーションのテストを自動化する『Selenium』の概要ついて説明します。
Seleniumは、Webブラウザーを使ったアプリケーションのテストを自動化するオープンソースソフトウエアで、2004年にアメリカにあるThoughtWorks(ソートワークス)社で働いていたJason Huggins氏によって開発された社内向けテストツールが元になっています。
2011年には、Google(グーグル)社が開発していた『WebDriver』との統合が図られ、『Selenium WebDriver』(Selenium 2)としてリリースされました。
現在は、W3Cで『Selenium WebDriver』で使用されている"WebDriver Wire Protocol"の標準化作業が進められています。

Seleniumの主な特徴

現在、リリースされている『Selenium WebDriver』は以下のような特徴を持っています。

◎自動ユーザーインターフェース操作

ユーザーインターフェースを自動で操作してテストを行うことができます。

◎マルチブラウザー対応

さまざまなブラウザーでテストを実行することができます。(2014年9月16日現在)
このブログを執筆している2014年9月16日現在、下記のブラウザーをサポートしています。
なお、最新のサポートブラウザー及びバージョン情報については、Seleniumの公式ホームページ(http://www.seleniumhq.org)で確認することができます。

ブラウザー名
Internet Explorer
Firefox
Chrome
Safari
Opera

◎複数言語対応

さまざまな開発言語でSeleniumのテストスクリプトを作成することができます。(2014年9月16日現在)
2014年9月16日現在、下記の開発言語をサポートしています。
なお、最新のサポート開発言語については、Seleniumの公式ホームページ(http://www.seleniumhq.org)で確認することができます。

言語
Java
C#
Python
Ruby
JavaScript (Node)

Seleniumを支える2大コンポーネント

Seleniumにはさまざまなコンポーネントが存在しますが、その中で社内でテストスクリプトの作成及びテスト実行の際に特に大活躍している2大コンポーネントについて紹介します。

◎Selenium IDE

Selenium IDEは、ユーザーのブラウザー操作を記録して、そこからSeleniumのスクリプトを生成するFirefoxのアドオンです。
このツールの登場でテストスクリプトの作成がより簡単に作成できるようになりました。
ユーザーのブラウザー操作を記録してスクリプトを生成するという性質を持つため、プログラミング言語に不慣れなユーザーがSeleniumを使うためのツールとして、現在でも広く利用されています。
社内においてもちょっとした定量的な作業を自動化したい時などにSelenium IDEを使用してテストスクリプトを作成し運用している部署もあります。
もちろん本格的なテストスクリプトの作成も当然ながら行うことができます。
SeleniumIDE概要

◎Selenium Grid2

異なるブラウザー、オペレーティングシステム、およびマシン間で複数のテストの並行実行に特化しているコンポーネントです。
主な特徴として、
・Selenium Grid2にクライアントノードを登録しておくことで、テスト実行時に、Selenium Grid2が自動で空きノードを割り当て分散実行する
・簡単にブラウザー×プラットフォームの膨大な組み合わせに対してテストを実行することができる
があり、異なるブラウザー、プラットフォーム、およびマシン間でのテストを同時に並列で行うことができるため、テスト時間短縮に大幅な効果を発揮します。
社内においてもSelenium Grid2を使用して、テストスクリプトは共通で、異なるブラウザー、プラットフォーム、およびマシンに対してテストを並列に同時実行してテストを行っています。
Grid2概要

Seleniumを使用したテスト自動化の事例紹介

Selenium使用したテスト自動化の事例として広告表示確認テストの自動化を紹介します。
皆さんがYahoo! JAPANのホームページを開いた時に目にする広告の表示確認テストにSeleniumが大活躍しています。
広告の表示確認テストは、広告が指定されたポジションにきちんと表示されているか、広告のリンクが切れていないか等の作業をInternet Explorer、Firefox、Chrome等のさまざまなブラウザーを起動して行う必要がありました。
また、テスト実行前に行わなければいけない設定作業もあり、なおかつ、テスト件数も大量にあるため、手作業にて全てを終えるには一週間ほどかかってしまうこともありました。
そこで、Seleniumを使用してテストの自動化を図り、一週間ほどかかっていたテスト期間を一日以内に短縮することができました。

最後に

今回は、Seleniumの概要とYahoo! JAPAN社内でのSeleniumを使用したテスト自動化の取り組みを事例として紹介しました。
今回は、Webブラウザーを使ったアプリケーションのテスト自動化のお話でしたが、次回は、モバイルアプリケーションのテスト自動化の取り組みについてご紹介したいと思います。

こちらの記事のご感想を聞かせください。

  • 学びがある
  • わかりやすい
  • 新しい視点

ご感想ありがとうございました

このページの先頭へ