テスト自動化
2023年8月に開催されたCEDECにおけるAI・自動化関連の講演まとめ
Webアプリケーションのテストを自動化したいときに、まず名前が挙がるのがSelenium(セレニウム)です。Seleniumを使えば、Webアプリケーションのテストを簡単に自動化できます。一方で、Webブラウザの操作以外は自動化できないなど、いくつかの点には注意しなくてはなりません。
この記事では、Seleniumの概要やメリット、注意点、種類についてわかりやすく解説しています。これからSeleniumを使ってテスト自動化を進めたいと考えている方は、この記事を参考にしてください。
Seleniumとは、Webアプリケーションのテストを自動化するオープンソースのテストフレームワークで、ジェイソン・ハギンズ氏によって2004年に開発されました。Seleniumは人に代わって、あらかじめ指定したWebブラウザの操作を実行しテストを支援します。
テスト用のスクリプトは、実際に人がWebブラウザを操作した内容を記録して作成することが可能です。独自のスクリプト言語や、一般的なプログラミング言語を使って作成する方法もあります。
テスト自動化ツールのなかで、Seleniumはどのような特徴があるでしょうか。ここでは、Seleniumの主な特徴を1つずつみていきましょう。
Seleniumは操作を理解しやすい上に、Webブラウザの操作に特化して作られているため学習すべき内容が限られています。プログラミング初心者でも、比較的簡単に使うことが可能です。
また多くのユーザーに長く使われ続けているので、サンプルコードが豊富でインターネットから情報を見つけやすいのも特徴といえます。これらの理由で、学習コストを抑えられる点もメリットです。
Seleniumは、幅広いプラットフォームやプログラミング言語に対応しています。そのため、様々な環境やケースに活用することができます。
Seleniumが対応する主なプラットフォーム・プログラミング言語は以下の通りです。
OS | Windows・MacOS・Linux |
---|---|
ブラウザ | Google Chrome・Edge・Firefox・Safari・Opera |
プログラミング言語 | Java、JavaScript、Python、Ruby、C# |
SeleniumはUI要素の特定や、テストの期待値とアプリケーション動作との比較など豊富なオプションを備えています。そのため、様々な種類のテストに活用できる点も大きなメリットです。
Seleniumはオープンソースなので、無料で使い始められます。また前述の通り簡単に使えて、学習コストも多くはかかりません。
テスト自動化ツールの中には、非常に高額なツールも多いです。それらツールを導入するのに比べSeleniumはイニシャルコストが低く、スモールスタートしやすいのもメリットと言えます。使い始めてみて、仮に失敗しても大きな損害になることもありません。
Seleniumは複数のコンポーネントから成り立っており、各コンポ―ネントの役割が異なります。以下、そのなかでも主なコンポーネントの概要をみていきましょう。
Seleniumの中でも最初にオープンソース化されたのが、Selenium RC(正式名称:Selenium Remote Control)です。名前の通りSeleniumで作成したテストを遠隔操作するためのツールです。Selenium RCでは、作成したJavaScriptをテスト対象のWebページに埋め込んでWebブラウザを操作します。
長い期間Seleniumプロジェクトの主力製品でしたが、仕組み上セキュリティ的な制限を受けるなどの欠点があったことから、後述するSelenium WebDriverのリリースに伴い公式でも非推奨となりました。
Selenium WebDriver は、Selenium RCとWebDriverを統合させる形で2009年にGoogleが開発したテストフレームワークです。Webブラウザを自動的に操作するという機能面ではSeleniumRCと変わりませんが、Selenium WebDriverでは、ブラウザの拡張機能やOSの機能を利用しブラウザを操作します。そのためSelenium RCのように、セキュリティ的な制限を受けることがありません。
Selenium IDEは、機能テストの記録や編集、デバッグを行うことができるSeleniumスクリプトの統合開発環境(IDE)です。Selenium IDEは、FifefoxのアドオンやChromeの拡張機能として提供されています。
Selenium IDEを使うことで、人が行ったブラウザの操作を記録し、その内容でテストを自動化することが可能です。Selenium WebDriverはプログラミングの知識が必要ですが、Selenium IDEはプログラミング知識がなくても利用できます。
Selenium Gridは複数のSelenium実行環境を一元的に管理して、複数のマシンで並列的にテストを実行するためのツールです。Selenium Gridを使うことで、テストにかかる時間を大幅に短縮することができます。ブラウザとOSの様々な組み合わせで、テストをする必要があるときなどにも有効です。
Seleniumを利用するのにあたっては、いくつかの注意点があります。
まず当然ですが、SeleniumはあくまでWebブラウザの操作に特化したツールであり、それ以外のことはできません。他の内容について自動化したい場合は、別のツールを用意する必要があります。
またWebのUIがわずかでも変更されると、Seleniumで作った自動化テストが使えなくなる可能性も注意しなくてはなりません。その分だけ、メンテナンスのコストが発生することになります。
Webブラウザの操作を自動化できるSeleniumは、テスト自動化以外の用途で使われることもあります。よくあるのが、RPA※ソフトとしての使い方です。
※RPA
人がコンピューターを使って行う作業を、ロボット(ソフトウェア)によって自動化すること
SeleniumはRPAソフトとして作られたわけではありませんが、Webブラウザの操作を自動化することからブラウザ操作に特化したRPAを実現できます。無料で簡単に使える点も、SeleniumがRPAとしても使いやすい理由です。
SeleniumはWebブラウザの操作を自動化し、Webアプリケーションのテストを支援するオープンソースのツールです。Seleniumは簡単に使える上に様々なフラットフォームに対応していることから、多くのユーザーに使われ続けています。
豊富なオプションを備え、様々なテストに対応できる点もSeleniumのメリットです。一方でWebブラウザの操作以外は実行できない点は、Seleniumのデメリットといえます。またWebのUIが少しでも変更されると、メンテナンスしなければならなくなる可能性がある点も注意しなくてはなりません。
テスト自動化
2023年8月に開催されたCEDECにおけるAI・自動化関連の講演まとめ
テスト自動化
【テスト自動化ツール】Airtestとは?概要と主な特徴、使い方をわかりやすく解説
テスト自動化
【テスト自動化ツール】mablとは?概要や特徴、使い方を分かりやすく解説
イベント・セミナー
【QA Tech Nightレポート】ゲーム開発・テスト・運用へのAI・ボットの活用 ~マイクロソフトのゲーム開発スタジオの事例~
テスト自動化
【テスト自動化ツール】Autify(オーティファイ)とは?特徴やプラン、使い方を解説
テスト自動化
【テスト自動化ツール】MagicPodとは?特徴と使い方をわかりやすく解説