Squishを使ったLabVIEWアプリケーションのUIテスト

UIテストは常にLabVIEWでを使う上で難しいものの1つであるように思います。

ユーザー RyanV、NIフォーラム、2016年6月24日

LabVIEWは、データ収集、機械制御、産業用オートメーションのための一般的なソフトウェア開発環境であり、様々なエンジニアリングの現場で使用されています。LabVIEWはグラフィカルで、VI(Virtual Instruments)とも呼ばれるプログラムは、フロントパネル(VIのユーザーインターフェース)とバックパネル(ブロック図で表されたVIのグラフィカルなソースコード)で構成されています。

LabVIEWのプログラムの複雑さは様々です。2つの数値を足すだけの簡単なものから、例えば安全性が重要視される航空宇宙分野で使用されるような精度を要求されるものまで、様々なものがあります。グラフィカルフロントエンドを持つ他のソフトウェアと同様に、LabVIEWアプリケーションのユーザーインターフェースもテストから恩恵を受け、さらにこれらのGUIテストを自動化するとより効果的です。

本稿では、Squish GUI Testerを使用した堅牢で自動化されたアプローチを用いて、LabVIEWアプリケーションのユーザーインターフェイスをテストする方法を紹介します。

UI Testing LabVIEW Apps: 複合的なアプローチ

オブジェクトベースのコントロール認識アプローチが適さない、あるいは不可能な、カスタムで非標準のコントロールを持つUIに対して、Squishは画像ベースのテストOCRベースのテストの両方を提供します。テスト作成者はこれらの2つのアプローチを1つのテストケースに組み合わせ、それぞれの機能を補完的に使用することができます。ここでは、LabVIEWのVIのサンプルをテストするために、この方法を使用します。

対象範囲と前提条件

LabVIEWに付属しているControl ReferencesのサンプルVIを使用します。Squishで作成したテストは、アプリ内のInstructionsヘッダーに記載されている手順をカバーします。このブログでは、画像およびOCRベースのテスト手法の使用方法について説明します。SquishでOCR機能を有効にするには、Tessearct OCRライブラリの事前インストールが必要であることに注意してください。

テストを記録する


  1. Squish IDEで録画が開始されると、Squishは自動的にアプリケーションを起動します。
  2. Disabled Statusを変更し、Visibilityボタンをクリックします。

ステータスを変更するために、イメージベースのアプローチを使用します。Squish IDEのコントロールバーからInsertを選択し、mouseclick(<Image>)を選択して、Enabledボタンのスクリーンショットを撮ります。


Image-Based Interaction

スクリーンショットが撮影できたら、もう1枚スクリーンショットを撮る必要があります:無効化された(Disabled)オプションのスクリーンショットです。Ctrlキーを押しながら、mouseClick(<Image>)を選択します。これで、Squishがスクリーンショットを撮る前に5秒間、「無効な状態(DisabledStatus)」のリストを展開することができます。


Image-Based Interaction

同じ方法で「表示」の設定をクリックし、代わりに「表示の変更」ボタンのスクリーンショットを撮ります。

  1. 波形チャートのYスケールの最小値、最大値を変更する

ここで、XスケールとYスケールの上向き矢印は同一であることに注意してください。テスト再生時にこの2つを区別するようにSquishに指示するには、どうすればよいでしょうか。これには、occurrenceプロパティを使用します。Squishはデスクトップを検索し、選択に一致するすべての位置を見つけ、occurrenceインデックス(画面上で同じ画像が複数存在する場合、その何番目を使用するかを示す数値)を計算します。このインデックスはwaitForImageコールの一部として記録されます。したがって、画面上に同じ画像が存在する場合でも、目的の画像を選択することが重要です。


Image-Based Interaction


Image-Based Interaction

  1. VIを停止する

VIを停止するには、OCRを使ったルックアップを使用することにします。IDEのコントロールバーで、Insertからmouseclick()を選択します。スクリーンショットに対する処理が完了したら、画面上のStopボタンを選択し、Stopテキストが認識されたかどうかを確認し(画面右下のSearch text)、デフォルトのOCR設定でInsert mouseClickを選択してマウスクリックを挿入します。


OCR Based Interaction

これでテストケースの記録は完了です。Squish IDEから録画したテストを実行することが可能になりました。

今後の展望と参考資料

LabVIEWのアプリケーションオブジェクトやそのプロパティにはアクセスできませんでしたが、画像とOCRを組み合わせたテスト手法で、アプリケーションの簡単なテストを自動化することができました。このテストは、画像またはOCRベースの検証ポイントを含むように簡単に拡張することができます。

画像検査やOCRに関する詳しい情報は、YouTubeチャンネルにあるチュートリアルやトピック専用のリリースウェビナー(1, 2)をご覧ください。

テストスクリプト

テストスクリプトと関連ファイルはこちらからダウンロードください。

 

お問い合わせ

SquishをはじめとするQtのQA(品質保証)ツールにご興味がおありの方は、Qt JapanのEメールアドレス:japan@qt.ioまでお気軽にご連絡ください。概要のご説明から詳細な技術的相談、また無料のツールトライアルのご案内もいたしております。


Blog Topics:

Comments