AIアシスタントを活用したSquishテストスクリプト生成の実践ガイド

 

前回の記事「AIアシスタントによるSquish GUIテストを新MCPサンプルで最適化」を公開した後、多くのお客様から、テストスクリプトの生成方法についてもっと詳しく知りたい、とのご要望をいただきました。本記事では、AIアシスタントを活用してSquishのテストスクリプトを作成するための、ひとつの具体的なセットアップ例を取り上げて解説します。

本記事は、テスト自動化ツールを探している QA 開発者やエンジニアにとって特に参考になりますが、結論部分では、生成AIの急速な進化の中で、説明したアプローチが合理的な理由を説明しています。また、基盤モデルを活用したテストスクリプト作成の動向を理解したい一般の方にも参考になる内容となっています。

この記事ではCursorを使用していますが、Windsurf、Claude Code、GitHub Copilotなど、主要なAIコードアシスタントであれば同様の設定が可能です。この設定は、Squishがサポートするすべてのプラットフォームで自然に動作します。

Squish を初めてご利用ですか?Squish は、Android(Android Automotive を含む)、macOS、iOS、Linux、および Windows 向けのアプリテスト自動化のためのGUI テストフレームワークです。Squishは組み込みターゲット向けのネイティブおよびクロスプラットフォームのツールキットもサポートしています。詳細については、製品ページまたは製品ドキュメントをご覧ください。Qt 開発者の方は、このページをご覧ください。

構成

AI アシスタントを使用して Squish のテストスクリプトを生成するために使用している構成は、次のとおりです。

squish-with-ai-assistants

画像内のコンポーネントは以下の通りです。

  • Squish Rules はAI アシスタントの「スタイルガイド」として機能する一連の一般的なガイドラインです。これにより、生成されるスクリプトがチームの規約、保守性基準、および Squish のベストプラクティスに準拠するようになります。当社は、汎用的な Squish ガイドラインのさらなる開発を目指しています。プルリクエストや提案をお待ちしております。
  • Squish Docs ー 当社は、AI アシスタントとして Cursor を使用し、Cursor の機能を利用して Squish 開発者向けドキュメントをインデックス化しています。こちらの手順を参照し、お使いの AI アシスタントに合わせて適宜変更してください。これにより、AI アシスタントは、有効な Squish コマンドを生成し、ベストプラクティスに従うために、最も正確で最新のコンテキストを確実に取得できます。
  • Product Spec Cursor は、Address Book アプリケーション(テスト対象アプリケーション、AUT)のソースコード全体を参照できます。このデモアプリケーションには Product Spec が存在しなかったため、Cursor を使用して Product Spec を生成したことから、これは重要なポイントです。このドキュメントにより、AI アシスタントはアプリケーションの機能、UI 要素、および潜在的なテストシナリオを理解でき、より関連性が高く正確なテストスクリプトを生成できます。
    このドキュメントは、アプリケーションに新しい機能を追加したり、新しいテストケースを作成したりするたびに更新されます。既存の製品ドキュメントや製品要件ドキュメント(PRD)を含むユーザーガイドを「Product Spec」の一部として追加することは、基礎モデルにさらなる文脈を提供するため、検討する価値があります。同様に、大規模なソフトウェアプロジェクトでは、製品要件の維持などにRetrieval Augmented Generation(RAG)を活用できます。
  • Stub Script & Object Map は、Squish IDE を使用して最初の Stub Script を記録することで作成されます。これにより、AI アシスタントは、アプリケーションの UI 要素とオブジェクト間のマッピングについて基本的な理解を得ることができます。Object Map は、アプリケーションの進化に合わせて最新の状態に保つ必要があります。AI アシスタントを利用してオブジェクトマップを直接生成し、UI レイヤーのコードからオブジェクトマップを拡張することも可能です。
  • Squish Runner およびFeedback loops AI アシスタントは、Squish MCP サーバーの例、または squishrunner CLI を直接呼び出すことで、AUT からテストスクリプトの呼び出し結果とエラーログを受け取ります。これらの結果を用いて、AI アシスタントは、生成したSquish テストスクリプトを繰り返し改善し、テストスクリプトの再実行中に発生した問題を解決して、フィードバックループを構築します。

