Squish
テスト作成と保守の容易さ
製品の進化や安全性が重要なアプリケーションにおいても、グラフィカルユーザーインターフェース(GUI)やヒューマンマシンインターフェース(HMI)のテストを複雑にせず、シンプルに実施できます。
Squish AI アシスタント
Squish 9.1 で利用可能な「Squish AI Assistant」は、Squish IDE にシームレスに統合され、QA エンジニアやテストエンジニアがより迅速に作業し、問題を容易に解決し、テスト品質を向上できるよう支援します。OpenAI、Mistral AI、GPT-5、さらに PrivateGPT を介したローカルモデルにも対応しており、日々のテスト業務における複雑さを大幅に簡素化することを目的としています。
AIによる生産性向上をテスト環境に直接導入
Squish AI Assistant で
テストをもっとスマートに
Squish AI Assistant は、テスト自動化の次なるステップを切り拓きます。
品質を損なうことなく、QA ワークフローをよりシンプルに、迅速に、そして誰もが使いやすいものへと進化させます。
よりスマートなテストコード
AI が駆動する改善提案により、テストスクリプトをよりクリーンに、効率的に、そして保守しやすくします。
明確なエラー解説
分かりにくいテストエラーを理解しやすい説明に変換し、問題点をすばやく特定できるよう支援します。
トラブルシューティングの高速化
AI が複雑な Squish Runner や Server のログを解析し、推測に頼らずスムーズに問題解決できるよう支援します。
学習のスピードアップ
Python、JavaScript、または Squish を初めて使う方でも、AI アシスタント がリアルタイムでガイドし、学習のハードルを下げます。
BDD 振る舞い駆動開発とテスト
BDDでチーム間のギャップを解消
Squishが実現するBDDと振る舞い駆動テスト
以下のチュートリアルでは、Squishを使ってBDDテストケースを記録し、BDDテストフレームワークへシームレスに統合する方法をご紹介します。
SquishでのBDD GUIテスト記録シームレスなGherkin統合
Squishでは、Gherkin構文でフィーチャーファイルを作成でき、関係者やチームメンバーが理解しやすい明確で人間が読めるシナリオを容易に定義できます。
ステップの自動マッピング
SquishはGherkinのステップを自動的にテストスクリプトへマッピングし、迅速かつ効率的な自動テスト作成を可能にします。再利用可能なスクリプトを複数のシナリオにリンクできるため、冗長性を減らし、時間を節約できます。
クロスプラットフォーム対応の柔軟性
Squishは、デスクトップ、モバイル、Web、組込みシステムなど、幅広いプラットフォームでのテストをサポートします。これにより、BDDアプローチをあらゆる環境にスケーラブルかつ柔軟に適用できます。
強力なIDEとデバッグツール
Squishは統合開発環境(IDE)を備えており、BDDテストケースの編集、デバッグ、実行を行うためのツールを提供します。これにより、テストスイートの開発と保守をシームレスに進められます。
リアルタイムレポート
Squishの充実したレポート機能により、BDDテストの進捗や結果をリアルタイムで把握できます。これにより、関係者への情報共有が容易になり、透明性が向上します。
レコード&プレイバック
レコード&プレイバックは、広範なコーディング知識がなくてもテストケースを作成できる、ユーザーフレンドリーなテスト自動化手法です。クリック、テキスト入力、ナビゲーションなど、アプリケーションとのユーザー操作を記録し、それらをもとに自動でテストスクリプトを生成します。生成されたスクリプトは再生することで、アプリケーションの機能検証を行えます。
コード不要のテスト自動化
レコード&プレイバックで実現するSquishのテスト作成効率化
Squishはレコード&プレイバック機能を強化し、テストの再生を可能にすることで、堅牢かつ柔軟なテストケース作成フレームワークを提供します。これにより、保守や実行が容易で高品質な自動テストを実現します。
レコード&プレイバックの実演を見る直感的な記録インターフェース
Squishは、デスクトップ、モバイル、Web、組込みシステムなど幅広いアプリケーションでのユーザー操作を記録できる、使いやすいレコーダー機能を備えています。これにより、チームは包括的なテストスクリプトを迅速に作成できます。
高精度なオブジェクト認識
Squishは表面的な操作だけを記録するのではなく、UI要素をオブジェクトプロパティを通じて識別・追跡します。これにより、UIレイアウトが変更されてもテストの信頼性を維持できます。
クロスプラットフォーム対応
Squishのレコード&プレイバック機能は複数のプラットフォームをサポートしており、ターゲット環境に関わらず、テストケースをシームレスに記録・再生できます。
スクリプトの拡張とカスタマイズ
記録によって完全に動作するスクリプトが生成されますが、Squishでは容易に編集やカスタマイズが可能です。上級ユーザーは、検証処理、ループ、パラメータ化された入力を追加し、テストをより動的かつ堅牢にできます。
効率的な保守ツール
Squishは、オブジェクトマップや記録したステップを迅速に更新できるツールを提供し、アプリケーションが進化しても最小限の手間でスクリプトを最新状態に保てます。
再生とデバッグ機能
Squishは、記録されたスクリプトの信頼性の高い再生と、テストの正確性を検証し実行中の問題を特定するための強力なデバッグツールを提供します。
スクリプト言語
現代のソフトウェアテストにおいて、実際に広く使われているスクリプト言語でテストケースを作成できることは不可欠です。専用スクリプトツールとは異なり、Python、JavaScript、Perl、Ruby、Tclといった広く普及している言語は、柔軟性や親しみやすさ、そして自動テストの機能を拡張できる強力なライブラリを備えています。チームは既存のコーディングスキルを活用し、開発ツールとの統合や、保守性・拡張性・再利用性に優れた多用途なテストケース作成アプローチを採用できます。
業界標準言語による強力なテスト自動化
実用的なスクリプト言語でのテストケース作成を支えるSquish
マルチ言語サポート
Squishでは、Python、JavaScript、Perl、Ruby、Tclといった一般的なスクリプト言語でテストスクリプトを作成できます。チームは最も慣れ親しんだ言語を選択でき、学習コストを抑えつつ生産性を向上できます。
豊富なインタラクションAPI
Squishは、UI要素との操作、スクリーンショットの取得、状態の検証、複雑なアプリケーション動作の処理を可能にする堅牢なAPIを提供します。このAPIは使いやすく、対応する言語とシームレスに統合できます。
既存ライブラリの活用
Squishは標準的なスクリプト言語に対応しているため、サードパーティのライブラリやフレームワークと統合できます。高度なデータ操作、API呼び出し、追加の検証など、プログラミングエコシステムの力を最大限に活用したテストが可能です。
コードの再利用とモジュール化
実用的なスクリプト言語を活用することで、チームは再利用可能な関数、共有モジュール、パラメータ化されたテストケースを設計でき、重複を削減しテスト保守の効率を向上できます。
組み込みIDEサポート
Squishの統合開発環境(IDE)は、テストスクリプトの作成、編集、デバッグ、管理を行うためのツールを提供します。構文ハイライト、コード補完、デバッグ機能により、スクリプト作成をスムーズかつ効率的に進められます。
モデルベーステスト
モデルベーステスト(MBT)は、テスト対象アプリケーションの動作、ロジック、ワークフローを視覚的または数理的モデルで表現する手法です。テストケースはこれらのモデルから自動生成され、網羅性を確保しつつ手動作業を削減します。この手法は、アプリケーションを明確かつ体系的に表現することで要件とテストの間のギャップを埋め、欠陥のリスクを低減し、ソフトウェア品質を向上させます。
アプリケーションモデルから自動テストを生成
Squishが実現するモデルベーステスト
Squishはモデルベーステストのワークフローとシームレスに統合し、この手法の力を最大限に引き出すために必要なツールと機能を提供します。
ステップバイステップ実装ガイドモデル統合
Squishは一般的なMBTツールと連携し、アプリケーションモデルから自動テストケースを直接生成できます。これにより、手動のテストケース設計が不要になり、正確かつ効率的なテストを実現します。
動作シミュレーション
Squishでは、モデルで定義されたロジックに基づき、ユーザー操作やワークフローをシミュレーションできます。これにより、実際のユースケースがさまざまなシナリオで検証されます。
動的テスト生成
Squishはモデルに基づくテストスクリプトの動的生成をサポートしており、アプリケーションが進化しても、大きな手作業を必要とせずにテストを最新かつ有効な状態に保てます。
シームレスな実行
Squishは、デスクトップ、Web、モバイル、組込みシステムなど、対応するプラットフォーム全体でMBT生成のテストケースを実行でき、エンドツーエンドの検証を実現します。
充実したレポートと分析機能
Squishは、MBTテストケースの実行に関する詳細なレポートとインサイトを提供し、チームがボトルネックを特定してテストプロセスを改善できるよう支援します。
自動化フレームワークとの統合
Squishはさまざまなテスト自動化フレームワークや環境と互換性があり、既存のワークフローにMBTをシームレスに組み込むことで、スケーラビリティと保守性を向上させます。
オブジェクト識別
不安定なテストの多くは、信頼性の低い要素識別が原因です。Squishはオブジェクトベースの認識を採用しており、テストスクリプトはUI要素の見た目だけでなく、そのオブジェクト自体と直接やり取りします。このアプローチにより、安定性が高く、保守しやすく、技術に依存しないテスト自動化を実現します。
オブジェクトベース認識による堅牢なテスト自動化
Squishが実現するオブジェクト識別とオブジェクトマップ
Squishによるオブジェクト識別とオブジェクトマップのサポートについては、ドキュメントをご覧ください。
オブジェクト識別とオブジェクトマップの詳細を見る集中管理型オブジェクトマップ
Squishには組み込みのオブジェクトマップエディタが搭載されており、UI要素のプロパティを一元管理・整理できます。これにより、オブジェクト参照の管理や更新が容易になり、テストの保守性が向上します。
インテリジェントなオブジェクト識別
Squishは高度なアルゴリズムを用いて、ID、テキスト、階層構造などの固有プロパティに基づきUI要素を取得・識別します。これにより、動的または複雑なインターフェースでも、テストが確実に正しい要素とやり取りできるようになります。
動的かつ堅牢なロケータ
Squishでは動的ロケータやフォールバック戦略を利用でき、UIが変更や更新を受けてもオブジェクトを確実に識別できる堅牢性を確保します。
使いやすいオブジェクトスパイ
Squishの直感的なObject Spyツールを使えば、アプリケーションのUI要素を視覚的に探索し、そのプロパティを取得して、オブジェクトマップにシームレスに追加できます。
オブジェクトマップの同期
Squishは、記録されたテストケースとオブジェクトマップを自動的に同期し、オブジェクト参照を常に一貫性があり最新の状態に保ちます。
スクリプトとコードの統合
Squishはオブジェクトマップをテストスクリプトに直接統合し、パラメータ化や再利用可能なオブジェクト定義を可能にすることで、テストのスケーラビリティと明瞭性を高めます。