Qtブログ(日本語)

GUIテスト自動化でもっと良いソフトを開発しよう

作成者: Qt Group 日本オフィス|Feb 3, 2023 12:58:01 AM

この記事は「Develop better software with the help of GUI test automation」の抄訳です。

ユーザーがアプリを開いたとき、最初に目にするのがグラフィックユーザーインターフェイスであり、一般にGUIと呼ばれています。GUIは、ユーザーが実際に目にし、操作するもので、アプリの目に見える部分です。例えば、銀行残高を確認するために金融アプリを起動すると、アイコンやボタンが表示されます。これらもGUIの一部です。

GUIテストとは?

GUIテストは、あるアプリケーションのGUIが意図したとおりに動作することを確認するために行われます。これには、クロスプラットフォームやクロスデバイスのテストが含まれ、期待通りのパフォーマンスと仕様への準拠を確認します。そのなかで、リンク、ポップアップ、ドロップダウンメニュー、ボタンなどは、テストされるGUI要素のほんの一部に過ぎません。

アプリケーションのGUIは、一般に公開する前に厳しいテストをパスする必要があります。何度もくりかえしテストを行う必要があるため、このプロセスは非常に時間がかかり、負担が大きくなりがちです。時間を節約し、かつ正確性を確保するために、多くのQAチームとアプリ開発者は現在、ソフトウェアを使って人間の介入なしにテストを実行する自動GUIテスト・ソリューションを採用しています。

自動GUIテストとは?

自動GUIテストでは、ツール、スクリプト、ソフトウェアを使用して自動テストケースを生成し、従来であれば手動で繰り返し行われてきた、時間のかかるGUIテストをスピードアップし、簡略化します。

なぜGUIテスト自動化は重要か?

GUIテストツールは、人間のテスターが見逃してしまうような小さなGUIの欠陥さえもキャッチすることができます。自動化されたGUIテストが検出する典型的な欠陥には、次のようなものがあります。

  • スペルミスや文法的な誤り
  • フォームの入力フィールドの配置が一定間隔ではない
  • ブラウザのサイズを変更したり、ページの縮尺を変更したりしたときに、要素が正しく表示されない
  • 言語を変更すると文字サイズが変更される
  • フォントの不一致
  • 選択項目と非選択項目の区別がつかない

 

テストチームがこれらの問題を理解するためのベストな方法は、実際のユーザーの立場に立つことです。それによって、エンドユーザーのために、アプリが美しく、バグがないように変更する必要が生じることもしばしばあります。

ソフトウェアに内部的な修正を加えた後、リグレッション(回帰)テストを行い、正常な機能を確保しなければなりません。回帰テストの難しさのひとつは、GUIのデザインを変更するたびに、それ以前のGUIのテストケースが無意味になったり、更新が必要になったりする可能性にあります。

そういった場合、リグレッションテストを実行するには、GUIのテストケースを新しいGUIで動作するように更新する必要があります。テストケースを手動で作成するには大きな手間と時間がかかり、開発者やQAチームに負担をかける可能性があります。

さらに、手動テストではテスターがミスを犯す可能性もあります。QAチームが細心の注意を払ったとしても、必要なテストケースの実行、文書化、自動化、評価がすべて一貫した精度で完了するかどうかには疑問符がのこります。

関連記事: The complete guide to quality assurance in software development


GUIテスト自動化ツール

Squish

Squishは、デスクトップ、モバイル、Web、または組み込みGUIやHMIの自動GUIテストを、強力なSquish IDE内から記録、変更、実行できる業界標準のツールです。さらに、Qtフレームワークやその他のさまざまなツールキットに対する比類ないサポートを提供しています。

関連記事:SquishがGUIテストに最適な理由

Coco

Cocoは、多くのアプリケーション、システム、デバイスのコードをプロファイリングし、分析するためのツールです。Cocoは、ソフトウェアコード内の関数、ステートメント、条件のテストカバレッジを測定、レポート、可視化することで、解析プロセスを自動化します。セーフティクリティカルなシステムに適しており、自動車、医療、その他の産業における規制要件を満たすために活用することができます。

Test Center

Test Centerは、テスト結果を一元管理するためのプラットフォームで、アプリケーションの健全性について、迅速かつ包括的なフィードバックを得ることができます。ウェブベースで軽量なため、どのブラウザからでも簡単にアクセスできます。

GUIソフトウェアのテストの課題とは?

GUIテストを自動化するソフトウェア・プロジェクトは、いくつかの課題に直面します。

期待動作を明確にする必要がある

GUIテストの自動化では、より正確にテストケースを実行することができますが、それは同時に、期待される動作についてより明確にする必要があることを意味します。これは、既存のテストケースを分析し、何がテストされているかを明確に記述し、コンピュータが何をすべきかを理解できるようにすることを意味します。

初期投資

自動テストの導入には、初期投資が必要です。テストケースとテスト方法を準備し、初期設定を行う必要があります。これには、適切なGUIテスト自動化ツールを選択し、ツールの使用方法を学ぶことが必要です。また、テストケースをツールの対応する形式に変換する必要がある場合もあります。

自動化による盲目化

自動テストは多くの時間を節約するため、テスト担当者はテストプロセスのあらゆる側面を自動化してしまい、細部がどう動いているかを把握していない"自動化による盲目化 "が発生してしまうかもしれません。

GUIテスト自動化は、より高品質なソフトウェアの作成にどのように役立つのか?

GUIテストの自動化は、制御された状況でアプリやWebサイトのあらゆる側面を分析するため、テスターにとって重要な役割を担います。自動化されたGUIテストにより、製品の最終的なインターフェイスが最高の品質となり、ユーザーからの苦情を最小限に抑えることができます。これは、自動GUIテストが、メニューやサイドバーのアクセシビリティから、プラットフォーム間でのテキストの読みやすさに至るまで、ソフトウェアのあらゆる側面を検証するためです。

自動テストスクリプトは簡単に転送・再利用できるため、テストチームの主要メンバーが離職しても、標準的な手順を確立し、一貫性を確保することができます。

自動 GUI テストを利用するには初期投資が必要ですが、企業にとって長期的なメリットは非常に大きいと言えます。第一に、開発段階での品質保証にかかる時間とコストを削減できます。第二に、GUIのバグや問題がユーザー・エクスペリエンスに影響を与える前に発見することが可能になります。これにより、企業は顧客と収益を失うリスクを抑えることができます。

複数のデバイスやプラットフォームでアプリのGUIをテストすることも可能

Qt 品質保証ツール を使用すると、クロステクノロジーおよびマルチデバイスの GUI テスト、テストフレームワーク全体のコードカバレッジ解析、静的コード解析、さらにソフトウェアアーキテクチャのコンプライアンスチェックを行うことができます。ソフトウェアの腐敗や技術的負債の蓄積を阻止するために、スタンドアロンツール、カップルツール、またはそのすべてを使用することができます。

おわりに

SquishをはじめとするQtのQA品質保証ツールにご興味のおありの方は、ぜひQtの無料トライアルを開始してみてください!また、Qtについてご質問あり場合は、お気軽にお問い合わせください。

概要のご説明から詳細な技術的相談、また無料のツールトライアルのご案内もいたしております。