Windows デスクトップアプリでもUIテストを自動化できる。しかもノーコードで

ソフトウェア開発のリリーススピードは加速する一方で、プラットフォーム(ブラウザーやOS、ミドルウェア等)のアップデートもより頻繁におこなわれ、さらに人材不足の問題もある現在、品質の担保のためにはテストの自動化は必須と言っても過言ではありません。

しかしながら、Windowsデスクトップアプリを対象としたUIテスト自動化ツールや情報は現状少なく、お困りの方も多いのではないでしょうか。

この記事では、WindowsデスクトップアプリのUIテスト自動化についての解説と、弊社(テクマトリックス株式会社)で取り扱っているテスト自動化ツール「Ranorex」をご紹介します。

UIテスト自動化とは?

まず、「UIテスト」とは、アプリケーションの画面を操作しておこなうテスト全般を指す言葉として使用されます。ユーザーの操作を検証するという意味では、「E2Eテスト」と呼ばれることもあります。

UIテスト自動化は、このようなユーザーが実施してきた画面操作や検証、テスト結果のレポート化を、自動でおこなってくれるものです。

UIテスト自動化が実際の現場で使われるユースケースとしては、ウォーターフォール開発で画面が出来上がってからおこなう 結合テストシステムテスト受け入れテストなどと呼ばれるフェーズ、あるいは保守フェーズにおけるリリース前の際のリグレッションテストなどが挙げられますが、それ以外でも、ユーザーが画面操作をおこない結果を確認するテストは「UIテスト自動化」の対象となります。

Windows デスクトップアプリのUIテスト自動化は可能なの?

可能です。ただし、Windows デスクトップアプリのUIテスト自動化を成功させるためには、対応しているツールの選定がとても重要です。

選定ポイント1: 対応アプリケーション

テスト自動化ツールの中にはWindows デスクトップアプリに対応していないものも多くあるため、対応しているアプリケーションは必ずチェックしましょう。

対応アプリケーションは、大きく2種類に分けられます。

  1. Windows デスクトップアプリWebブラウザの両方対応できる (代表ツール:RanorexUWSC)
  2. Webブラウザのみ対応できるもの (代表ツール:Playwright、Selenium)

Windows デスクトップアプリのUIテスト自動化を行う際は、(1)のツールを使用する必要があります。

選定ポイント2: ツールの使いやすさ

ツールによって、テストシナリオの作成方法が異なります。最近はノーコード(キャプチャ形式)でシナリオ作成ができるものが多いですが、修正時にはコードを直接修正する必要があるツールもありますので、使い勝手はチェックしておきましょう。

Ranorexは、シナリオ作成時も修正時も同様に、ノーコードで直感的に簡単に操作がおこなえます。特にプログラミング知識のない非エンジニアの方がUIテスト自動化に携わる場合は、このような直感的に操作できるツールを選ぶとよいでしょう。

選定ポイント3: オブジェクト(コントロール)の認識方式

テスト自動化ツールは、作成したテストを実行する際、画面上のボタンやテキストボックスなどのUI要素を操作します。この要素を見つけるための方式として、大きく以下の3つの方式が挙げられます。

  1. 座標認識型:画面内での、カーソルの位置情報を記録する
  2. イメージ認識型:対象の要素を、画像で検索する
  3. オブジェクト認識型:コード情報をもとに、要素を検索する

1や2については、アプリの画面が変わった場合などに対応できないため、3がもっとも堅牢性が高い(環境の変化に強い)方式であると言われています。現在主流のWebアプリ向けテスト自動化ツールは、ほとんどが「3.オブジェクト認識型」です。Windows デスクトップアプリのテスト自動化も同じくオブジェクト認識型のツールを選択することで、長期運用に適したテスト自動化シナリオを作成することができます。Ranorexは、オブジェクト認識型でUI要素を識別するため、アプリの改修や環境移行などによる影響を抑えることができます。

CIツールとの連携はできる?

