SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Developers Summit 2024 Summer レポート(AD)

まずはここから!GUIテスト自動化ツール導入のポイントと「Squish」で実践するビヘイビア駆動型テスト

【24-A-3】なかなか実現しないGUIテスト自動化~まずはここから始めましょう!

  • X ポスト
  • このエントリーをはてなブックマークに追加

テストケース作成の工数削減に寄与、GUIテスト自動化ツール「Squish」

 ここからは具体的なテスト(品質保証)ツールの1つ、Qt Groupの「Squish(スクイッシュ)」と「Coco」について解説していこう。SquishはGUIテスト自動化ツールで、Cocoはコードカバレッジ分析ツールだ。両者は独立しているため、どちらか片方のみの導入も可能で、別のツールと組み合わせることもできる。

QA(品質保証)ツールを使用した開発フロー提案

 まずはメインの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で、ここでテストスイートを作成する。起動すると下図のような画面が開き、テストケースやスクリプト、テスト結果が表示されている。

Squish IDEツールの起動画面

 各種モジュールとはsquishrunner、squishserver、squish hookなどがあり、それぞれのプロセスに機能分散されており、TCP/IP通信している。

 テスト環境はホストとターゲットが同一の環境に共存するだけではなく、ホストとターゲットが異なる環境に存在するケースも可能だ。後者は主に組み込み機器などになる。またテスト対象となるアプリケーションは1つ(単体)だけではなく、複数のアプリケーションが連携して稼働するような場合でもSquish IDEからテストすることも可能だ。

Squishの構成例

 Squishを導入すると、先述したようなレコーディング機能でテストケース作成工数を削減できることが大きなメリットとなるだろう。テストケースはスクリプトで記述するので機能拡張が容易であり、再利用性も高くなる。高度なオブジェクト認識機能もGUIテストには有利に働くだろう。複数のプラットフォームで動作するアプリケーションや組み込み機器のテストも可能だ。

次のページ
Squishで実践するビヘイビア駆動型テスト

関連リンク

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Developers Summit 2024 Summer レポート連載記事一覧

もっと読む

この記事の著者

加山 恵美(カヤマ エミ)

フリーランスライター。茨城大学理学部卒。金融機関のシステム子会社でシステムエンジニアを経験した後にIT系のライターとして独立。エンジニア視点で記事を提供していきたい。EnterpriseZine/DB Onlineの取材・記事や、EnterpriseZine/Security Onlineキュレーターも担当しています。Webサイト:http://emiekayama.net

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

丸毛 透(マルモ トオル)

インタビュー(人物)、ポートレート、商品撮影、料理写真をWeb雑誌中心に活動。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

CodeZine編集部(コードジンヘンシュウブ)

CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

提供:Qt Group

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/20038 2024/09/25 12:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング