Qtブログ(日本語)

SquishがGUIテストに最適な理由

作成者: Qt Group 日本オフィス|Feb 9, 2023 1:00:00 AM

GUIテスト自動化ツールSquishは、さまざまなプラットフォームでアプリケーションを簡単にテストすることができます。特に、Qtアプリケーションへのテストではその力を最大限に発揮します。

この記事はWhy Squish is the best choice for GUI testingの抄訳です。

アプリケーションをリリースする前のユーザーインターフェイスのテストは、かつてないほど不可欠になっています。ユーザは、モバイル、デスクトップ、ウェブ、組込みの各アプリケーションに対して、シームレスなクロスプラットフォーム体験を期待するようになりました。また、工場、自動車、そしてキッチンでさえもアプリケーションが動作することが多いため、テストには安全性の側面もあります。

しかし、ユーザーインターフェースのテストは、複雑で苛立たしく、時間がかかるものです。

このため、2021年にQtが買収したfroglogic社のSquishを使用してテストを自動化している企業は、数十の業界にわたって数千社に及びます。Squishを使えば、コードを修正することなく、複数のプラットフォームで機能回帰テストやシステムテストを実行することができます。

 

デスクトップ、モバイル、組込みなどのアプリケーションをテスト可能

 SquishのUIテクノロジー機能は、Windows、Mac、Java、Webベースのアプリケーションに対して、GUIテストの自動化を幅広くサポートします。また、AndroidやiOSなどのモバイルプラットフォーム向けに開発されたアプリケーションのテストもサポートしています。

Squishでテストスクリプトを作成するのは簡単です。Python、JavaScript、Ruby、Perl、Tclなどの標準的なプログラミング言語を使用してテストケースを記述することができます。または、人間が読める言語で記述したGherkin記法のテストケースを通して、振舞い駆動開発(BDD)アプローチでテストすることもできます。

Squishには、録画と再生の機能も組み込まれています。テスターは録画ボタンを押すだけで、アプリ内でテストアクションを実行できます。すると、Squishがこれらのアクションをテストスクリプトに自動的に変換します。Squishを初めて使う際にも、簡単にご利用いただけます。

 

検証テスト、認識テストへの豊富なサポート

優れたGUIテスターは、テストシナリオに関係なく、期待されるテスト結果を検証できるように、様々な検証タイプを使用する必要があります。

Squishでは、オブジェクトのプロパティで検証したり、スクリーンショットで比較したりすることができます。複雑なオブジェクトの場合、コンテンツ、ジオメトリ、トポロジ、外観を視覚的に比較することも可能です。また、Squishは、検索イメージやOCR-Textによる検証を行う機能も備えています。

認識テストのために、Squish GUI Testerは、プロパティベース(デフォルト)、イメージベース認識、およびOCR-テキストベースなど、複数のオブジェクト認識方法をサポートしています。

 

Qt アプリケーションのテストが簡単に行える

Qt アプリケーションを実行できる場所であればどこでも、Squish でテストすることができます。

先に挙げたプラットフォームの 1 つで作成した Qt アプリケーションのテストは、他のどのプラットフォームに対しても、コードの修正なしで実行できます。Squish はこのためにアプリケーションのソースコードを必要としません - テストに必要なのは、顧客が見るであろうバイナリのみです。

標準的なボタンや複雑なメニュー、リスト、テーブルなどの認識に加え、Qt ウィジェット、QML、QtQuick コントロールもサポートしています。Qt WebKit および Qt Web Engine を使用して実装された埋め込み Web コンテンツも認識されます。

Squish は、Qt および QML コントロール、モデル、その他のオブジェクトのすべてのプロパティと関数にアクセスができます。また、テストスクリプトの関数を Qt シグナルや Qt イベントに接続することができるため、テストスクリプトがアプリケーションのシグナルやイベントに反応して処理を行うことができます。

Squishには、タッチ、フリック、スワイプなどの一般的なジェスチャーの自動テストがサポートされています。また、ピンチなど、より複雑なマルチタッチジェスチャーもサポートします。

Squish が力を入れている分野は、Qt IVI モジュールによる車載インフォテインメント(IVI)アプリのテストです。これらの車載機能には、C++ と QML の両方からアクセスすることができます。また、新しい IVI 機能を実装するためのコア API や、すべての車両機能とのインタラクションをテストするための Qt IVI モジュールへのバインディングも用意されています。

おわりに

以上が、記事の内容となります。

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

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