可能です。Jenkins をはじめとしたCIツールと連携することで、テストの実行部分も自動化することができます。

UIテスト自動化ツール Ranorex には、Jenkins と Azure DevOps の連携機能が搭載されているため、設定もスムーズにおこなえます。CIツール以外にも、バージョン管理ツール(Git/Subversion/TFVC)やテストケース管理ツール(TestRail)など様々な連携が可能ですので、ソースコミットをトリガーにテスト自動化シナリオを実行し、結果をテスト管理ツールに自動反映するといった使い方もできるようになっています。

Windows デスクトップアプリのUIテスト自動化で注意すべきこと

前述したポイントの他に、以下のポイントは評価の段階で確認しておくことで、結局使えなかったという失敗を防ぐことにつながります。

サポート対象のテクノロジー/フレームワークをチェックする

オブジェクト認識型のツールを使用する場合、必ずテスト対象とするWindows デスクトップアプリのテクノロジー(WinForms、WPF、Qtなど)に対応しているかを確認しましょう。対応していないツールでは、要素を取得できず、オブジェクト認識型のメリットを得られない場合があります。
できれば、体験版などを使用して、実際のテスト対象アプリの要素が取得できるか確認することをおすすめします。

自動化の範囲をチェックする

どのようなUIテストシナリオを自動化するかを決め、自動化の範囲を確認しておきましょう。「自動化の範囲」とは、Windows デスクトップアプリ単体を自動化できればよいのか、WebブラウザのUI操作も自動化したいのか、はたまたWebサーバーにアクセスしたレスポンスの確認まで自動化したいのかといった部分です。
これらを明確にすることによって、数あるUIテスト自動化ツールの中から、選ぶべきツールを絞り込むことができます。

使用するマシン/環境の稼動要件をチェックする

Webアプリ向けのUIテスト自動化ツールはブラウザのみが操作対象なので稼動環境は問題にならないケースもありますが、Windows デスクトップアプリを自動化する場合、多くの場合、アプリケーションが動作する環境にツールをインストールする必要が出てきます。
テストを実施する環境のOSバージョンが対応しているか、オフライン環境でテスト作成・実行ができるか、ツールに必要なソフトウェアをインストール可能か、仮想環境での実行ができるかなど、ご自身のテスト環境で動作するかもチェックしておくことが必要です。

Ranorexの稼働環境

テスト自動化ツール「Ranorex」のご紹介

弊社(テクマトリックス株式会社)では、UIテスト自動化ツール「Ranorex」を取り扱っています。
Windowsデスクトップ・Web・モバイルアプリに対応しており、テスト対象アプリの画面操作をおこなうだけで簡単にテストを作成できるため、ノーコード非エンジニアでも扱いやすいテスト自動化ツールです。

Ranorexは、Windowsデスクトップアプリの多くのテクノロジーに対応しており、レガシーのテクノロジーにも対応しています。

テクノロジー例:Windows Forms、WPF、Java Swing、Java FX、Electron、.NET、Win32、VB6 など

対応テクノロジーの一覧はこちら

Ranorexの特長などの製品紹介資料は以下からダウンロードいただけます。

Ranorex は無償で14日間、
すべての機能をお試しできます!

14日間の無償体験版をお使いのPCにインストールすることで、すぐに自動化をはじめられます。
自動化ツールを検討されている方は、ぜひお試しください。

まとめ

Windows デスクトップアプリのUIテスト自動化は、ツール選定さえ間違わなければ、Webアプリケーションと同じようにノーコードで対応できます。デスクトップアプリとWebアプリ両方対応できるツールを選べば、Webブラウザからエクスプローラーの操作を含めたファイルのアップロード/ダウンロードや、右クリックのコンテキストメニューなど、より幅広い操作を自動化することも可能になります。

つまるところ、UIテスト自動化はツール選定が肝です。自動化したいアプリ、環境、操作内容など整理して、最適なUIテスト自動化ツールを選定しましょう。

関連ページ: