実行時のテキスト認識

関連:GUI テストおよびコンポーネント

UFT One は,OCR(光学式文字認識)メカニズムを使用して,アプリケーション内のテキストを認識します。

UFT One で OCR を使用する状況

UFT One の OCR 機能は,次の状況で使用できます。 

  • テストとスクリプト・コンポーネントの場合,テキストおよびテキスト領域チェックポイントまたは出力値コマンドを使用して,オブジェクト内にあるテキストを確認または取得できます。
  • また,テスト,キーワードまたはスクリプト・コンポーネント,関数ライブラリの場合,.GetVisibleText.GetTextLocation の各テスト・オブジェクト・メソッド,TextUtil.GetText または TextUtil.GetTextLocation の各予約済みオブジェクト・メソッド,または .GetText(ターミナル・エミュレータ・オブジェクト)を使用してアプリケーションでオブジェクトからテキストを取得するステップを挿入できます。
  • アプリケーション内の特定のテキストを表すテキスト・テスト・オブジェクトも,OCR を使用して認識されます。

注: テキスト認識は,ActiveScreen 内のオブジェクトに対してはサポートされません。

テストのパフォーマンスを向上させるため,UFT One は,OCR エンジンによって画像から取得されたテキストを各テスト実行内でキャッシュします。

ヒント: OCR 設定は,たとえば SetABBYYParameters を使用して,テスト実行中に変更できます。その変更を,テスト実行でテキストを取得済みの画像に反映する必要がある場合は,まず OCR キャッシュをクリアする必要があります。詳細については,『UFT One Object Model Reference for GUI Testing』の ClearOCRCache を参照してください。

先頭に戻る

テキスト・テスト・オブジェクト

アプリケーションの開発に使用されたテクノロジに関係なく,アプリケーション内のテキストを表すために,テキスト・テスト・オブジェクトを作成します。これらのテスト・オブジェクトに対して,クリックドラッグドロップホバーなどの操作を実行できます。

テキスト・テスト・オブジェクトは,オブジェクト・リポジトリ・エディタを使って,および記録セッション中に追加できます。詳細については,Insight テスト・オブジェクトまたはテキスト・テスト・オブジェクトの使用およびテキスト・オブジェクト・ステップの記録を参照してください。

TextObjects でサポートされている操作とプロパティについては,『UFT One Object Model Reference for GUI Testing』 の 「Insight & Text」>「TextObject Object」を参照してください。

先頭に戻る

OCR のメカニズムと設定

UFT One で OCR メカニズムを使用する場合,テキストの取得処理に影響を与える要因がいくつかあります。取得するテキストの特性に基づいて,OCR 設定オプションを調整することにより,最適な方法でテキストを取得することができます。最適なテキスト認識メカニズムと OCR 固有の設定は,[テキスト認識]表示枠([オプション]ダイアログ・ボックス>[GUI テスト]タブ)で行います。

次のテキスト認識エンジンのいずれかを使用できます。

  • ABBYY OCR(標準設定のオプション)
  • Tesseract OCR エンジン
  • Google Cloud OCR エンジン
  • Baidu Cloud OCR エンジン

注:  

  • クラウド OCR エンジンを使用するには,関連するベンダのアカウントを設定し,クラウド・サービスへの接続に使用するアクセス・トークンまたはキーを取得する必要があります。

  • 設定された詳細を使用してクラウド OCR サービスに接続できない場合,UFT One は代わりに ABBYY を使用します。
  • UFT One バージョン 2021 R1 以降:ABBYY OCR エンジンをテキスト認識に使用するには,UFT One をインストールするときにこのエンジンを含める必要があります。ABBYY がインストールされていない場合は,代わりに Tesseract が標準設定のエンジンとして使用されます。

先頭に戻る

テキスト認識の最適化

OCR の精度は,フォントと画像の品質と均質性に依存します。

テキスト認識をより効果的に実行するには,以下の考慮事項にも注意する必要があります。

テキストのフォント

