【GUIテスト自動化】Squish vs Selenium

この記事はSquish vs. Selenium for automated testing – What are the differences?の抄訳です。

SquishとSeleniumはどちらも優れたGUIテスト自動化ツールです。しかし、実際にどちらをプロジェクトに使うべきかを判断するためには、まず両者の違いを理解することが重要です。

ここでは、この2つのツールを比較し、その違いや固有の機能を紹介することで、十分な情報を得た上での決断の一助となればと思います。

概要: Squish vs. Selenium

どちらのツールが自分にとって最適な自動テストツールかを判断するためには、まず各ツールのユースケースを知ることが不可欠です。

Squishとは?

Squishは、Froglogic社が開発したクロスプラットフォームのGUIテスト自動化ツールで、ユーザーから高い評価を受けています。2021年、The Qt CompanyがFroglogicを買収し、Qtの製品ポートフォリオのひとつとして統合されました。これによりThe Qt Companyは、GUIソフトウェアの開発からテストまでをカバーするプラットフォームを顧客に提供することが可能となりました。Squishは、JavaScriptやその他の言語で書かれたテストスクリプトの記録を可能にし、プロパティベースのオブジェクト識別機能を提供します。さらにSquishは、さまざまなブラウザ、オペレーティングシステム、プラットフォームに対応しています。

Seleniumとは?

Seleniumは、複数のプラットフォームやブラウザでウェブアプリケーションを検証するために使用できる、オープンソースの自動テストツール群です。複数のプログラミング言語をサポートし、さまざまなブラウザ、オペレーティングシステム、およびプラットフォームで動作します。

2つの自動化ツールの主な相違点

ソフトウェアの種類

Seleniumはオープンソースの技術であるため、無料で一般に公開されていますが、実際に利用する際にはコストが発生しがちです。Selenium WebDriverやCodeDriverのようなプラットフォームには多くの制限があり、特定のコーディングスキルを持つソフトウェアエンジニアに依存する必要があり、そこで雇用コストがかかります。さらに、Seleniumは単一要素の識別子を使用しているため、Selenium IDEで識別子を変更すると、テストケース内のすべての該当箇所にその変更を適用する必要があります。

一方、Squishのような商用ソフトウェアにアクセスできるのは、有償のライセンスを持つユーザーだけです。しかし、Squishはデスクトップからモバイルアプリ、Webサイト、組込みアプリまで、あらゆるタイプのアプリケーションのテスト自動化をサポートしています。また、Object Map機能を搭載しているため、識別子の変更をテストケース全体に手動で反映する必要はありません。

技術的観点

Squishは、マルチブラウザテストやBDD(振る舞い駆動開発)をサポートしています。また、Gherkin記法(BDDで使用する言語)と完全な互換性を持っているため、低レベルのイベントではなく、高レベルのアプリ操作として、テストケースを自然言語で記述することも可能です。テストケースの録画機能では、オブジェクトの自動的な検出とテストスクリプトの自動生成を行います。これらの機能により、BDD GUI テストの作成、記録、保守、トラブルシューティングを行うことができます。さらに、多くの異なるスクリプト言語を使ってテストスクリプトの生成/記述が可能で、Perl、Python、JavaScript、Tcl、そしてRubyを使用することができます。またSquishは、Java、Qt、Windows、Web、Android、iOSで実装されたアプリケーションのGUIテストを自動化することが可能です。

Seleniumは、Webアプリケーションのテストの自動化にのみ使用され、マルチブラウザ(Chrome、Safari、IE、Opera、Edge、Firefox)をサポートしています。Selenium WebDriverは、自動テストの潜在的な問題に対する解決策を複数提供します。ロケータ機能は、複雑なWebコンポーネントをナビゲートする際に便利です。また、SeleniumはPython、Java、C-Sharp、JavaScript、Ruby、PHP、 Perlをサポートしています。Seleniumはポータブルなテストツールではあるものの、Windowsアプリに対しては動作しないことがあることや、画像を使ったテストとレポート生成の面でかなり機能が制限されているという意見も散見します。

IDE

Squishは安定していてかつ使いやすい統合開発環境(Squish IDE)を提供しており、ほとんどのユーザがテストの作成、管理、実行に使用しています。Squish IDEとEclipseベースのIDEはGUIテストのプロセスを簡素化し、ユーザーが迅速かつ容易にテストを行えるようにします。

SeleniumのテストスイートにはSelenium IDEが含まれており、これは基本的にSeleniumテストケース記録かつ実行のためのツールです。Webサイトとのインタラクションも記録することができ、Google ChromeやFirefoxの拡張機能としてインストールすることができます。

顧客サポート

Squishをご利用のお客様には、技術的な問題を効率的かつ迅速に処理するアクティブカスタマーサポートをご用意しています。ライセンス契約により、48時間以内にサポートエンジニアからの応答が保証されているため、問題を一人で抱え込む心配はありません。

また、Squishの公式サイトでは、ガイドや技術資料など、ユーザーに役立つ多くのリソースを提供しています。

Seleniumはカスタマーサポートシステムを持っていませんが、その代わりにユーザーコミュニティを提供しています。ユーザーは、公式ユーザーグループを閲覧して、他の人が既に解決したであろう問題の解決策を探すことができます。IRCチャットルームも、即座に解決したい問題がある場合に利用できます。しかし、そこで助けを得ることができるかどうかは、運に左右されます。

