手動テスト、自動テストなど、何らかのテストを行ったことがある方はSeleniumをご存じだと思います。世界中のQAチームはウェブアプリやモバイルアプリをリリースする前にSeleniumを活用して品質を保証しています。Seleniumはとても優れたツールなのは事実ですが、欠点が多いのも否めません。規模が大きいとSeleniumはメンテナンスが非常に大変だからです。この記事では、テスターの作業効率を格段にアップできる優れたテスト自動化ツールをご紹介します。 「テストエンジニアにとってSeleniumの最大の欠点はテストのメンテナンスに手間がかかることです。」


Seleniumとは?

Selenium テスト自動化ツール

Seleniumは、Webアプリのテストを自動化するためのオープンソースツールです。2004年に開始されたこのプロジェクトですが、ほとんどのDevOpsチームは「テストはSeleniumで」と定着しています。WordPressと似ていて、Seleniumのコア機能の開発にはたくさんのデベロッパーや企業が寄与しています。さらに、ソフトウェアを強化するためにユーザー自身が追加できるプラグインも数多く登場しているという共通点もあります。Java、C#、PHP、Python、Ruby、Perlなどの多くのプログラミング言語に対応しているのはもちろん、オープンソースなので無料で使用できるのも魅力の1つです。

Seleniumはテスト自動化のニーズに応える様々なツールが

Selenium WebDriver

Selenium WebDriverはテストエンジニアが一番頻繁に活用している最も多目的なツールです。ブラウザが特定のタスクを実行するために、テストエンジニアは言語特有のバインディングでテストスクリプトを書くことができます。このツールはノーコードでは利用できないので、コーディングの知識が必要です。ノーコードツールについて詳しくは後程ご紹介します。

Selenium IDE

Selenium IDEはChromeとFirefoxの拡張機能で、ブラウザ操作を簡単に記録・再生できるIDEで、非エンジニアに最適です。

Selenium Grid

Selenium Gridを使うと一度に複数の環境でテストを実行できます。たとえば、パソコンやモバイル端末だけでなく、複数のWebブラウザでもまとめてテストしたい場合はこのツールが役立ちます。

Seleniumはテストメンテナンスが大変!

テストエンジニアにとってSeleniumの最大の欠点はテストのメンテナンスに手間がかかることです。UIに少しでも変更があると、テストが壊れてしまうことがあります。失敗を報告する前にテストが壊れることもあり、そうなると最悪です。単純なUIでも、故障があるとテスターはどこが壊れたのか調査して修正を加えなければならず、かなり工数がかかってしまいます。

たとえば、テスターがECサイトをテストするためにSeleniumスクリプトを作成したとしましょう。[カートに追加]ボタンにIDをセットすると、後で問題が発生する可能性があります。アプリケーションが変更されたり、[カートに追加]ボタンがページに複数あったりすると、テストを実行することはできても後で間違ったボタンが選択すると失敗してしまいます。ちなみに、IDの使用は避け、特定の意味を持つセレクターを使用するのがおすすめです。 上でも説明した通り、スタンダードなチョイスはWebDriverツールですが、これはノーコードでは利用できません。コーディングに精通していなければWebDriverツールはスクリプトの作成に使用できず、非エンジニアには難易度が高すぎます。代わりにSelenium IDEも使用できますが、必要に応じてコードを挿入できないのでエンジニア側に却下されてしまうことが多いものです。

さらに、Seleniumは画像比較やレポートなどの機能が搭載されていないのも欠点です。サードパーティのアドオンで追加することもできますが、ソフトウェアに最初から搭載されている方が便利です。

自動テストツールの王道に重要な機能がないという課題はどのように解決すれば良いのでしょうか?

代わりにおすすめのテスト自動化ツール

Autifyの経営者として、私は顧客のバーニングニーズを解決することを目標としています。企業がお金を払ってでも製品を購入してくれるのはその製品が「バーニングニーズを解決する」からです。売れる製品は基本的に2種類しかありません。

  1. 顧客の利益を上げる製品。
  2. 顧客のコストを下げる製品。

Seleniumは無料ですが、以上の2つの項目に当てはまる有料製品もあり、そのような製品は顧客を獲得できています。

その一例はAutifyです。回帰テストのコストを下げられる製品なのです。AIベースのテスト自動化ツールで、インターフェイスは記録と再生が簡単に行えるように設計されています。誰にでもノーコードで使いこなすことができ、上級ユーザーはJavaScriptのコードを挿入できます。

Autify Recorderは、誰にでも使える簡単で便利なツールです

Selenium IDEの記録・再生ツールとは違い、Autifyは多彩な機能を備えているのが特徴です。テスターが求める以下のような機能があります。

  • 要素の検証

UIで要素に変更があった場合、Autifyのが変更を認識します。スクリーンショットを並べて表示するのでテスターは一目で違いを確認できるのです。

  • 待機ステップ

Seleniumのときにはよく使うsleep, waitなど、Autifyでは自動で行ってくれますが、UI上で明示的に追加することも可能です。

  • 簡単にアサーションを追加

「要素をクリック」など、画面操作を行うだけで簡単にアサーションステップを追加できます。

  • ステップの編集も簡単

Autifyを使えば任意のステップを追加・編集・削除できます。テストスクリプトを最初から再記録する必要がないので時間の無駄はありません!

  • コードを挿入できる

上級者、コーディングも得意な方は、JavaScriptコードをテスト中の任意のステップに挿入できるため、GUIのケイパビリティを拡張できます。

  • レポート

Autifyにはデフォルトで成功・失敗に関する詳細レポート機能が搭載されています。サードパーティのアドオンを追加する必要はありません。

AIがメンテナンスを自動化

AutifyのメンテナンスAI

AutifyではテストのメンテナンスをAIが処理するため、Seleniumのメンテナンスの悩みを解消できます。上のスクリーンショットのテストをSeleniumで作成した場合、失敗したかもしれません。テスターは失敗した理由を解明してから、テストを書き直さなければならないので時間が掛かります。しかし上のスクリーンショットではAutifyを使っています。AIがUIの変更に気付き、テストを続行できました。テスターが変更を確認できるように、スクリーンショットを並べて表示したのです。

失敗したテストをすべて調査する手間を省くことでQAチームがどれほど時間を短縮できるか想像してみてください。その時間を創造的な業務に充てられたら良いと思いませんか?

まとめ

Seleniumはメンテナンスが手間がかかるという課題がありますが、Autifyなどのテスト自動化ソフトウェアはそんな課題を解決してくれます。また、ノーコードで使えるテスト自動化ツールなので、非エンジニアでも使いやすいというメリットもあります。もちろん、上級ユーザーは自分でコードを書いて機能を拡張することもできます。さらにAIでテストメンテナンスを自動化できるのでSeleniumの最大の課題を解決できるのです。
 
Autifyではこの他にも品質保証やテスト、アジャイル開発に役立つ資料を無料で公開していますので、ぜひこちらからご覧ください。