LabVIEWでUIテストを設定するのは常に難しいと感じます。
ユーザー RyanV、NIフォーラム、2016年6月24日
LabVIEWは、データ収集、機械制御、産業用オートメーションのための一般的なソフトウェア開発環境であり、様々なエンジニアリングの現場で使用されています。LabVIEWはグラフィカルで、VI(Virtual Instruments)とも呼ばれるプログラムは、フロントパネル(VIのユーザーインターフェース)とバックパネル(ブロック図で表されたVIのグラフィカルなソースコード)で構成されています。
LabVIEWのプログラムの複雑さは様々です。2つの数値を足すだけの簡単なものから、例えば安全性が重要視される航空宇宙分野で使用されるような精度を要求されるものまで、様々なものがあります。グラフィカルフロントエンドを持つ他のソフトウェアと同様に、LabVIEWアプリケーションのユーザーインターフェースもテストから恩恵を受け、さらにこれらのGUIテストを自動化するとより効果的です。
本稿では、Squish GUI Testerを使用した堅牢で自動化されたアプローチを用いて、LabVIEWアプリケーションのユーザーインターフェイスをテストする方法を紹介します。
オブジェクトベースのコントロール認識アプローチが適さない、あるいは不可能な、カスタムで非標準のコントロールを持つUIに対して、Squishは画像ベースのテストとOCRベースのテストの両方を提供します。テスト作成者はこれらの2つのアプローチを1つのテストケースに組み合わせ、それぞれの機能を補完的に使用することができます。ここでは、LabVIEWのVIのサンプルをテストするために、この方法を使用します。
LabVIEWに付属しているControl ReferencesのサンプルVIを使用します。Squishで作成したテストは、アプリ内のInstructionsヘッダーに記載されている手順をカバーします。このブログでは、画像およびOCRベースのテスト手法の使用方法について説明します。SquishでOCR機能を有効にするには、Tessearct OCRライブラリの事前インストールが必要であることに注意してください。
ステータスを変更するために、イメージベースのアプローチを使用します。Squish IDEのコントロールバーからInsertを選択し、mouseclick(<Image>)を選択して、Enabledボタンのスクリーンショットを撮ります。
スクリーンショットが撮影できたら、もう1枚スクリーンショットを撮る必要があります:無効化された(Disabled)オプションのスクリーンショットです。Ctrlキーを押しながら、mouseClick(<Image>)を選択します。これで、Squishがスクリーンショットを撮る前に5秒間、「無効な状態(DisabledStatus)」のリストを展開することができます。
同じ方法で「表示」の設定をクリックし、代わりに「表示の変更」ボタンのスクリーンショットを撮ります。
ここで、XスケールとYスケールの上向き矢印は同一であることに注意してください。テスト再生時にこの2つを区別するようにSquishに指示するには、どうすればよいでしょうか。これには、occurrenceプロパティを使用します。Squishはデスクトップを検索し、選択に一致するすべての位置を見つけ、occurrenceインデックス(画面上で同じ画像が複数存在する場合、その何番目を使用するかを示す数値)を計算します。このインデックスはwaitForImageコールの一部として記録されます。したがって、画面上に同じ画像が存在する場合でも、目的の画像を選択することが重要です。
VIを停止するには、OCRを使ったルックアップを使用することにします。IDEのコントロールバーで、Insertからmouseclick()を選択します。スクリーンショットに対する処理が完了したら、画面上のStopボタンを選択し、Stopテキストが認識されたかどうかを確認し(画面右下のSearch text)、デフォルトのOCR設定でInsert mouseClickを選択してマウスクリックを挿入します。
これでテストケースの記録は完了です。Squish IDEから録画したテストを実行することが可能になりました。
LabVIEWのアプリケーションオブジェクトやそのプロパティにはアクセスできませんでしたが、画像とOCRを組み合わせたテスト手法で、アプリケーションの簡単なテストを自動化することができました。このテストは、画像またはOCRベースの検証ポイントを含むように簡単に拡張することができます。
画像検査やOCRに関する詳しい情報は、YouTubeチャンネルにあるチュートリアルやトピック専用のリリースウェビナー(1, 2)をご覧ください。
テストスクリプトと関連ファイルはこちらからダウンロードください。
SquishをはじめとするQtのQA(品質保証)ツールにご興味がおありの方は、Qt JapanのEメールアドレス:japan@qt.ioまでお気軽にご連絡ください。概要のご説明から詳細な技術的相談、また無料のツールトライアルのご案内もいたしております。