これは、Seleniumを使用している企業にとって、適切なカスタマーサポートに頼ることなく、問題を解決するためにユーザーが自身の作業時間を費やさなければならないため、予期せぬ隠れたコストを引き起こす可能性があります。

テストスクリプトの自動生成

Squishでは、Seleniumとは異なり、テストケース録画機能によってスクリプトを自動生成することができます。これにより、生成後に容易にリファクタリングや調整が可能なスクリプトを手軽に得ることができるようになります。テストスクリプトを自動生成することで、ユーザーは生成コードに対してわずかな調整を行うだけで、テスト作成に費やす時間を短縮することができます。しかし、もっと手を動かして自分でコードを書くのが好きな人は、テストスクリプトを手で書いていくことも可能です。

BDD(振る舞い駆動開発)

Squishは、BDD(振る舞い駆動開発)をサポートしています。BDDの主な利点は、サイクルタイムを短縮することでテストプロセスを簡素化できることや、スクリプトベースの従来のテストと比較して専門的な知識を必要としないことです。

Squishは、広く使われているBDDのための言語であるGherkin記法と完全な互換性があります。テストケースの録画/再生機能と組み合わせることにより、BDDのテストケースも簡単に作ることが可能です。

Seleniumにはそのようなサポートはありません。その代わり、Cucumberのような外部のBDDフレームワークを利用する必要があります。

オブジェクトの識別

どちらもxpathによるオブジェクト識別を提供しますが、Squishのマルチプロパティベースのオブジェクト識別は、DOM構造に依存しないため、より信頼性が高いです。

セットアップの容易性

Seleniumでは、まず、EclipseのダウンロードやJavaの設定など、基本的な設定が完了していることを確認する必要があります。その結果、Seleniumの環境をセットアップするのに時間がかかることがあります。また、Seleniumは自動化フレームワークをセットアップする必要があるため、コーディング経験がないユーザーにとっては困難となりえます。

一方、Squishは、Eclipseベースの安定したIDEを備えており、簡単に使い始めることができます。

使いやすさ

ユーザーからは、セットアップの簡単さに加え、Squishの録画と再生機能が非常に使いやすく便利であるとの評価を得ています。これは、Squishはコードをあまり書かない人にとっても、より適した選択肢となりえると言えるでしょう。

使いやすさの面では、Selenium はコーディングの経験がないと習得が難しいかもしれません。つまり、コードを書くのに必要な技術的なスキルがない場合、コードを書くことができる人のサポートが必要になります。

レポート機能

Selenium には、テスト実行に関するレポート作成オプションがほとんどありません。さらに、組み込みのレポート機能もありません。

Squishには、Test Centerと呼ばれるかなり高度なレポート管理ツールがあり、プロジェクトの過程でテスト結果を整理、追跡、分析するための中心的なハブとして機能します。現時点では、Squish Tester Subscriptionを1つ購入すると、Test Centerを2ライセンス分無償で利用することができます。

ビデオ録画機能

Squishは、テストの記録とデバッグのために、テスト実行中の画面をビデオで録画することができます。ビデオでキャプチャすることで、よりダイナミックな視点、特にテストの失敗を分析するための洞察を得ることができます。

Selenium WebDriver は、対照的に、テストケースの実行中にビデオを記録するための機能を有していません。しかし、ウェブ上で利用可能なさまざまなツールを使って、自分で実装することは可能です。

Squishを利用するメリットのまとめ

Squishは、テストの自動化プロセスの簡素化を実現するために特別に設計されています。

  • すべての主要な GUI テクノロジーをフルサポート
  • PC、モバイル、ウェブ、組込みの各プラットフォームとの完全な互換性
  • テストスクリプトの録画と自動生成
  • 堅牢なオブジェクトの識別と検証方法
  • BDD(振る舞い駆動開発)をサポート
  • 強力な統合環境

なぜSquishがGUIテストに最適なのかについて、詳細をさらにご確認されたい方は、こちらの記事をご覧ください。

あなたに適したツールはどちらか?

SquishとSeleniumは、どちらも強力なGUIテストツールです。

Squishはセットアップを迅速に行うことができ、自動化をより簡単かつ迅速に行うための多くの機能を提供します。Seleniumの主な使用例は、Webアプリケーションのテストです。オープンソースのテスト自動化プラットフォームとして、Seleniumは、テスト担当者が(ライセンスコストがないため)少ない初期プロジェクトコストでWebアプリケーションを評価することを可能にします。しかし、人件費やメンテナンスのための継続的な予算が必要なため、総コストは大幅に高くなる可能性があります。

一方、Squishは効率性、柔軟性、アジャイルな自動化を実現します。Squishは、Webテスト、ユーザーインターフェイステスト、機能テスト、回帰テスト、キードリブンテストなど、さまざまな種類のテスト形式に対して使用することができます。それに加えて、Squishはクロスプラットフォームでもテストでも真価を発揮します。Web + Windowsのような組み合わせをテストしたいユースケースにとって、これは最適な選択肢となり得ます。レスポンスタイムの保証に関しては、サポートリクエストに対して48時間以内にサポートエンジニアが回答を差し上げます。

 

お問い合わせ

SquishをはじめとするQtのQA(品質保証)ツールにご興味のおありの方は、Qt JapanのEメールアドレス:japan@qt.ioまでお気軽にご連絡ください。

概要のご説明から詳細な技術的相談、また無料のツールトライアルのご案内もいたしております。


Blog Topics:

Comments