(ABBYY および Tesseract OCR エンジンの場合のみ)

  • 単一テキスト・ブロック・モードと複数テキスト・ブロック・モードでは,取得されるテキストが異なる場合があります。どちらのテキスト・ブロック・モードを使用すればよいかわからない場合は,標準設定の複数ブロック・モードを使用してください。結果が期待したものでなければ,単一テキスト・ブロック・モードを試します。

    さまざまなフォントや背景が含まれている大きな領域にテキスト認識メカニズムを使用する場合は,複数のテキスト・ブロックをキャプチャする 1 つのステップを作成するのではなく,各単一テキスト・ブロックのテキストをキャプチャする複数のステップを作成することをお勧めします。

  • 複数テキスト・ブロック・モードでテキスト認識メカニズムを使用したときに,不要なテキスト情報(隠しテキストや,同じ文字列が複数出現したことを示す影付きテキストなど)が取得される場合は,単一テキスト・ブロック・モード・オプションを使用してください。これを行うには,[オプション]ダイアログ・ボックスの[テキスト認識]表示枠([ツール]>[オプション]>[GUI テスト]タブ>[テキスト認識]ノード)で,[単一テキスト ブロック モード]を選択します。詳細については,[テキスト認識]表示枠([オプション]ダイアログ・ボックス>[GUI テスト]タブ)を参照してください。
  • アプリケーションで小さなフォント(10 ポイント未満)を使用している場合は,[テキスト認識を使用する前に画像を前処理]オプションを指定して Tesseract OCR エンジンを使用します。
色および色のコントラスト
  • 背景の配色を一定にし,グラデーションを使用しないようにします。
  • 背景とテキストのコントラストが大きいほどテキスト認識に適しています(黒のテキストと白の背景など)。
画像内のテキスト
  • 画像内にテキストがある場合は,[オプション]ダイアログ・ボックスの[テキスト認識]表示枠で[テキスト認識を使用する前に画像を前処理]オプションを使用することをお勧めします([ツール]>[オプション]>[GUIテスト]タブ>[テキスト認識]モード)。
テキスト認識を行う領域のサイズ
  • 認識されるテキストに不要な文字が入らないように,選択するテキスト領域のサイズをできるだけ小さくしてください。

    同時に,クラウド・ベンダを使用している場合は,非常に小さなウィンドウや要素を避け,認識が失敗するような小さな領域をテキスト領域チェックポイントとして指定しないでください。

    Baidu を使用する場合:長方形の辺の長さが 15 ピクセル以上,4096 ピクセル以下であることを確認してください。

    Google を使用する場合:長方形のサイズが 20 メガピクセル以下であることを確認してください。推奨サイズ:1024 x 768

  • ウィンドウ内でオブジェクトが動く可能性(座標の変化)を考慮する必要があります。たとえば,コンピュータが異なると画面解像度も異なることが多く,アプリケーション内のオブジェクトの座標に影響を与える可能性があります。また,アプリケーションの設計および開発中には,ほかのオブジェクトや美観のためにオブジェクトを動かしてスペースをあけることもあります。

  • オペレーティング・システム,インストールされているサービス・パック,インストールされているツールキットによって,アプリケーションにおけるオブジェクトのサイズや位置が影響を受ける可能性があることを考慮します。選択するテキスト領域のサイズは,さまざまなシステム構成でも十分広いものにします。

  • アプリケーション・ウィンドウのサイズもテキスト認識に影響します。認識の精度が最大限に高くなるように,アプリケーション・ウィンドウのサイズを試してください。その後で,最適なサイズでテストを記録し,実行してください。

15.0 以前の UFT で作成されたテスト

UFT One は現在,以前使用していたものよりも新しい ABBYY OCR エンジンを使用しています。その結果,UFT One 15.0 以前で作成されたテストのテキスト認識に変化が生じる場合があります。

OCR エンジンの一貫性

テストで最適に機能する OCR エンジンを決定したら,そのエンジンを一貫して使用することをお勧めします。実行ごとに異なるエンジンを使用すると,異なる結果が生成される場合があります。

先頭に戻る

その他の参照項目: