Qtブログ(日本語)

QtとSquishによるクラウドネイティブ Software-in-the-Loopテスト

作成者: Qt Group 日本オフィス|Jul 30, 2024 8:25:35 AM

このブログは「Cloud-Native Software-in-the-Loop Testing with Qt and Squish」を翻訳・一部加筆したものです。

今日のペースの速いソフトウェア開発環境では、効率的で正確なテスト手法の必要性がかつてないほど高まっています。アプリケーションがますます複雑化し、分散化するにつれて、従来のテスト手法では不十分な場合が多くなっています。そこで、クラウドネイティブのSIL(Software-in-the-Loop)テストが活躍します。強力なクロスプラットフォームアプリケーション開発フレームワークであるQtと、Qt Groupの自動UIテストツールSquishが、この最新のテストパターンを実現します。

クラウドネイティブ Software-in-the-Loopテストとは?

クラウドネイティブSILテストは、従来のSIL(Software-in-the-Loop)テストの利点と、クラウドコンピューティングのスケーラビリティと柔軟性を組み合わせた新しいアプローチです。SILテストでは、ソフトウェアのコンポーネントやサブシステムをシミュレートされた環境でテストするため、物理的なハードウェアを必要とせずに検証と妥当性確認を行うことができます。このアプローチをクラウド・ネイティブ・テクノロジーと統合することで、開発者はクラウド・パリティ、オンデマンド・コンピューティング・リソース、シームレスな拡張性、高度な自動化機能を活用することができます。

クラウドネイティブSILテストにおけるQtとSquishの役割

Qtは強力なクロスプラットフォームアプリケーション開発フレームワークで、その豊富なツールやライブラリで長年にわたりよく知られています。一方、Squish はUIアプリケーションのテストに特化した包括的な自動テストツールです。QtとSquishの組み合わせは、クラウドネイティブなSILテストに最適な強力なコンビネーションとなります。

クロスプラットフォーム互換性

Qtの大きな強みの一つが、クロスプラットフォーム互換性です。ソフトウェアが組み込みシステム、モバイルデバイス、デスクトップ、サーバーのいずれで動作する場合でも、Qtは一貫した開発環境を提供し、シームレスな移植性を実現します。この機能は、アプリケーションがさまざまなオペレーティングシステムやハードウェア構成で動作する可能性があるクラウドネイティブ環境において、特に重要です。 

Squish による自動テスト

Squishは、Qtを含む多様なUIフレームワーク向けに特別に設計された強力な自動テストツールです。開発者は、自動化された機能テストやリグレッションテストを作成・実行し、包括的なテストカバレッジを確保することで、不具合のリスクを低減できます。Squishは、従来の画像ベースのテストをはるかに超えた幅広いテスト手法をサポートしています。具体的には、オブジェクトベースのテスト(検査とイントロスペクションの両方を使用)、キーワード駆動型テスト、データ駆動型テスト、そして動作駆動型開発(BDD)などが含まれます。Qtとクラウドネイティブテクノロジーとの統合により、SquishはクラウドネイティブSILテストにおいて貴重なツールとなっています。

クラウドサービスとの統合

Qtのモジュラーアーキテクチャと広範なプラグインエコシステムは、さまざまなクラウドサービスやプラットフォームとのシームレスな統合を容易にします。ここ数ヶ月の間に、Qtが Qt for Cloud を通じてAWS Gravitonプロセッサをすぐに利用できるようにしました。この統合により、開発者はオンデマンド仮想マシン、コンテナ化、サーバーレスコンピューティングなどのクラウドコンピューティングリソースを活用し、クラウドネイティブなSILテストに役立てることができます。SquishはQtと緊密に統合されているため、これらのクラウドリソースをシームレスに活用し、効率的でスケーラブルにテストを実行することができます。

継続的インテグレーションとデプロイメント

QtとSquishは、一般的な継続的インテグレーションおよびデプロイメント(CI/CD)ツールとシームレスに統合され、自動化されたビルド、テスト、デプロイのパイプラインを実現します。この統合により、オンデマンドで拡張可能な効率的で自動化されたテストプロセスが提供され、クラウドリソースを効果的に活用できるため、クラウドネイティブなSILテストにとって不可欠な要素となります。

ソフトウェアテストの未来を受け入れる

クラウドネイティブSILテストは、ソフトウェア開発プロセスにおける劇的なシフトレフトを意味しています。シフトレフトの哲学は、テストが早期に、継続的に、自動的に実行されることを規定しています。この哲学に適応するには、テストが迅速かつ費用対効果が高いことも必要です。テストを迅速かつコスト効率よく実施することも重要です。例えば、自動車のインフォテインメント・システムのテストを考えてみましょう。

従来の同期テスト実行

 

 

ご覧の通り、従来の同期テスト実行では、テストケースが物理的なハードウェアデバイスや計算機の可用性に制約されるため、通常は直線的に実行されます。あるテストスイートは、前のテストスイートが完全に完了するまで実行を開始できず、自動化されたテスト全体を実行するのに多くの時間がかかります。  

クラウドコンピューティングリソースを活用した並列テスト実行

 

一方、クラウドネイティブなSILテストアプローチでは、需要に応じてコンピュートリソースを即座に拡張できるため、テストケースの実行が並行して行われます。その結果、あるテストスイートが他のテストスイートの完了を待つ必要がなくなり、自動テストは非同期で実行されるため、時間を大幅に節約できます。テストの実行が完了すると、オンデマンドのコンピューティングリソースは、再び必要になるまで簡単にスケールダウンできます。

組み込みシステム、モバイルアプリケーション、デスクトップソフトウェア、クラウドネイティブサービスのいずれを構築する場合でも、QtとSquishを活用することで、ソフトウェアテストの未来を先取りし、これまでにないペースで高品質かつ信頼性の高いソフトウェアを提供することができます。