Eggplant DAI 6.2とテストパラメータがもたらす利点
本題に入る前に、海外のカンファレンス事情について、最近私が知ったことについて少し述べてみたいと思います。
Swiss Testing Day という、カンファレンスを御存知でしょうか。
その名のとおりソフトウェアテストについてのカンファレンスです。
テスト管理者/エンジニア、品質管理者、開発者、プロジェクトマネージャーなど、テスト業務に携わる人々を対象に、2005年より毎年スイスで開催されています。
ボードメンバーは、クレディスイスやチューリッヒなどのスイス企業が参加しています。
今年は、40のセッションがあり、Google、Amazon、Microsoft、アクセンチュアといったグローバル企業が見受けられます。
Keysight/Eggplantのエンジニアもスピーカーとして参加しました。
プログラムを見ると、DevOpsやAI, ML(Machine Learning)といった言葉を目にします。
最新の技術動向などにも触れるカンファレンスであることがうかがえます。
このブログを目にされている方の中には、現在、テスト自動化ツールとしてSeleniumを使用している方もいらっしゃるかもしれません。
Seleniumについても、 Selenium Day というカンファレンスがあるようです。
こちらは、インドで開催されています。
スポンサーは、SAPやアクセンチュアが入っていますが、いわゆる GAFAのような国際的なIT企業の参加は見受けられません。
AI全体の歴史からみると、ソフトウェアテスト分野への応用は、比較的歴史が浅いと言われています。
その一方で、オブジェクトと親和性が高いAIの方向性と、Seleniumのような従来型テストの方向性の2つが、同時並行的にこの分野を発展させていくように思えてきます。
この観点から、 Eggplant の利点について、少し触れておきたいと思います。
Eggplantでは、画像認識やOCR認識を用いた、オブジェクトベースのテスト自動化が可能です。
これに加えて、Selenium WebDriverを介して、Web要素からXPathによるブラウザ操作も可能です。
この他に、自動的にテストシナリオを作成する機能などもあり、そこでは AI駆動 が用いられています。
さて、本題です。先日、弊社のお客様には、DAI6.2.1のリリースをご案内しました。
このリリースでは、いくつかの機能が追加されています。
メーカーがブログでパラメータの利点について、述べていますので、英文から訳してご紹介致します。
DAI6.2とテストパラメータの利点
Eggplant Digital Automation Intelligence(DAI)プラットフォームの最新メジャーリリースでは、テストの実行方法とテストの解釈の仕方を大きく変更しました。
DAI6.2では、テスト業務のキャパシティを最大化する為に、パラメータの設定が行えます。
パラメータとは?
パラメータは、設定可能な入力値です。異なる複数のテストケースなどで使用が可能です。
パラメータを使用することには利点があります。例えば、テストデータと共に定義されたテストや、一貫性を保ちながらコードの重複を削減する、という点においてです。
DAI6.2のパラメータを使用し、次のような観点でテスト業務に役立てることが出来ます。
01. 一貫性
テストチームが手作業によるタスクを削減すると、他の重要なことに時間を費やすことが出来ます。
処理の高速化は大切ですが、決まりきったテストを自動化している時、容易にその利点に気づくことでしょう。
しかし、自動化によって、品質や一貫性は拡大するのでしょうか。
業務状況によっては、より早く行うことより、この点の方が重要な可能性があります。
同じパラメータを再利用し、手入力を少なくすることで、テスト品質のレベルを保つことが出来ます。すなわち、品質と一貫性のレベルが向上しながら、ヒューマンエラーの機会が減少します。
02. 拡張性
時とともに進展する産業界の挑戦や要求により、必要とされるテストの数は増大します。それにともない、テストチームの規模の拡大や効率性を検討する時、コードの重複が問題となります。
コードの重複を削減することは、より容易な保守と、技術上の、負の資産の削減をもたらします。
1行の重複は、プロジェクトに違いをもたらさないと考えるかもしれませんが、複数のテストケース、複数の機能、複数のテスト担当者、において行えば、最終的に、積み上がります。
これにより、例えば、 テストツールのAI駆動 の実装など、より重要なことに時間を費やすことが出来るようになるかもしれません。
03. 追跡性
テスト自動化では、主要な業務は、エラーに着目して原因調査を行うことです。DAI6.2では、ユーザーが簡単にテストを読み、テストが失敗した理由を特定できるように、テスト構成パラメータに関する大きな改善を行いました。
パラメータの使用により、テスト担当者は、分析およびレビュー対象のインプットが少なくなるため、結果の何が問題だったの理解が、より容易になります。
テストがうまくいっているときは大きな利点とは思えないかもしれませんが、テストがうまくいかなかったときのデバッグを大きく早めることに役立つことでしょう。
以上、意訳となります。詳細については、 原文 をご参照ください
弊社のお客様には、具体的なパラメータ設定画面と、それを動作させたイメージを先日のリリース案内でお知らせ致しました。
そのコードはどのようなものであったかをこの場を借りてお知らせしたいと思います。
パラメータを渡しているSenseTalk コードは次の通りです。
どのようなことをしているでしょうか?
1文に要約すると、次のように言えると思います。
パラメータで渡されたワードを検索エリアに入力し、SEARCHボタンを押し、ブラウザの読み込み完了を確認し、
そのワードをOCRで検索し、各々の座標をアウトプットし、画面ハードコピーを取得する
コードについて、いくつか補足致します。
パラメータは、Paramsキーワードにより渡されます。
2行目、3行目は、いわゆるサブルーチンをコールしています。
これらは、画面上の選択範囲からスクリプトを自動的に生成する機能を使用して作成されたものです。
EveryImageLocationは関数で、画像またはOCR文字を検索した座標が戻されます。
ここでは、textプロパティを使用しており、OCRサーチを行います。
SearchRectangleプロパティでは、左上と右下の2つの画像の名称を指定して、その画像検索によって決定される矩形領域により、OCRサーチの検索範囲を限定しています。
この2つの画像には、それぞれHot Spotという位置情報があり、矩形領域の微調整も可能となっています。
CaptureScreenコマンドでは、画面ハードコピーを取得しています。
実際の矩形領域は、SenseTalkを実行した時、ビュアーウィンドウに一瞬表示されます。
それが次の画像です。
オリジナルの画面解像度は、1900x1200です。実は、矩形領域の外側、Manufacturersの下にもAppleという文字があります。
矩形領域を拡大すると、次のようになります。
ここには、オレンジ色の枠が左上と右下の対角線上にあります。
この対角線を通る黄色い矩形領域が、OCR検索範囲です。
右下のオレンジ色の枠では、中心点から黄色い枠が出ています。これはHot Spotの初期設定が画像の中心の為です。
これに対して、左上は、オレンジ枠の左側から黄色い枠が延びています。Hot Spotを左側にずらす調整を行った為です。
コード上では、この画像の名称を、左上がSortBy, 右下がRightBottomSearchAreaとしています。
スクリプトエディタ上で表示される画像はそれぞれ次のようになっています。
SortBy:
RightBottomSearchArea:
+のマークがHot Spotです。画像により、赤色、白色で表示されています。
RightBottomSearchAreaは、2つの画像が登録されています。これはテスト対象のWin10PC上でいつの間にか別のアイコンが現れたので、画像を追加登録した為です。
いずれの画像でもマッチさせる、という機能を使用しています。
これらの調整により、画面上の検索結果の表示エリアをOCR検索の範囲として、この場合、Appleという文字を検索しました。
この瞬間のビュアーウィンドウは、次のような表示になりました。
黄色い枠が検索範囲、緑の枠が、検索されたOCR文字列です。
これらはEggplantの機能の一例です。Eggplantには多くの機能がありますので、テストに適した機能を見つけてご活用いただければ幸いです。