Java Swingアプリのテスト自動化

Java Swingとは、Javaでクロスプラットフォーム対応のグラフィカルユーザーインターフェース(GUI)を作成するための標準的なライブラリです。

Ranorexは、レガシーなWindowsアプリのUIテストを自動化できることが強みであり、Java Swingアプリケーションの自動テストができます。

Java Swingとは

Java Swingは、1997年頃にJavaで作られたGUIライブラリで、WindowsやMac、Linuxなど複数のOSで同じ見た目や動作のアプリケーションを作成できます。多くの種類の部品や柔軟な配置方法があり、ボタンやリストの動作も細かく設定できます。

また、自分で新しい部品を作ることもできるため、多様なデスクトップアプリの開発に適しています。2007年頃に、Swingの後継として、よりモダンな機能を持つJavaFXがリリースされています。

Java Swingで作成したアプリ

Java Swingアプリの現状と活用シーン

Java Swingは長年の実績があるため、複雑な画面構成や安定した操作性が求められるシステムで、現在も利用されています。

使用システム例:

  • 顧客向けシステム:販売管理システム、在庫管理システム、会計ソフトなど
  • 金融系システム:口座管理システム、証券取引システム、保険契約管理システムなど

テスト自動化ツール「Ranorex」とは

Ranorexは、デスクトップWebモバイルアプリ対応のUIテスト自動化ツールです。アプリ画面操作のレコーディングで簡単にテスト作成できるため、テスト初心者でも扱いやすいです。

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

Ranorexは、14日間の体験版を無償でご利用いただけます。
UIテスト自動化を検討のお客様は、ぜひこちらから、体験版をダウンロードしてご評価ください。

RanorexによるJava Swingアプリのテスト自動化

ノーコードでテスト作成

Ranorexのレコーディングモードで、各UI要素(コントロール)に対しての操作を記録することで、テストを簡単に作成できます。

※Java Swingアプリのテストでは、Ranorexを管理者権限で起動する必要があります。

Ranorexのレコーディング

以下のようなJava Swingの標準コントロールをRanorexで操作できます。

  • JButton(ボタン)
  • JCheckBox(チェックボックス)
  • JComboBox(コンボボックス)
  • JTextField(テキストボックス)
  • JLabel(ラベル)
  • JList(リストボックス)
  • JTable(データグリッド)
  • JTabbedPane(タブコントロール)
  • JSlider(スライダー)
  • JScrollPane(スクロールビューア)
  • JPanel(レイアウトパネル)
  • ImageIcon(画像表示)
  • JRadioButton(ラジオボタン)
  • JPasswordField(パスワード入力)

UI要素の認識方法

Ranorexは、UI要素をロケーションパス(RanoreXPath)で認識し、このUI要素の情報を操作内容と紐づけて記録します。テスト実行時に、この方法で認識したUI要素に対して操作が実行されます。

レコーディング時に、UIのレイアウト構造を読み取って、ロケーションパスを自動生成します。

UI要素のロケーションパス (RanoreXPath)

送信ボタンのレイアウト構造は以下です。

frame (JFrame: "Form1") 
 └─ topPanel (JPanel)
      └─ inputAndClearPanel (JPanel)
           └─ inputPanel (JPanel)
                └─ sendButton (JButton with text "送信")

レイアウトパネルを一意に特定するために、Java Swingアプリで、以下のようにパネルに名前を付けて実装しています。(topPanelに対してtopPanelという名前を付与しています)
自動化しやすいように、一意に特定できる属性をUI要素に付与することは重要です。

JPanel topPanel = new JPanel(new BorderLayout());
topPanel.setName("topPanel"); // topPanelにname追加

Java Swing標準のコンポーネントだけでなく、CustomUIComponentのような独自コンポーネントも認識して、操作することができます。

検証

画面に表示されたテキスト情報などをもとに、文字列検証することもできます。

入力フォームに名前を入れて登録ボタンを押すと、その名前が画面に表示されるアプリの場合、画面に表示される文字列が期待通りかを検証できます。

Ranorexの文字列検証

また、画面全体の画像比較もおこなうことができます。期待画像と実際にテスト実行したときの画像が一致するかを検証できます。

Ranorexの画像検証

画像比較で差分があるときは、エラーとして差分画像をレポートに表示できます。

差分画像のレポート

左側の画像は、比較した2つの画像の差がある部分を白で示し、差がない部分を黒で表しています。右側の画像は、2つの画像の色の違いの大きさを色の濃淡で表し、差が大きいほど明るく、差がない部分は灰色で表示しています。

テスト実行・テスト結果の確認

作成したテストの実行やテスト結果レポートの確認については、通常の方法と同様におこなうことができます。
詳しくは以下のページをご参照ください。

まとめ

Java Swingは、クロスプラットフォーム対応のJava製GUIライブラリで、長年の実績から複雑な画面構成や高い安定性が求められる業務システムや金融システムで現在も広く利用されています。

Ranorexは、Java SwingアプリのUIテストを簡単に自動化でき、ボタンやコンボボックスなど多様なコントロールの操作に対応していますので、Java Swingアプリのテスト自動化をご検討の際は、ぜひRanorexの体験版をお試しください。

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

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

Windowsデスクトップアプリの各テクノロジー記事