まずはここから!GUIテスト自動化ツール導入のポイントと「Squish」で実践するビヘイビア駆動型テスト
【24-A-3】なかなか実現しないGUIテスト自動化~まずはここから始めましょう!
テストケース作成の工数削減に寄与、GUIテスト自動化ツール「Squish」
ここからは具体的なテスト(品質保証)ツールの1つ、Qt Groupの「Squish(スクイッシュ)」と「Coco」について解説していこう。SquishはGUIテスト自動化ツールで、Cocoはコードカバレッジ分析ツールだ。両者は独立しているため、どちらか片方のみの導入も可能で、別のツールと組み合わせることもできる。
まずはメインのSquishから深掘りしていこう。効率的かつ迅速なGUIテストの自動化を実現するツールだ。テスト対象はデスクトップ、モバイル、組み込み、Webアプリケーションと幅広く対応している。
現状ではQt フレームワークだけではなく、Visual Studio(Windows)、Java、 macOS、iOS(Xcode)、Android Studio、Web(HTML5)、Tk、VNCなど、GUIツールのほとんどを網羅している。それぞれ「Squish for Windows」というように、「Squish for 〜」とエディションが分かれている。
実際にテストを実施する場合にはテストケースを作る必要がある。その点、Squishではアプリ操作のレコーディング機能があり、テストスクリプトを自動生成することができる。具体的には、まずレコーディングボタンを押し、次に実際のアプリケーションを操作することで、その時の操作がスクリプトとして出力される。
ここで出力されるスクリプトの言語はPython、JavaScript、Perl、Ruby、Tclから選ぶことができる。記述方法はプログラム的に順番を記述するものと、後述するビヘイビア駆動型テストの2種類ある。
GUIテストで重要になるのがオブジェクトの認識だ。SquishではObject MapによるObject検索を行うため、位置情報に依存せず、UI Objectが移動しても検索可能だ。このObject Mapの実体はオブジェクトのPropertyとValueのリストとなる。オブジェクトツール内から検索し、特定するという手法をとっている。オブジェクトを特定すると検証ポイントを作成するが、これは先述したようにGUI操作とエディタによる記述のどちらも可能だ。
検証手段は次のように多岐にわたる。オブジェクトのプロパティ検証、画像検証(スクリーンショット取得)、Table検証(RowとColumnのデータを一括で検証)、Visual検証(画像とプロパティのハイブリッド)が可能だ。
こうした機能を持つSquishはEclipseベースの「Squish IDE」と呼ばれる開発環境と各種モジュールから構成されている。実際にユーザーが使うのはSquish IDEで、ここでテストスイートを作成する。起動すると下図のような画面が開き、テストケースやスクリプト、テスト結果が表示されている。
各種モジュールとはsquishrunner、squishserver、squish hookなどがあり、それぞれのプロセスに機能分散されており、TCP/IP通信している。
テスト環境はホストとターゲットが同一の環境に共存するだけではなく、ホストとターゲットが異なる環境に存在するケースも可能だ。後者は主に組み込み機器などになる。またテスト対象となるアプリケーションは1つ(単体)だけではなく、複数のアプリケーションが連携して稼働するような場合でもSquish IDEからテストすることも可能だ。
Squishを導入すると、先述したようなレコーディング機能でテストケース作成工数を削減できることが大きなメリットとなるだろう。テストケースはスクリプトで記述するので機能拡張が容易であり、再利用性も高くなる。高度なオブジェクト認識機能もGUIテストには有利に働くだろう。複数のプラットフォームで動作するアプリケーションや組み込み機器のテストも可能だ。
この記事は参考になりましたか?
- Developers Summit 2024 Summer レポート連載記事一覧
- この記事の著者
-
加山 恵美(カヤマ エミ)
フリーランスライター。茨城大学理学部卒。金融機関のシステム子会社でシステムエンジニアを経験した後にIT系のライターとして独立。エンジニア視点で記事を提供していきたい。EnterpriseZine/DB Onlineの取材・記事や、EnterpriseZine/Security Onlineキュレーターも担当しています。Webサイト:http://emiekayama.net
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
丸毛 透(マルモ トオル)
インタビュー(人物)、ポートレート、商品撮影、料理写真をWeb雑誌中心に活動。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
CodeZine編集部(コードジンヘンシュウブ)
CodeZineは、株式会社翔泳社が運営する開発者のための情報メディアです。日々の開発に取り組むエンジニアやテクノロジーを学びたい方に向けて、プログラミングやAI活用、開発ツール、エンジニアの学びとキャリアに関する記事をお届けしています。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
提供:Qt Group
【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社
この記事は参考になりましたか?
この記事をシェア
