AIを活用したテスト<UFT One AIオブジェクト認識:オンプレミス>
テストにAI技術を使用するアプローチには様々なパターンがありますが、今回はその中でも自動テストツール「UFT One(OpenText Functional Testing)」においてAI機能を活用するものを紹介いたします。テストの自動化を行う際に、テストスクリプトの作成やメンテナンス(画面変更への対応など)に非常に多くの工数がかかります。工数のかかるテストスクリプトの作成・メンテナンス作業をAI機能によって効率化するのがこのAIテストです。
自動テストツールのオブジェクト認識
AI機能の話の前に、まずは通常の自動テストツールにおけるオブジェクト認識方法を確認しておきます。
自動テストツールでは、以下のように画面上でメニューやボタンを一意に識別出来る条件(プロパティ)を検出してスクリプトとして記録するので、テスト再生時に記録時と同じ操作を行うことが可能となります。
以下の図では、同じ画面上で同じ「Text」プロパティの値を持つオブジェクトは1つずつしか存在しないので、プロパティによってそれぞれのオブジェクトが明確に識別可能となっています。
問題となる可能性があるのは、アプリケーションの作成においてボタンやメニューなどに一意に識別可能なプロパティが存在しない形で作成されている場合です。
例えば、画像を使ったアイコン形式のボタンやメニューがプログラムによって自動的に生成された画面の場合に、プロパティでは識別させることが出来ない可能性があります。
上記のようにツールがオブジェクトを認識するには内部的なプロパティのような識別可能な情報を使用しますが、人間がテスト手順書を見ながらテストを行う際にはテスト手順書からあいまいな表現を読み取ってテスト対象の操作を行うことが出来ているはずです。
人間がテスト手順から意味を読み取ってテストをする際のメリットの一つは、以下のテスト手順をiOSデバイスとAndroidデバイスのそれぞれで同じようにテストをする場合などです。
異なるUIやアイコン画像であっても、人間はテスト手順書を読めば「ホームボタン」「メール」などのメニューを識別することが出来、どちらのOSに対しても同じ操作のテストを実施することが出来ます。
アイコンの画像や場所が異なっていても、人間が“メールを起動する”という表現を読み取って、デバイスにある「メール」と分かるアイコンをタップしてくれればテストは可能となります。
それを目指して機能実装を開始しているのが、AIオブジェクト認識機能です。
UFT Oneでは具体的には以下のような形で「AIベーステスト」として実装しています。
Androidデバイスにおいても、iOSデバイスにおいても形の違うメールのアイコンを「メール」のアプリ起動トリガとして認識してテストを記録・再生させることが出来ます。
UFT Oneが識別可能な画像はバージョンアップごとに増やされていますが、まだ認識出来ないアイコンや画像などが多い状態です。UFT OneのAIオブジェクト認識機能には、インターネットからAIオブジェクトとして対応して欲しい画像を申請出来る機能が用意されていますので、今後のAI画像認識の機能を向上させるためにも是非とも画像対応依頼を送付いただければと思います。(依頼した画像が必ず採用されて組み込まれる訳ではございませんので、ご了承下さい)
テキスト識別によるAI認識
AIオブジェクト認識には、読み取ったテスト対象の画像からメニューやボタンに書かれている文字をOCR機能によって読み取り、オブジェクトとして識別する方法も用意されています。
以下はWebページのメニューやリンクをAI機能によって文字の判読を行い、オブジェクトとして識別させているサンプルです。画面全体の中から「サポート・サービス」と書かれた部分をオブジェクトとして認識してクリックイベントを発生させて操作を実行することが出来ます。
通常はローカルにインストールされたテストツールのOCR機能を使用しますが、テスト実行用のマシンがインターネットからGoogle OCRに接続可能な場合は、クラウドの強力なパワーを使用して非常に高い識字率でテキストによるAI認識を稼働させることが出来ます。
AIオブジェクト認識に必要なリソース
ローカルのAIオブジェクト認識機能には多くのリソースを必要とします。場合によってはテスト実行用の環境がシンクライアントであることも考えられますので、AIオブジェクト認識機能を使用するにはCPUやメモリがパワー不足になるかもしれません。
その場合は、以下の回避策を検討いただくことも可能です。
テスト管理サーバの起用を使用することで、テストの成否とテスト結果レポート、バグ情報とのトレーサビリティ確保が可能となります。
今回のまとめ
UFT OneのAIオブジェクト認識機能はオンプレミスでも使用可能ですが、本当にAIの機能が力を発揮できるのはやはりクラウド上の大量のデータとリソースを活用する時です。テスト界隈でもAIを活用に期待する声が非常に高くなっており、実際にオブジェクト認識や、テストケース/テストスクリプトの自動生成が可能なクラウドサービスが発表され始めています。
今後、AIとの連携が困難なOSSツールとAIを活用するテストツールは、目指すところが大きく違ってくるのではないかと想像しています。
次回は、ご紹介したAIオブジェクト認識やテストスクリプト/テストケースの管理を最初からクラウド上に準備し、SaaSとして便利に使用いただけるようなったSoftware Delivery Platform Functional Testing の Codeless Testをご紹介します。