上記の設定は、モデルの確率的な性質に対応し、その精度と一貫性を向上させるためのコンテキストをモデルに提供することを目的としています。

上記で言及したすべてのファイルは、付属のリポジトリから入手できます。

サンプルテストスクリプトの生成

次のビデオでは、説明した設定を使用して、アドレス帳アプリケーションを開き、新しい連絡先を追加し、その一部を削除し、連絡先が削除されたことを確認するテストスクリプトを作成します。このアプリケーションは、Squish for Windows パッケージに含まれています。前述のように、他のターゲットプラットフォームを使用している場合も、このプロセスと設定は同様に機能します。

 

生成されたテストスクリプトは、リポジトリで入手できます。テストスクリプトの作成方法を制御する方法に応じて、AI アシスタントに作成されたスクリプトを自動的に実行および検証させることができます。

結論

AI アシスタントの支援を受けて Squish テストスクリプトを生成するための設定の概要を説明し、テストスクリプトの生成に基礎モデルを活用する 1 つのアプローチを紹介しました。テストスクリプトを自社で所有し、その作成にも同様の設定を使用することが妥当である理由は、以下の通りです。

  1. 基礎モデルは絶えず改善されています。最新のモデルを使用できる設定を選択することで、単一のプロバイダーに縛られることなく、モデルの急速な開発を最大限に活用することができます。このアプローチを、モデルの更新頻度が低く、モデルの詳細を開示しないテストサービスプロバイダーに依存するアプローチと比較してみてください。
  2. モデルのコンテキストを活用 ー 前述のように、当社の設定は、基礎モデルの精度と一貫性を向上させるためのコンテキストを提供することを目的としています。これがテストスクリプトの生成の鍵になると考えています。
  3. AIコードアシスタント間の激しい競争 ー AIアシスタントの新しい機能はすべて、チームに即時利用可能となり、AIアシスタントを切り替えたり、オープンソースの代替品を選択したりする自由があります。
  4. テストスクリプトは依然として価値があります。Squishは20年以上の歴史があります。基礎モデルを活用すれば、必要に応じて他のテストフレームワークからSquishへテストスクリプトを翻訳できます。これには手動作業が必要になる可能性がありますが、常にその可能性が残っているため、構築した資産が将来も価値あるものとして活用できるという安心感を得られます。テストスクリプトのエクスポートを許可しないサービスソリューションでは、これは必ずしも可能ではありません。
  5. ツールの組み合わせ ー AIアシスタントが使用するツールの組み合わせは、中央集約型サービスではなく、より柔軟な構成が可能です。構成には、製品ドキュメントのコンテキスト用にRAGや、必要に応じて他のMCPサーバーを含めることができます。

当社の構成では Cursor を使用しましたが、前述のように、Claude Code やその他の AI アシスタントも同様のワークフローに対応しています。Claude Code については、こちらから開始し、Squish テストスクリプトの作成方法を学んでください。

アプリケーションのテストスクリプトを生成するために、ここで説明した構成をお試しください。当社は、すべてのテストツール向けに生成型 AI および AI エンabler の開発に取り組んでおり、お客様のテストワークフローの改善にご協力できることを楽しみにしております。

詳細情報をご希望の場合

著者の Otso Virtanen (@qt.io) までお問い合わせください。Otso は、Qt Group の品質保証ツールにおける生成型 AI/AI イニシアチブの製品責任者です。Squish については、製品ページまたは製品ドキュメントをご覧ください。

日本国内のお問合せはこちらです。

謝辞

  • セットアップとテスト実行を担当した Marius Schmidt 氏
  • レビューコメントを担当した Slobodan Vrkacevic 氏

Blog Topics:

Comments