JP2023544278A - テスト中のアプリケーションのテストオートメーションのためのコンピュータ実装方法およびシステム - Google Patents
テスト中のアプリケーションのテストオートメーションのためのコンピュータ実装方法およびシステム Download PDFInfo
- Publication number
- JP2023544278A JP2023544278A JP2023518399A JP2023518399A JP2023544278A JP 2023544278 A JP2023544278 A JP 2023544278A JP 2023518399 A JP2023518399 A JP 2023518399A JP 2023518399 A JP2023518399 A JP 2023518399A JP 2023544278 A JP2023544278 A JP 2023544278A
- Authority
- JP
- Japan
- Prior art keywords
- file
- computer
- test automation
- automation
- test
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3664—Environments for testing or debugging software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3438—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment monitoring of user actions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3692—Test management for test results analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3696—Methods or tools to render software testable
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Human Computer Interaction (AREA)
- Debugging And Monitoring (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
Abstract
テスト中のアプリケーションのテストオートメーションファイルを生成するためのシステムおよびコンピュータ実装方法が、本明細書に開示される。コンピュータ実装方法は、テスト中のアプリケーションに関連する画像ファイルを取得すること、および画像ファイルの1または複数のコントロール要素を特定することを含む。コンピュータ実装方法は、コンピュータビジョンコンポーネントを使用して、画像ファイルの1または複数のコントロール要素でユーザーによって実行される1または複数のアクションを記録することにより、画像ファイルのテストオートメーション記録データを生成することをさらに含む。コンピュータ実装方法は、設計段階において、テストオートメーション記録データを使用してテストオートメーションファイルを生成することをさらに含む。コンピュータ実装方法は、開発段階において、ライブアプリケーションをテストするためにテストオートメーションファイルを使用することをさらに含む。ライブアプリケーションは、RPAアプリケーションであり得る。
Description
(関連出願への相互参照)
本出願は、2020年9月25日に出願された米国特許出願第17/032,556号の利益およびその優先権を主張する国際出願である。先に提出された本出願の主題は、その全体を参照することにより、本明細書に組み込まれる。
本出願は、2020年9月25日に出願された米国特許出願第17/032,556号の利益およびその優先権を主張する国際出願である。先に提出された本出願の主題は、その全体を参照することにより、本明細書に組み込まれる。
本開示は概して、ロボティックプロセスオートメーション(RPA)に関し、より具体的には、コンピュータビジョン機能を使用したユーザーインターフェースのテストオートメーションに関する。
一般的に、UI(ユーザーインターフェース)デザインの提案は、UI専門家およびUX(ユーザーエクスペリエンス)専門家によって行われる。また、従来は、テストオートメーションはソフトウェア開発段階になってからのみ行うことができた。テストオートメーションエンジニアは、ソフトウェア開発チームがUIの実装を完了するまで、アプリケーションのUIデザインに対するテストオートメーションの実行を待たなければならない場合がある。これは、時間とコストのかかる手順である。さらに、ワークフローの欠陥をリアルタイムでデバッグし、実行時に不具合を回避することは、さらに困難となる。
したがって、テストオートメーションエンジニアが設計段階で欠陥のあるアプリケーションをテストすることができ、ソフトウェア開発者がユーザーインターフェースを実装するまでのテストオートメーションエンジニアの待ち時間を短縮するツールが必要とされている。
本発明の特定の実施形態は、現在のテストオートメーションによってまだ十分に特定されていない、評価されていない、または解決されていない本分野における問題およびニーズのソリューションを提供する。例えば、本発明のいくつかの実施形態は、テストを開始する前に開発者側で費やされる重要な待ち時間を必要とせずに、設計段階でのアプリケーションのテストに関する。そのため、本発明の様々な実施形態は、UI/UX専門家によって開発されたモック画像のテストに関連し、モック画像上のユーザーアクションを記録するためのコンピュータビジョン技術を使用し、テスト中のアプリケーションのテストのためのテストオートメーションの生成のために記録されたアクションを使用する。
実施形態において、テスト中のアプリケーションのテストオートメーションファイルを生成するためのコンピュータ実装方法は、テスト中アプリケーションのユーザーインターフェース設計に関連する画像ファイルを取得することを含む。方法はまた、処理コンポーネントによって、テスト中のアプリケーションのユーザーインターフェース設計に関連する画像ファイルの1または複数のコントロール要素を特定することを含む。1または複数のコントロール要素は、データの入力のためにユーザーによってアクセス可能な1または複数のフィールドを含む。方法は、コンピュータビジョンコンポーネントを用いてテストオートメーション記録データを生成することをさらに含む。テストオートメーション記録データの生成は、得られた画像ファイルの1または複数のコントロール要素で実行された1または複数のアクションを記録することを含む。方法はまた、テストオートメーション記録データに基づいて、テスト中のアプリケーションのテストオートメーションファイルを生成することを含む。テストオートメーションファイルは、テスト中のアプリケーションの実際のユーザーインターフェースにアクセスを提供することなく、生成されたテストオートメーションの記録データを含む。
別の実施形態では、非一時的なコンピュータ読み取り可能な媒体は、コンピュータプログラムを格納する。コンピュータプログラムは、少なくとも1つのプロセッサが、テスト中のアプリケーションのユーザーインターフェース設計に関連する画像ファイルを取得し、テスト中のアプリケーションのユーザーインターフェース設計に関連する画像ファイルの1または複数のコントロール要素を特定するように構成される。1または複数のコントロール要素は、データの入力のためにユーザーによってアクセス可能な1または複数のフィールドを含む。コンピュータプログラムは、少なくとも1つのプロセッサが、コンピュータビジョンコンポーネントを用いてテストオートメーション記録データを生成するようにさらに構成される。テストオートメーション記録データの生成は、得られた画像ファイルの1または複数のコントロール要素で実行された1または複数のアクションを記録することを含む。コンピュータプログラムは、少なくとも1つのプロセッサが、テストオートメーション記録データに基づいて、テスト中のアプリケーションのテストオートメーションファイルを生成するようにさらに構成される。テストオートメーションファイルは、テスト中のアプリケーションの実際のユーザーインターフェースにアクセスを提供することなく、生成されたテストオートメーションの記録データを含む。
さらに別の実施形態では、コンピューティングシステムは、機械読み取り可能なコンピュータプログラム命令を格納するメモリと、コンピュータプログラム命令を遂行するように構成された少なくとも1つのプロセッサとを含む。コンピュータプログラム命令は、少なくとも1つのプロセッサが、テスト中のアプリケーションのユーザーインターフェース設計に関連する画像ファイルを取得し、人工知能処理コンポーネントによって、テスト中のアプリケーションのユーザーインターフェース設計に関連する画像ファイルの1または複数のコントロール要素を特定するように構成される。コンピュータプログラム命令は、コンピュータビジョンコンポーネントを使用して、画像ファイルの1または複数のコントロール要素で実行される1または複数のアクションを記録することによって、テストオートメーション記録データを生成するようにさらに構成される。生成されたテストオートメーション記録データは、画像ファイルの1または複数のコントロール要素上で実行される1または複数のアクションのそれぞれに関連する1または複数の記録されたアクションを含む。コンピュータプログラム命令は、テストオートメーション記録データに基づいて、テスト中のアプリケーションのためのテストオートメーションファイルを生成するようにさらに構成される。テストオートメーションファイルは、生成されたテストオートメーション記録データを含む。
本発明の特定の実施形態の利点が容易に理解されるように、上記で簡単に説明した本発明のより特定の説明は、添付の図面に図示されている特定の実施形態を参照して描写される。これらの図面は、本発明の典型的な実施形態のみを描いており、したがって、その範囲を限定するものとは考えられないことが理解されるべきであるが、本発明は、以下の添付の図面を使用することにより、さらなる特定および詳細をもって描写され、説明されるであろう。
別段の記載がない限り、類似の参照文字は、添付の図面全体で一貫して対応する特徴を示す。
(実施形態の詳細な説明)
いくつかの実施形態は、コンピュータビジョン技術を使用してテスト中のアプリケーションのテストオートメーションファイルを生成するように構成されたシステム(以下、「コンピューティングシステム」と称する)に関する。テストオートメーションファイルは、ライブアプリケーションが利用可能である場合または開発されている場合に、ライブアプリケーションのテストに使用され得る。いくつかの実施形態では、コンピューティングシステムは、テスト中のアプリケーションに関連するUIのモック画像などの画像ファイルに基づいて、テストオートメーションファイルを生成するように構成される。したがって、コンピューティングシステムは、テスト中のアプリケーションが完全に開発される前に、すなわち、テスト中のアプリケーションがライブアプリケーションとなるようにライブ化するずっと前に、テスト中のアプリケーションのテスト段階を開始することを可能にする。
いくつかの実施形態は、コンピュータビジョン技術を使用してテスト中のアプリケーションのテストオートメーションファイルを生成するように構成されたシステム(以下、「コンピューティングシステム」と称する)に関する。テストオートメーションファイルは、ライブアプリケーションが利用可能である場合または開発されている場合に、ライブアプリケーションのテストに使用され得る。いくつかの実施形態では、コンピューティングシステムは、テスト中のアプリケーションに関連するUIのモック画像などの画像ファイルに基づいて、テストオートメーションファイルを生成するように構成される。したがって、コンピューティングシステムは、テスト中のアプリケーションが完全に開発される前に、すなわち、テスト中のアプリケーションがライブアプリケーションとなるようにライブ化するずっと前に、テスト中のアプリケーションのテスト段階を開始することを可能にする。
さらに、コンピューティングシステムは、テスト中のアプリケーションのテストを本当にシフトレフトすることができ、アプリケーションのテストケースを生成するのに費やされるコスト、時間および労力を節約することにつながる。コンピューティングシステムを使用すると、ソフトウェアテストエンジニアなどのユーザーは、ソフトウェアアプリケーションの開発を待つ必要がなく、ソフトウェア開発ライフサイクルの設計段階でソフトウェアアプリケーションのUI/UX画像が利用可能になるとすぐにテストケースを書き始めることができる。
いくつかの実施形態では、コンピューティングシステムは、コンピューティングシステムで利用可能なコンピュータビジョン機能を使用することによって、テスト中のアプリケーションのためのテストオートメーションファイルの生成を可能にする。テストオートメーションファイルは、ソフトウェア開発ライフサイクルの設計段階で準備されたUI設計の画像モックアップなどの画像ファイルに基づいて、テストオートメーション記録データの生成のために画像ファイル上で実行される1または複数のユーザーアクションを記録することにより、生成される。この記録は、コンピュータビジョン機能を用いて行われるため、テストオートメーションファイルの生成のためのデータをキャプチャするための、真に直感的でユーザーフレンドリーなプロセスを提供する。画像ファイルは、次にAI対応クラウドサーバーにアップロードされ、これは、画像ファイルの分析を実行し、1または複数のユーザーアクションの形でユーザーのインタラクションを記録するために画像ファイルの1または複数のコントロール要素を特定する。AI対応クラウドサーバーは、別個の処理コンポーネントとして具現化され、コンピューティングシステムが、本技術分野で利用可能な従来のソフトウェアテストソリューションと比較して、ストレージ要件を低減し、遂行時間を改善することができる。さらに、遂行時間およびストレージ要件の改善は、コンピューティングシステム上の演算オーバーヘッドを減少させ得る。このように、テストオートメーションファイルは、実際のソフトウェア開発ライフサイクルの開始前に生成され、本明細書に開示されたコンピューティングシステムおよびコンピュータ実装方法を使用して、テスト中のアプリケーションのテストオートメーション段階のシフトレフトを引き起こす。いくつかの実施形態では、本発明の範囲から逸脱することなく、テスト中のアプリケーションは、ロボティックプロセスオートメーション(RPA)アプリケーションに関係し、コンピューティングシステムは、RPAシステムに酷似しているかまたはそれを複製する。
図1は、本開示の実施形態による、RPAシステム100を示すアーキテクチャ図である。RPAシステム100は、開発者またはユーザーがワークフローを設計、テストおよび実装することを可能にするデザイナ110を含む。デザイナ110は、アプリケーション統合のためのソリューションを提供するとともに、サードパーティアプリケーション、管理情報技術(IT)タスク、およびビジネスITプロセスを自動化する。デザイナ110はまた、ビジネスプロセスのグラフィカルな表現である自動化プロジェクトの開発を容易にする。簡単に言えば、デザイナ110は、ワークフローおよびロボットの開発および展開を容易にする。
自動化プロジェクトは、本明細書で「アクティビティ」と定義されるワークフローで開発されたステップのカスタムセット間の遂行順序および関係の制御を開発者に与えることにより、ルールベースのプロセスの自動化を可能にする。デザイナ110の実施形態の商業的な一例は、UiPath Studio(商標)である。各アクティビティは、ボタンをクリックする、ファイルを読む、ログパネルに書き込むなどのアクションを含む。いくつかの実施形態では、ワークフローは入れ子になっているか、または埋め込まれ得る。
ワークフローのいくつかのタイプには、シーケンス、フローチャート、有限状態機械(FSM)、および/またはグローバル例外ハンドラなどを含むが、これらに限定されない。シーケンスは、ワークフローを乱雑にすることなく、あるアクティビティから別のアクティビティへのフローを可能にする、線形プロセスに特に適し得る。フローチャートは、特により複雑なビジネスロジックに適し、複数の分岐ロジックオペレータを介して、より多様な方法で意思決定の統合およびアクティビティの接続を可能にする。FSMは、大規模なワークフローに特に適する。FSMは、条件(すなわち、遷移)またはアクティビティによりトリガされ得る有限の数の状態をそれらの遂行中に使用する。グローバル例外ハンドラは、遂行エラーに遭遇したときのワークフローの挙動を決定したり、プロセスをデバッグしたりするのに特に適する。
ワークフローがデザイナ110内で開発されると、ビジネスプロセスの遂行は、コンダクタ120により調整され、デザイナ110内で開発されたワークフローを遂行する1または複数のロボット130を調整する。コンダクタ120の実施形態の商業的な一例は、UiPath Orchestrator(商標)である。コンダクタ120は、環境におけるリソースの生成、監視、および展開の管理を容易にする。コンダクタ120はまた、サードパーティのソリューションおよびアプリケーションとの統合ポイントとして動作する。
コンダクタ120は、全てのロボット130を管理し、ロボット130を集中ポイントから接続して遂行する。管理されるロボット130のタイプには、アテンディッドロボット132、アンアテンディッドロボット134、開発ロボット(アンアテンディッドロボット134と同様であるが、開発およびテストの目的で使用される)、および非生産ロボット(アテンディッドロボット132と同様であるが、開発およびテストの目的で使用される)が含まれるが、これらに限定されない。アテンディッドロボット132は、ユーザーイベントによってトリガされ、同じコンピューティングシステム上で人と並んで動作する。アテンディッドロボット132は、集中プロセスデプロイメントおよびロギング媒体のためのコンダクタ120とともに使用される。アテンディッドロボット132は、人間のユーザーが様々なタスクを達成するのを支援し、ユーザーイベントによってトリガされ得る。いくつかの実施形態では、プロセスは、このタイプのロボット上でコンダクタ120から開始できず、および/またはそれらはロックされた画面の下で実行できない。特定の実施形態では、アテンディッドロボット132は、ロボットトレイからまたはコマンドプロンプトから開始される。次いで、アテンディッドロボット132は、いくつかの実施形態では、人の監督下で動作する。
アンアテンディッドロボット134は、仮想環境で無人で動作し、多くのプロセスを自動化するために使用される。アンアテンディッドロボット134は、リモート遂行、監視、スケジューリング、および作業キューのサポートの提供を担当する。全てのロボットタイプのためのデバッグは、いくつかの実施形態では、デザイナ110において実行される。アテンディッドロボット132およびアンアテンディッドロボット134の両方は、メインフレーム、ウェブアプリケーション、仮想マシン(VM)、エンタープライズアプリケーション(例えば、SAP(登録商標)、SalesForce(登録商標)、Oracle(登録商標)などにより生成されたもの)、およびコンピューティングシステムアプリケーション(例えば、デスクトップおよびラップトップアプリケーション、モバイルデバイスアプリケーション、ウェアラブルコンピュータアプリケーションなど)を含むが、これらに限定されない様々なシステムおよびアプリケーションを自動化するために使用される。
コンダクタ120は、プロビジョニング、展開、構成、キューイング、監視、ロギング、および/または相互接続性の提供を含むがこれらに限定されない様々な能力を有する。プロビジョニングは、ロボット130とコンダクタ120(例えば、ウェブアプリケーション)との間の接続を作成し、維持することを含む。展開は、遂行のために割り当てられたロボット130へのパッケージバージョンの正しい配信を保証することを含む。構成は、ロボット環境およびプロセス構成の維持および配信を含む。キューイングは、キューおよびキュー項目の管理を提供することを含む。監視は、ロボットの特定データを追跡し、ユーザーの権限を維持することを含む。ロギングは、データベース(例えば、SQLデータベース)および/または別のストレージメカニズム(例えば、大規模なデータセットを格納し、迅速にクエリを実行する能力を提供するElasticSearch(登録商標))へのログの保存およびインデックス作成を含む。コンダクタ120は、サードパーティのソリューションおよび/またはアプリケーションのための通信の集中点として動作することにより、相互接続性を提供する。
ロボット130は、デザイナ110で構築されたワークフローを実行する遂行エージェントである。ロボット(複数可)130のいくつかの実施形態の1つの商業的な例は、UiPath Robots(商標)である。いくつかの実施形態では、ロボット130は、デフォルトで、Microsoft Windows(登録商標)Service Control Manager(SCM)管理サービスをインストールする。その結果、ロボット130は、ローカルシステムアカウントの下でインタラクティブなWindows(登録商標)セッションを開くように構成され、かつWindows(登録商標)サービスの権利を有する。
いくつかの実施形態では、ロボット130は、ユーザーモードで設置される。このようなロボット130については、所定のロボット130が設置されているユーザーと同じ権利を有することを意味する。この特色はまた、各マシンを最大限に全活用することを保証する高密度(HD)ロボットにも利用可能である。いくつかの実施形態では、いずれかのタイプのロボット130は、HD環境で構成され得る。
いくつかの実施形態におけるロボット130は、複数のコンポーネントに分割され、それぞれが特定の自動化タスクに特化されている。いくつかの実施形態におけるロボットコンポーネントは、SCM管理ロボットサービス、ユーザーモードロボットサービス、エグゼキュータ、エージェント、およびコマンドラインを含むが、これらに限定されない。SCM管理ロボットサービスは、Windows(登録商標)セッションを管理および監視し、コンダクタ120と遂行ホスト(すなわち、ロボット130が遂行されるコンピューティングシステム)との間のプロキシとして動作する。これらのサービスは、ロボット130の資格情報を任されて管理する。コンソールアプリケーションは、ローカルシステム下のSCMにより起動される。
いくつかの実施形態におけるユーザーモードロボットサービスは、Windows(登録商標)セッションを管理および監視し、コンダクタ120と遂行ホストとの間のプロキシとして動作する。ユーザーモードロボットサービスは、ロボット130の資格情報を任されて管理し得る。SCM管理ロボットサービスがインストールされていない場合、Windows(登録商標)アプリケーションが自動的に起動される。
エグゼキュータは、Windows(登録商標)セッションの下で与えられたジョブを実行する(つまり、それらはワークフローを遂行し得る)。エグゼキュータは、モニタ毎のドットパーインチ(DPI)設定を意識する。エージェントは、システムトレイウィンドウに利用可能なジョブを表示するWindows(登録商標) Presentation Foundation(WPF)アプリケーションであり得る。エージェントは、サービスのクライアントであり得る。エージェントは、ジョブの開始または停止、および設定の変更を要求するように構成される。コマンドラインはサービスのクライアントである。コマンドラインは、ジョブの開始を要求し、その出力を待つコンソールアプリケーションである。
上で説明したように、ロボット130のコンポーネントが分割されていることは、開発者、サポートユーザー、およびコンピューティングシステムが、各コンポーネントが遂行していることをより容易に実行し、特定し、および追跡するのに役立つ。この方法では、エグゼキュータとサービスに異なるファイアウォールルールを設定するなど、コンポーネントごとに特別な挙動を構成し得る。エグゼキュータは常に、いくつかの実施形態では、モニタごとのDPI設定を認識する。その結果、ワークフローは、ワークフローが作成されたコンピューティングシステムの構成に関係なく、いずれかのDPIで遂行される。また、いくつかの実施形態では、デザイナ110からのプロジェクトは、ブラウザのズームレベルに依存しないようにする。DPIを認識していないまたは意図的に認識していないとマークされているアプリケーションの場合、いくつかの実施形態ではDPIを無効にする。
図2は、本開示の実施形態による、展開したRPAシステム200を示すアーキテクチャ図である。いくつかの実施形態では、RPAシステム200は、図1のRPAシステム100の一部であってもよくまたはその一部でなくてもよい。クライアント側、サーバー側、またはその両方が、本発明の範囲から逸脱することなく、いずれかの所望の数のコンピューティングシステムを含むことに留意すべきである。クライアント側では、ロボットアプリケーション210は、エグゼキュータ212、エージェント214、およびデザイナ216(例えば、デザイナ110)を含む。しかし、いくつかの実施形態では、デザイナ216は、ロボットアプリケーション210上で実行していない。エグゼキュータ212はプロセスを実行している。図2に示すように、複数のビジネスプロジェクト(すなわち、エグゼキュータ212)が同時に実行する。エージェント214(例えば、Windows(登録商標)サービス)は、本実施形態では、全てのエグゼキュータ212のための単一の接続ポイントである。この実施形態における全てのメッセージは、コンダクタ230に記録され、それは、データベースサーバー240、インデクササーバー250、またはその両方を介して、それらをさらに処理する。図1に関して上述したように、エグゼキュータ212は、ロボットコンポーネントである。
いくつかの実施形態では、ロボットは、マシン名とユーザー名との間の関連付けを表す。ロボットは、複数のエグゼキュータを同時に管理する。同時に実行される複数のインタラクティブセッションをサポートするコンピューティングシステム(Windows(登録商標)Server 2012など)では、そこで複数のロボットが同時に実行しており、それぞれが一意のユーザー名を使用して別々のWindows(登録商標)セッションで実行している。これは、上記のHDロボットと呼ばれる。
エージェント214はまた、ロボットの状態を送信し(例えば、ロボットがまだ機能していることを示す「ハートビート」メッセージを定期的に送信する)、遂行されるパッケージの要求されるバージョンをダウンロードすることにも責任を負う。エージェント214とコンダクタ230との間の通信は、いくつかの実施形態では、常にエージェント214によって開始される。通知シナリオでは、エージェント214は、後にコンダクタ230によってロボットにコマンド(例えば、開始、停止など)を送信するために使用されるWebSocketチャネルを開く。
サーバー側には、プレゼンテーション層(ウェブアプリケーション232、オープンデータプロトコル(OData)代表状態転送(REST)アプリケーションプログラミングインターフェース(API)エンドポイント234、通知および監視API236)、サービス層(API実装/ビジネスロジック238)、永続層(データベースサーバー240およびインデクササーバー250)が含まれる。コンダクタ230は、ウェブアプリケーション232、OData REST APIエンドポイント234、通知および監視API236、ならびにAPI実装/ビジネスロジック238を含む。いくつかの実施形態では、ユーザーがコンダクタ220のインターフェース(例えば、ブラウザ220を介して)で実行するほとんどのアクションは、様々なAPIを呼び出すことによって実行される。このような動作は、本発明の範囲を逸脱することなく、ロボット上でのジョブの起動、キュー内のデータの追加/削除、無人で実行するジョブのスケジューリングなどを含むが、これらに限定されない。ウェブアプリケーション232は、サーバープラットフォームのビジュアル層である。この実施形態では、ウェブアプリケーション232は、ハイパーテキストマークアップ言語(HTML)およびジャバスクリプト(JS)を使用する。しかし、本発明の範囲を逸脱することなく、いずれかの所望のマークアップ言語、スクリプト言語、または他のいずれかのフォーマットを使用し得る。ユーザーは、コンダクタ230を制御するための様々な動作を実行するために、本実施形態ではブラウザ220を介してウェブアプリケーション232からのウェブページとインタラクションする。例えば、ユーザーは、ロボットグループを作成し、ロボットへのパッケージの割り当てを行い、ロボット毎および/またはプロセス毎のログを解析し、ロボットを起動しおよび停止などをする。
ウェブアプリケーション232に加えて、コンダクタ230は、OData REST APIエンドポイント234を公開するサービス層も含む。しかし、本発明の範囲を逸脱することなく、他のエンドポイントも含まれる。REST APIは、ウェブアプリケーション232とエージェント214の両方により消費される。エージェント214は、本実施形態では、クライアントコンピュータ上の1または複数のロボットのスーパーバイザである。
本実施形態のREST APIは、構成、ロギング、監視、およびキューイング機能をカバーする。構成エンドポイントは、いくつかの実施形態では、アプリケーションのユーザー、権限、ロボット、アセット、リリース、および環境を定義し、構成するために使用される。ロギングRESTエンドポイントは、例えば、エラー、ロボットによって送信された明示的なメッセージ、およびその他の環境固有の情報など、様々な情報をログに記録するために使用される。デプロイメントRESTエンドポイントは、コンダクタ230においてジョブ開始コマンドが使用された場合に遂行されるべきパッケージバージョンを問い合わせるためにロボットにより使用される。キューイングRESTエンドポイントは、キューへのデータの追加、キューからのトランザクションの取得、トランザクションのステータスの設定など、キューおよびキューアイテムの管理を担う。
RESTエンドポイントの監視は、ウェブアプリケーション232およびエージェント214を監視する。通知および監視API236は、エージェント214の登録、エージェント214への構成設定の配信、ならびにサーバーおよびエージェント214からの通知の送受信に使用されるRESTエンドポイントとして構成される。通知および監視API236は、いくつかの実施形態では、WebSocket通信を使用する。
永続層は、本実施形態では、一対のサーバー-データベースサーバー240(例えば、SQLサーバー)およびインデクササーバー250を含む。本実施形態におけるデータベースサーバー240は、ロボット、ロボットグループ、関連するプロセス、ユーザー、役割、スケジュールなどの構成を格納する。この情報は、いくつかの実施形態では、ウェブアプリケーション232を介して管理される。データベースサーバー240はまた、キューおよびキューアイテムを管理する。いくつかの実施形態では、データベースサーバー240は、ロボットにより記録されたメッセージを(インデクササーバー250に加えて、またはそれに代えて)格納する。
いくつかの実施形態では任意であるが、インデクササーバー250は、ロボットにより記録された情報を保存し、インデックスを作成する。特定の実施形態では、インデクササーバー250は、構成設定を介して無効化されてもよい。いくつかの実施形態では、インデクササーバー250は、オープンソースプロジェクトの全文検索エンジンであるElasticSearch(登録商標)を使用する。ロボットにより記録されたメッセージ(例えば、ログメッセージまたはライン書き込みのようなアクティビティを使用して)は、ロギングRESTエンドポイント(複数可)を介してインデクササーバー250に送信されて、そこで将来の利用のためにそれらはインデックス化される。
図3は、本開示の実施形態による、デザイナ310、ユーザー定義アクティビティ320、ユーザーインターフェース(UI)オートメーションアクティビティ330、およびドライバ340間の関係300を示すアーキテクチャ図である。以上のように、開発者は、デザイナ310を用いて、ロボットによって遂行されるワークフローを開発する。いくつかの実施形態によれば、デザイナ310は、統合開発環境(IDE)の設計モジュールであり得、ユーザーまたは開発者がワークフローに関連する1または複数の機能を実行することを可能にする。機能は、ワークフローについての編集、コーディング、デバッグ、ブラウジング、保存、修正などを含む。いくつかの例示的な実施形態では、デザイナ310は、ワークフローを解析することを容易にする。さらに、いくつかの実施形態では、デザイナ310は、マルチウィンドウユーザーインターフェースなどにおいて、2つ以上のワークフローを比較するように構成される。ワークフローは、ユーザー定義のアクティビティ320およびUIオートメーションアクティビティ330を含む。いくつかの実施形態では、画像中の非テキストの視覚的コンポーネントを特定することができ、これは、本明細書ではコンピュータビジョン(CV)と呼ばれる。このようなコンポーネントに関連するいくつかのCVアクティビティは、クリック、タイプ、テキストを取得、ホバー、要素の有無を検出、スコープの更新、ハイライトなどを含むが、これらに限定されない。いくつかの実施形態では、クリックは、例えば、CV、光学的文字認識(OCR)、ファジーテキストマッチング、およびマルチアンカーを使用して要素を特定し、それをクリックする。タイプは、上記および要素内のタイプを用いて要素を特定する。テキストの取得は、特定のテキストの場所を特定し、OCRを使用してそれをスキャンする。ホバーは、要素を特定し、その上にホバーする。要素の有無の検出は、上述した技術を用いて、画面上に要素の有無を検出するかどうかを確認する。いくつかの実施形態では、デザイナ310に実装される数百または数千もののアクティビティが存在し得る。しかし、本発明の範囲を逸脱することなく、いずれかの数および/またはアクティビティのタイプを利用することができる。
UIオートメーションアクティビティ330は、低レベルのコード(例えば、CVアクティビティ)で記述され、画面とのインタラクションを促進する特別な低レベルのアクティビティのサブセットである。いくつかの実施形態では、UIオートメーションアクティビティ330は、ワークフローにおける欠陥のデバッグまたは欠陥の修正に関連する、アクティビティを含む。UIオートメーションアクティビティ330は、ロボットが所望のソフトウェアとインタラクションすることを可能にするドライバ340を介して、これらのインタラクションを促進する。例えば、ドライバ340は、オペレーティングシステム(OS)ドライバ342、ブラウザドライバ344、VMドライバ346、エンタープライズアプリケーションドライバ348などを含む。
ドライバ340は、フックを探したり、キーを監視したりするなど、低レベルでOSドライバ342とインタラクションする。それらは、Chrome(登録商標)、IE(登録商標)、Citrix(登録商標)、SAP(登録商標)などとの統合を促進してもよい。例えば、「クリック」アクティビティは、ドライバ340を介して、これらの異なるアプリケーションにおいて同じ役割を果たす。ドライバ340は、RPAシステムにおけるRPAアプリケーションの遂行を可能にする。
図4は、本開示の実施形態による、RPAシステム400を示すアーキテクチャ図である。いくつかの実施形態では、RPAシステム400は、図1および/または図2のRPAシステム100および/または200であり得るまたは含み得る。RPAシステム400は、複数のクライアントコンピューティングシステム410(例えば、ロボットを実行する)を含む。コンピューティングシステム410は、その上で実行されるウェブアプリケーションを介してコンダクタコンピューティングシステム420と通信する。コンダクタコンピューティングシステム420は、順に、データベースサーバー430(例えば、データベースサーバー240)および任意のインデクササーバー440(例えば、任意のインデクササーバ250)と通信する。
図1および図3に関して、これらの実施形態ではウェブアプリケーションが使用されているが、本発明の範囲から逸脱することなく、任意の適切なクライアント/サーバーソフトウェアが使用され得ることに留意すべきである。例えば、コンダクタは、クライアントコンピューティングシステム上で、非ウェブベースのクライアントソフトウェアアプリケーションと通信するサーバーサイドアプリケーションを実行するように構成される。
図5は、本開示の実施形態による、テスト中のアプリケーションにおけるユーザーインターフェースのロボティックプロセスオートメーション(RPA)ワークフローのために構成されたコンピューティングシステム500を示すアーキテクチャ図である。いくつかの実施形態では、コンピューティングシステム500は、本明細書に描かれたおよび/または記載された1または複数のコンピューティングシステムである。コンピューティングシステム500は、情報を通信するためのバス510または他の通信機構と、情報を処理するためのバス510に結合されたプロセッサ(複数可)520とを含む。プロセッサ(複数可)520は、中央処理ユニット(CPU)、特定用途集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、グラフィックスプロセッシングユニット(GPU)、それらの複数のインスタンス、および/またはそれらのいずれかの組み合わせを含む、いずれかのタイプの一般的または特定用途向けプロセッサであり得る。プロセッサ(複数可)520はまた、複数の処理コアを有し、コアの少なくとも一部は、特定の機能を実行するように構成され得る。いくつかの実施形態では、複数並列処理が使用されてもよい。特定の実施形態では、少なくとも1つのプロセッサ(複数可)520は、生物学的ニューロンを模倣する処理要素を含むニューロモーフィック回路である。いくつかの実施形態では、ニューロモーフィック回路は、フォンノイマンコンピューティングアーキテクチャの典型的なコンポーネントを必要としない。
コンピューティングシステム500は、プロセッサ(複数可)520によって遂行される情報および命令を格納するためのメモリ530をさらに含む。メモリ530は、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、フラッシュメモリ、キャッシュ、磁気ディスクもしくは光ディスクなどの静的記憶装置、または他のタイプの非一時的なコンピュータ読み取り可能な媒体、あるいはそれらのいずれかの組み合わせで構成され得る。非一時的なコンピュータ読み取り可能な媒体は、プロセッサ(複数可)520によってアクセスされる任意の利用可能な媒体であり得、揮発性媒体、不揮発性媒体、またはその両方を含み得る。また、媒体は、取り外し可能なもの、取り外し不可能なもの、または両方であってもよい。
さらに、コンピューティングシステム500は、無線および/または有線接続を介して通信ネットワークへのアクセスを提供するために、トランシーバなどの通信デバイス540を含む。いくつかの実施形態では、通信デバイス540は、周波数分割多元接続(FDMA)、シングルキャリアFDMA(SC-FDMA)、時分割多元接続(TDMA)、符号分割多元接続(CDMA)、直交周波数分割多重方式(OFDM)、直交周波数分割多元接続(OFDMA)、移動体用グローバルシステム(GSM:Global System for Mobile)通信、汎用パケット無線サービス(GPRS:General Packet Radio Service)、ユニバーサル移動体通信システム(UMTS:Universal Mobile Telecommunications System)、cdma2000、広帯域CDMA(W-CDMA:Wideband CDMA)、高速ダウンリンクパケットアクセス(HSDPA:High-Speed Downlink Packet Access)、高速アップリンクパケットアクセス(HSUPA:High-Speed Uplink Packet Access)、高速パケットアクセス(HSPA:High-Speed Packet Access)、ロングタームエボリューション(LTE:Long Term Evolution)、LTEアドバンスト(LTE-A:LTE Advanced)、802.11x、Wi-Fi、Zigbee、超広帯域無線(UWB:Ultra-WideBand)、802.16x、802.15、Home Node-B(HnB)、Bluetooth、無線IDタグ(RFID:Radio Frequency Identification)、IrDA(Infrared Data Association)、近距離無線通信(NFC:Near-Field Communications)、第5世代(5G)、New Radio(NR)、それらのいずれかの組み合わせ、および/または本発明の範囲から逸脱することなく、いずれかの他の現在存在するまたは将来実装される通信標準および/またはプロトコルを使用するように構成される。いくつかの実施形態では、通信デバイス540は、本発明の範囲から逸脱することなく、単数のアンテナ、アレイ状のアンテナ、フェーズドアンテナ、スイッチドアンテナ、ビームフォーミングアンテナ、ビームステアリングアンテナ、それらの組み合わせ、および/またはいずれかの他のアンテナ構成である1または複数のアンテナを含む。
プロセッサ(複数可)520は、バス510を介して、プラズマディスプレイ、液晶ディスプレイ(LCD)、発光ダイオード(LED)ディスプレイ、電界放出ディスプレイ(FED)、有機発光ダイオード(OLED)ディスプレイ、フレキシブルOLEDディスプレイ、フレキシブル基板ディスプレイ、プロジェクションディスプレイ、4Kディスプレイ、高精細ディスプレイ、Retina(登録商標)ディスプレイ、IPS(In-Plane Switching)ディスプレイ、またはユーザーに情報を表示するためのいずれかの他の適切なディスプレイなどのディスプレイ550にさらに結合されている。ディスプレイ550は、抵抗方式、静電容量方式、表面弾性波(SAW)静電容量方式、赤外線方式、光学イメージング方式、分散信号方式、音響パルス認識方式、フラストレート全内部反射方式などを用いて、タッチ(ハプティック)ディスプレイ、3次元(3D)タッチディスプレイ、マルチ入力タッチディスプレイ、マルチタッチディスプレイなどとして構成され得る。本発明の範囲を逸脱することなく、いずれかの好適な表示デバイスおよびハプティックI/Oが使用され得る。
コンピュータマウス、タッチパッドなどのようなキーボード560およびカーソル制御デバイス570は、ユーザーがコンピューティングシステムとインターフェースすることを可能にするために、バス510にさらに結合されている。しかしながら、特定の実施形態では、物理的なキーボードおよびマウスが存在せず、ユーザーは、ディスプレイ550および/またはタッチパッド(図示せず)のみを介してデバイスとインタラクションする。任意の入力デバイスの種類および組み合わせは、設計の選択の問題として使用され得る。特定の実施形態では、物理的な入力デバイスおよび/またはディスプレイは存在しない。例えば、ユーザーは、コンピューティングシステム500と通信している別のコンピューティングシステムを介してリモートでコンピューティングシステム500とインタラクションし、コンピューティングシステム500は自律的に動作し得る。
メモリ530は、プロセッサ(複数可)520により遂行されたときに機能を提供するソフトウェアモジュールを格納する。モジュールは、コンピューティングシステム500のためのオペレーティングシステム532を含む。モジュールはさらに、本明細書に記載されたプロセスの全部もしくは一部またはその派生物を実行するように構成されたUIテストモジュール534を含む。コンピューティングシステム500は、付加的な機能を含む1または複数の付加的な機能モジュール536を含む。
当業者であれば、「システム」は、本発明の範囲から逸脱することなく、サーバー、組み込みコンピューティングシステム、パーソナルコンピュータ、コンソール、パーソナルデジタルアシスタント(PDA)、携帯電話、タブレットコンピューティングデバイス、量子コンピューティングシステム、または他のいずれかの適切なコンピューティングデバイス、またはデバイスの組み合わせとして具現化され得ることを理解するであろう。上述した機能を「システム」により実行されるものとして提示することは、何ら本開示の範囲を限定することを意図するものではなく、本開示の多くの実施形態の一例を提供することを意図するものである。実際、本明細書に開示された方法、システム、および装置は、クラウドコンピューティングシステムを含むコンピューティング技法と整合性のあるローカライズされた形態および分配された形態で実装されてもよい。
本明細書で説明するシステム特色のいくつかは、実装の独立性をより強調するために、モジュールとして提示されていることに留意すべきである。例えば、モジュールは、カスタムの非常に大規模な集積(VLSI)回路またはゲートアレイ、ロジックチップ、トランジスタ、または他の個別部品のような既製の半導体を含むハードウェア回路として実装され得る。また、モジュールは、フィールドプログラマブルゲートアレイ、プログラマブルアレイロジック、プログラマブルロジックデバイス、グラフィックス処理ユニットなどのプログラマブルハードウェアデバイスに実装され得る。
モジュールはまた、様々なタイプのプロセッサにより遂行されるためのソフトウェアに少なくとも部分的に実装される。例えば、遂行可能コードの特定された単位は、例えば、オブジェクト、プロシージャ、または関数として編成されていてもよいコンピュータ命令の1または複数の物理的または論理的なブロックを含み得る。それにもかかわらず、遂行可能な特定されたモジュールは、物理的に一緒に配置されている必要はなく、論理的に結合されたときにモジュールを含み、モジュールのために述べられた目的を達成するために、異なる場所に格納された別々の命令を含む。さらに、モジュールは、例えば、ハードディスクドライブ、フラッシュデバイス、RAM、テープのような非一時的なコンピュータ読み取り可能な媒体、および/または本発明の範囲から逸脱することなくデータを格納するために使用される他のいずれかの非一時的なコンピュータ読み取り可能な媒体に格納される。
実際、遂行可能コードのモジュールは、単一の命令であってもよいし、多数の命令であってもよいし、さらには、複数の異なるコードセグメント、異なるプログラム間、および複数のメモリデバイス間に分散されていてもよい。同様に、動作データは、モジュール内で特定され、ここで示され、いずれかの適切なタイプのデータ構造体内でいずれかの適切な形態で具現化され、組織化され得る。動作データは、単一のデータセットとして収集され、または異なる記憶デバイスにわたり異なる場所に分散され得、少なくとも部分的には、単にシステムまたはネットワーク上の電子信号として存在する。
図6は、本開示の実施形態による、UIテストモジュール600を示すアーキテクチャ図である。いくつかの実施形態では、UIテストモジュール600は、図5に図示されたUIテストモジュール534と同様であるか、または同じである。また、いくつかの実施形態では、UIテストモジュール600は、デザイナ110内に具現化される。UIテストモジュール600は、データ収集モジュール610、テストモジュール620、および修正モジュール630を含み、これらはプロセッサ(複数可)520によって遂行されて、テスト中のアプリケーションにおけるユーザーインターフェースのRPAワークフローをテストするためにそれらの特定の機能性を実行する。
データ収集モジュール610は、ユーザーからRPAワークフローを取得する。実施形態に応じて、データ収集モジュール610は、データファイルとして、または、ユーザーの1または複数のアクションが記録された、テストオートメーションファイルなどの記録ファイルとして、RPAワークフローを取得する。テストオートメーションファイルは、ソリューション設計文書(SDD)、プロセス設計命令(PDI)、オブジェクト設計命令(ODI)、またはビジネスプロセス(BP)コードを含むが、これらに限定されない。
特定の実施形態では、データ収集モジュール610は、設計段階にあるアプリケーションのユーザーインターフェースをテストしている可能性があるユーザーに、イネーブルオプション(enable-option)を提供する。例えば、ユーザーがイネーブルオプションを有効にすると、データ収集モジュール610は、RPAワークフロー(例えば、ユーザーからのライブデータ)の1または複数のアクティビティ(すなわち、シーケンス)を取得する。データ収集モジュール610は、ユーザーからライブデータを取得するデスクトップレコーダーをトリガし得る。例えば、デスクトップレコーダーは、ユーザーのキーボードアクション(例えば、マウスクリックおよびX&Y座標、キーボード押下、デスクトップ画面のオブジェクト検出(例えば、ユーザーによって選択されたボタンおよびテキストフィールドの特定))を記録するとともに、現在アクセスされているアプリケーションおよびユーザーのキーボードアクションの受信を特定する。デスクトップレコーダーはまた、ワークフローの経過時間の長さを測定し、ワークフローの各アクティビティの経過時間の長さを測定し、ワークフローのステップ数をカウントし、かつ記録停止、開始、および一時停止機能をコントロールするためのグラフィカルユーザーインターフェースを提供し得る。さらに、データ収集モジュール610によって得られたRPAワークフローまたはRPAワークフローのシーケンスは、UIテストモジュール620によって使用される。
別の例では、UIテストモジュール600は、RPAワークフローおよびRPAワークフローに関連する予測された欠陥情報を含む。
いくつかの実施形態によると、UIテストモジュール620は、テストされた記録ファイルを出力するために記録されたファイルを分析する。例えば、UIテストモジュール620は、記録されたファイルの各RPAワークフローを分析して、それらの対応するテストされたRPAワークフローを出力する。
いくつかの実施形態によれば、UIテストモジュール600は、1または複数の追加モジュール、例えば、修正モジュールをさらに含む。修正モジュールは、1または複数の修正アクティビティを実行する。修正アクティビティは、RPAワークフローのより良い可能性またはRPAワークフローのアクティビティに関するフィードバックをユーザーに提供すること、RPAワークフローに関連するメトリックスに関するレポートを生成すること、欠陥を有するモック画像を生成することを含む。
いくつかの実施形態では、修正モジュールは、RPAワークフローのより良い可能性に関するフィードバックをユーザーに提供する。いくつかの例示的な実施形態によれば、フィードバックは、修正されたRPAワークフロー、またはRPAワークフローを修正するための提案メッセージを含む。提案メッセージは、RPAワークフローを修正するための情報を含み得る。修正されたRPAワークフローは、RPAワークフローに関連するメトリックスと比較して、より良いメトリックスを有する。
いくつかの実施形態によれば、フィードバックは、機械学習(ML)モデル(図示せず)によって提供され、MLモデルは、高品質のRPAワークフローを構築するためにベストプラクティスドキュメント(best practice document)およびフレームワーク(例えば、Robotic Enterpriseフレームワーク)を使用して訓練される。いくつかの実施形態では、生成されたメトリックスについてのレポートは、パーセントで示される。
特定の実施形態では、修正モジュール630は、RPAワークフローに関連する警告メッセージまたはエラーメッセージを生成する。警告メッセージまたはエラーメッセージは、アクティビティが規則のセットに違反する場合、またはアクティビティが欠陥を含む場合、RPAワークフローのアクティビティの規則違反詳細または欠陥情報を含む要約を含む。いくつかの実施形態によると、修正モジュールは、RPAワークフローに関連する警告メッセージまたはエラーメッセージを含むツールチップアイコンを生成する。修正モジュールはまた、アクティビティが規則のセットに違反する場合、またはアクティビティが欠陥を含む場合、アクティビティを修正するためにユーザーがアクティビティにアクセスするように、アクティビティ名およびその対応する番号を出力し得る。修正モジュールはまた、ワークフロー比較モジュールの機能を含み得る。例えば、修正モジュールは、RPAワークフローおよび修正されたRPAワークフローに関する比較レポートを生成する。比較レポートは、異なる色で強調された変更点を有するRPAワークフローおよび修正されたRPAワークフローを(例えば、横に並べて)含み得る。いくつかの実施形態では、変更点は、新たに追加された行、削除された行、または修正された行のうちの1または複数を含む。
また、一旦RPAワークフローに対して修正アクティビティが実行され、およびRPAワークフローに関連するメトリックスがしきい値メトリックスと適合すると、RPAワークフローはパッケージとして出力され得ることを理解されたい。さらに、パッケージはコンダクタ120によって展開される。いくつかの実施形態では、しきい値メトリックスは、ユーザーによって事前に定義され得、メトリックスについて可能な値に対する限界または範囲制限を提供する。しきい値は、パーセンテージを単位として定義される。
特定の実施形態では、デザイナ110は、RPAワークフローに関連するメトリックスがしきい値メトリックスと適合しない場合、RPAワークフローで前述したテストを再実行するオプションを提供する。
このように、UIテストモジュール600は、プロセッサ(複数可)520によって遂行されるとき、展開の前にRPAワークフローまたはRPAワークフローのアクティビティをデバッグするために前述した動作を実行する。その結果、設計段階で、正確なRPAワークフローを設計することをもたらす。正確なRPAワークフローは、ユーザー定義プロセスを遂行するための限りなく少ない命令(すなわち、より少ないストレージ要件およびより少ない遂行時間のRPAワークフロー)を含む。例えば、UIテストアナライザー600は、RPAワークフローに関連する欠陥(ルール検証のセットに失敗するアクティビティも含む)を特定し、正確なRPAワークフローを設計するための欠陥を除去するためにRPAワークフローを修正する。また、いくつかの実施形態では、ワークフローアナライザー600は、インターリーブ技術(例えば、インターリーブコード開発)により欠陥を除去する。さらに、正確なRPAワークフローは、RPAワークフローと比較して、例えば、信頼性値、再利用性値、正確性値などの改善のような改善された測定メトリックスを有する。いくつかのさらなる実施形態では、ワークフローアナライザー600は、タイミング解析を提供するために、様々なCI/CD(継続的インテグレーションおよび継続的デリバリー)ツールならびに他のアプリケーションおよびサービスと統合する。
図7は、本開示の実施形態による、ワークフローのユーザーインターフェースのモック画像700を示すGUIである。
本実施形態では、モック画像700は、ユーザーインターフェースのバンクアプリケーションのモック画像を示す。モック画像700は、いくつかの実施形態において、テスト中のアプリケーションのテストオートメーションを生成するために使用される画像ファイルに対応する。モック画像700は、ワークフローにおけるユーザーインターフェースのテストオートメーションのために、UIおよびUXの専門家によって提供される。実施形態において、モック画像は、PNGファイルであり得る。例えば、モック画像700は、ユーザーが「電子メールアドレス(Email Address)」、「ローン金額(Loan Amount)」、「ローン期間(Loan Tenure)」、「年収(Yearly Income)」、および「年齢(Age)」を入力してローンを申請できるバンクアプリケーションのユーザーインターフェースの画像ファイルである。バンクアプリケーションは、銀行でローンの見積もりを作成するために、ローンアプリケーションに送信される。ワークフローは、コンピューティングシステム500への入力(すなわち、ユーザーからのRPAワークフロー)を含む。コンピューティングシステム500は、UIテストモジュール534を遂行し、ワークフローをデバッグする。
バンクアプリケーションのためのモックアップ画像、例えばモック画像700に基づいて、テストオートメーションエンジニアは、UI /UX専門家によって提供されるそのようなモック画像上で記録されたファイルを作成することによってUIテストオートメーションの労力を始め得る。したがって、テストモジュール534を使用して、開発者などのユーザーは、RPAアプリケーションに関連付けられたユーザーインターフェースのテストを実際のコーディングおよびそれらのユーザーインターフェースの開発のかなり前に開始することによって、RPAアプリケーションのテストプロセスをシフトレフトすることができる。ある意味では、ユーザーインターフェースのテストは、UIテストモジュール534によって提供されるテストオートメーション機能を使用することにより、設計段階自体で開始される。さらに、コンピュータビジョン(CV)技術を使用してこれらのテストケースを生成することで、開発者またはUI/UXモジュールの設計者であるエンドユーザーにとって、より直感的で便利、迅速かつ効果的なUIテストオートメーションプロセスを実現する。
図8Aおよび図8Bは、本開示の実施形態による、記録されたファイルを作成するために、モック画像の1または複数のコントロール要素でのユーザーに関連する1または複数のアクションを記録するための例示的なシナリオを説明するGUIである。
いくつかの実施形態では、図7のモック画像700に示すように、ローンデータをアプリケーションに記入するための新しいテストケースを作成するために、デザイナ110がユーザーによって開かれる。モック画像に基づいて自動化のための記録ファイルを作成するために、ユーザーは「記録(Recording)」という名前の「リボン(Ribbon)」をクリックし、デザイナ110のコンピュータビジョンベースのレコーダーを使用する。
しかし、記録を進める前に、ユーザーは、モック画像上で特定可能なすべてのUIコントロールを特定するために、モック画像としてモックアップの画像を選択し、これをクラウドAIサーバーまたはオンプレミスサーバーにアップロードし得る。ユーザーは、モック画像のすべてのコントロールとインタラクションし得る。レコーダーは、ユーザーによってモック画像上で実行されたアクションを記録するように構成される。1または複数のアクションは、ユーザーによるモック画像上のフィールドへの記入に対応する。実施形態では、1または複数のアクションは、ローンアプリケーションフォームのデータ(またはモックデータ)を記入することを含む。
図8Bを参照すると、丸みを帯びたドットのボックスは、モック画像上でのユーザーアクションを記録するレコーダーを示し、破線のボックスは、ユーザーがバンクアプリケーションのフォームで詳細を記入するスペースを示す。
図9Aおよび図9Bは、本開示の実施形態による、コンピュータビジョンレコーダーに基づくワークフローとして記録されたファイルを作成するためのスクリーンショットを示すGUIである。
図9Aを参照すると、バンクアプリケーションの形態のモックデータが記入され、ユーザーがモックデータを記入した後に記録を停止していた場合、記録されたオートメーションは、900Aのワークフローとして、デザイナ110にシーケンシャルフォームで表示される。これは、コンピュータビジョンレコーダーに基づく記録ファイルの作成方法の1つである。
図9Bを参照すると、記録されたオートメーションは、デザイナ110において示され、ここで、ユーザーは、ワークフローにおいてコンピュータビジョンアクティビティを追加し、900Bに示すように、一意的に特定可能な画像上のボタンを選択することにより、範囲を示す。
図10は、本開示の実施形態による、モック画像(b)上で自動化を実行するためのモックウェブアプリケーションまたは画像(a)を示すグラフィカルユーザーインターフェース1000である。テストでは、通常、図面に基づいてテストケースを作成することができず、開発者によって実際の実装が完了するまでユーザーが待つことを必要とする。図10に示されるようないくつかの実施形態では、テストケースは、テンプレートとして図面のみを使用して、最初(すなわち、開発前)に作成される。図10の画像(a)を参照。例えば、コンピュータビジョンアルゴリズムは、描画されたコントロール要素(例えば、ボタンまたはテキストボックス)を視覚的に特定し得る。そうするために、いくつかの実施形態では、特定としてニアバイラベルアプローチが使用される。このようにして、この図面に基づいて作成された自動化(図10の画像(b)参照)は、実際のアプリケーション上で遂行可能でもあり得る。図10に示すように、画像(b)は、コンテンツおよびフィールドの点で、画像(a)と類似しているように見える。
図9Aおよび図9Bについて説明したように、モック画像に基づいて自動化のセットが作成される場合、ユーザーはまだモック画像上で自動化を実行することができない。そこで、図10を参照すると、テスト中のアプリケーションまたは設計段階のアプリケーションのユーザーインターフェースに基づいて、モック画像(b)上で自動化を実行するためのウェブアプリケーションが作成される。このようなウェブアプリケーションは、モック画像(b)と同様に動作する。図10の左側にはウェブアプリケーションが示され、右側にはモック画像が示される。実施形態では、ウェブアプリケーションおよびモック画像は、UIデザイナおよびUXデザイナによって提供される。
図11A~図11Dは、本開示の実施形態に従う、ウェブアプリケーション上でモック画像の記録ファイルを実行する際のスクリーンショットを示すGUI1100A~Dである。
図11Aを参照すると、モック画像用ウェブアプリケーション上でユーザーの1または複数の記録されたアクションの記録されたファイルを実行するために、ユーザーはデザイナ110を使用する。ユーザーは、作成された自動化上のオプションボタンをクリックする。さらに図11Bに示すように、ユーザーは、「セレクタを編集する(Edit the selector)」をクリックする。さらに、図11Cおよび図11Dを参照すると、自動化が実行されなければならないターゲットがユーザーによって選択される。ターゲットは、Chromeに対応するが、これに限定されるものではない。実施形態では、デザイナ110において、ウェブアプリケーション上で記録されたファイルを遂行するために、実行ファイルがクリックされる。実行ファイルをクリックすると、デザイナ110は、クラウドAIサーバーと通信してアプリケーションを分析し、その後、自動化を実行する。したがって、コンピュータビジョンは、ユーザーが実際のユーザーインターフェースに実際にアクセスすることなくユーザーインターフェースの自動化を開始することを可能にすることによって、テストオートメーションの労力を本当にシフトすることを可能にする。
図12は、本発明の実施形態による、テストオートメーションファイルを生成するためのコンピュータ実装方法1200を示すフローチャートである。
コンピュータ実装方法1200は、方法1200を遂行するためのトリガを受信したときに、スタートコントロールボックス(Start control box)で遂行を開始する。
コンピュータ実装方法1200は、1210において、テスト中のアプリケーションのUI設計に関連する画像ファイルを取得することを含む。画像ファイルは、展開されたRPAアプリケーションまたはまだ開発されていないテスト中のアプリケーションなどの実際のアプリケーションのUI設計のモックアップに対応する。いくつかの実施形態では、画像ファイルは、Portable Network Graphic(PNG)形式のファイルである。他の実施形態では、画像ファイルは、限定されないが、Joint Photographic Experts Group(JPEG)フォーマット画像、JPGフォーマット画像、Tagged Image File Format(TIFF)フォーマット画像、ビットマップ(BMP)フォーマット画像、Graphics Interchange Format(GIF)フォーマット画像、Encapulated PostScript(EPS)フォーマット画像、およびRAWタイプの画像など、本術分野で知られている利用可能なロッシーまたはロスレス画像ファイルフォーマットのいずれかであり得る。
画像ファイルが取得されると、コンピュータ実装方法1200は、1220において、画像ファイルの1または複数のコントロール要素を特定することを含む。画像ファイルの1または複数のコントロール要素は、ユーザーが、デザイン画像ファイルによって図示されるUIとインタラクションするために使用し得る要素である。例えば、1または複数のコントロール要素は、画像ファイルのモックデータを記入するためのフィールドに対応する。そのようなフィールドは、限定されないが、テキストボックス、ボタン、ドロップダウンリスト、ウィンドウ、チェックボックス、スライダなどのナビゲーションコンポーネント、フォーム、ラジオボタン、メニュー、アイコン、ツールチップ、検索フィールド、サイドバー、ローダー、トグルボタンなどを含む。
いくつかの実施形態では、1または複数のコントロール要素は、図面上の1または複数のコントロール要素(例えば、ボタンまたはテキストボックス)の位置を見つけることによって特定される。図面が分析されるため、図面上の画像そのものをユーザーが使用することはできない。しかし、AI処理コンポーネントでは、1または複数のコントロール要素の相対的な位置が特定される。相対的な位置は、例えば、座標系を用いて特定される。
いくつかの実施形態では、画像ファイルは、AI対応クラウドサーバーなどのAI処理コンポーネントにアップロードされ、画像ファイルは、画像ファイルに関連する1または複数のコントロール要素を特定するためにAI技術を使用して分析される。いくつかの実施形態では、AI処理コンポーネントは、1または複数のコントロール要素を特定するためにAI処理コンポーネントを使用してコンピューティングシステム上で画像ファイルをローカルに分析するように、方法1200を遂行するコンピューティングシステムの一部となるように具現化される。例えば、AI処理コンポーネントは、その形状および外観に基づいてコントロールの種類(例えば、テキストボックスとボタン)を特定し、したがって、その上で可能な入力方法を導き出す(例えば、あなたはテキストボックスに入力でき、あなたはボタンでクリックできる)。AI処理コンポーネントの強みは、つまり、コントロール要素の画像を、以前に撮影された類似画像のスクリーンショットと単純に一致させようとしないことである。AI処理コンポーネントは、教師あり学習により、膨大な数のコントロールの学習セットで訓練される。このアプローチにより、コントロールの種類に視覚的な違いがあっても、安定したコントロールの種類の特定が可能になる。このように、人間のユーザーが形または色に関係なくボタンをボタンとして特定できるように、AI処理アルゴリズムも同様に、ボタンをボタンとして特定する。
1または複数のコントロール要素の分析および特定の後、コンピュータ実装方法1200は、1230において、コンピュータビジョンコンポーネントを使用して、特定された1または複数のコントロール要素上で実行されたユーザーアクションの記録によってテストオートメーション記録データを生成することを含む。ユーザーアクションは、画像ファイルの1または複数のコントロール要素で実行される1または複数のアクションは、画像ファイルにおけるユーザーによるモックデータの記入に対応する。例えば、ユーザーは、図7に描かれたモック画像700に図示されたテキストフィールドに、電子メールアドレス、ローン金額、ローン期間、および年齢に関するデータを記入することができる。テキストフィールドは、1または複数のコントロール要素に対応し、これらのテキストフィールドへのデータの記入は、コンピューティングシステム500のコンピュータビジョン対応レコーダーによって記録される、1または複数のユーザーアクションに対応する。記録は、ユーザーが図8Aに図示されたリボンの記録オプションをクリックしたときにトリガされる。一旦開始されたコンピュータビジョンレコーダーは、コンピュータビジョンアクティビティまたはCVアクティビティ(前述したように)を記録する。いくつかのCVアクティビティは、クリック、タイプ、テキストを取得、ホバー、要素の有無を検出、スコープの更新、ハイライトなどを含むが、これらに限定されない。いくつかの実施形態では、クリックは、例えば、CV、光学的文字認識(OCR)、ファジーテキストマッチング、およびマルチアンカーを使用して要素を特定し、それをクリックする。タイプは、上記および要素内のタイプを用いて要素を特定する。テキストの取得は、特定のテキストの場所を特定し、OCRを使用してそれをスキャンする。ホバーは、要素を特定し、その上にホバーする。要素の有無の検出は、上述した技術を用いて、画面上に要素の有無を検出するかどうかを確認する。いくつかの実施形態では、デザイナ310に実装され得る数百または数千もののアクティビティが存在してもよい。しかし、本発明の範囲を逸脱することなく、いずれかの数および/またはアクティビティのタイプを利用することができる。UIオートメーションアクティビティ330は、低レベルのコード(例えば、CVアクティビティ)で書かれ、モック画像の1または複数のコントロール要素上で実行される1または複数のユーザーアクションなどの画面とのインタラクションを容易にする特別な低レベルアクティビティのサブセットである。
これらの1または複数のユーザーアクションの記録に基づいて、1240において、テスト中のアプリケーションのテストオートメーションファイルの生成のために、テストオートメーション記録データが生成され、使用される。例えば、ユーザーが記録を停止すると、記録されたオートメーションは、図9Aに示されるように、UiPath Studio Proなどのコンピューティングシステムにおいて、ワークフローとしてシーケンシャルフォームに示される。
これらの記録されたオートメーションは、その後、ライブアプリケーションが開発されると、テスト中のアプリケーションに対応するアプリケーションなどのライブアプリケーションのテストのために使用され得る。いくつかの実施形態では、生成されたテストオートメーションファイルは、様々な記録されたオートメーションがシーケンシャルワークフローの形態で格納されたRPAテストオートメーションに対応する。いくつかの実施形態では、テストオートメーションファイルの記録されたテストオートメーションは、後にChromeのようなブラウザなどの正しいターゲットを指定することによってライブアプリケーションと関連付けられ、次いで、ライブアプリケーションのテストのためにライブアプリケーション上で記録されたオートメーションを実行するために使用される。
図12で実行されるプロセスステップは、本発明の実施形態によって、図12で説明したプロセス(複数可)の少なくとも一部を実行するようにプロセッサ(複数可)への命令をエンコードするコンピュータプログラムによって実行される。コンピュータプログラムは、非一時的なコンピュータ読み取り可能な媒体に格納されていてもよい。コンピュータ読み取り可能な媒体は、ハードディスクドライブ、フラッシュデバイス、RAM、テープ、および/またはデータを格納するために使用される他のそのような媒体または媒体の組み合わせであってもよいが、これらに限定されるものではない。コンピュータプログラムは、図12に記載されたプロセスステップの全部または一部を実装するために、コンピューティングシステム(例えば、図5のコンピューティングシステム500のプロセッサ(複数可)520)のプロセッサ(複数可)を制御するためのコード化された命令を含んでもよく、これはまた、コンピュータ読み取り可能な媒体に格納されてもよい。
図13は、本発明の実施形態による、ライブアプリケーションをテストするためのコンピュータ実装方法1300を示すフローチャートである。
コンピュータ実装方法1300は、コンピュータ実装方法1200と関連して先に説明した処理ステップのすべてを含む。例えば、コンピュータ実装方法1300は、開始(Start)で制御を開始し、1310で、テスト中のアプリケーションのユーザーインターフェース設計に関連する画像ファイルを取得し、1320で、画像ファイルの1またはコントロール要素を特定することを含む。特定は、1または複数のコントロール要素の分析および特定のために画像ファイルをアップロードすることができるAI対応クラウドサーバーなどの人工知能コンポーネントを使用して行われる。次に、1330において、テストオートメーション記録データは、前述のように、1または複数のコントロール要素上で実行される1または複数のユーザーアクションを記録するためのコンピュータビジョンコンポーネントを使用して生成される。
さらに、1340では、テスト中のアプリケーションのために、テストオートメーション記録データを含むテストオートメーションファイルが生成される。
記録されたテストオートメーションを使用して実際のテストを行うために、1350で、ライブアプリケーションが選択される。ライブアプリケーションは、ブラウザ(Chromeなど)で開くことができ、図11Aおよび図11Bに示されるプロセスを使用して選択される。例えば、記録されたテストオートメーション上で、ユーザーは、コンピューティングシステム500上の別のウィンドウでブラウザで開かれたライブアプリケーションファイルを選択するための編集セレクタ(Edit Selector)オプション上でクリックする。
さらに、1360において、生成されるテストオートメーションファイルは、図11Cに示されるように、選択されたライブアプリケーションと関連付けられる。このために、記録されたテストオートメーションのセレクタエディタ(Selector Editor)において、Chromeのようなブラウザでターゲットを指定する。ライブアプリケーションと記録されたテストオートメーションとの間の関連付けが確立されると、1370において、テストオートメーションファイルにおける1または複数の記録されたユーザーアクションは、ユーザーがコンピューティングシステム500のスタジオ(Studio)モジュールによってなど、コンピューティングシステムで提供される実行ファイルオプションをクリックする場合など、ライブアプリケーション上で遂行される。その後、コンピューティングシステム500は、AI対応クラウドサーバーと通信してライブアプリケーションを分析し、その後、自動化を実行する。
いくつかの実施形態では、ユーザーは、テストオートメーションのためのコンピュータビジョンアクティビティのワークフローにコンピュータビジョンアクティビティを追加し、図9Bに示すように、一意的に特定可能な画像上のボタンを選択することによって、範囲を示すことができる。
このように、コンピュータ実装方法1200および1300は、ユーザーが実際のユーザーインターフェースに実際にアクセスすることなくユーザーインターフェースの自動化を開始することを可能にすることによって、テストオートメーションの労力を本当にシフトすることを可能にする。
図13で実行されるプロセスステップは、本発明の実施形態によって、図13で説明したプロセス(複数可)の少なくとも一部を実行するようにプロセッサ(複数可)への命令をエンコードするコンピュータプログラムによって実行される。コンピュータプログラムは、非一時的なコンピュータ読み取り可能な媒体に格納されていてもよい。コンピュータ読み取り可能な媒体は、ハードディスクドライブ、フラッシュデバイス、RAM、テープ、および/またはデータを格納するために使用される他のそのような媒体または媒体の組み合わせであってもよいが、これらに限定されるものではない。コンピュータプログラムは、図13に記載されたプロセスステップの全部または一部を実装するために、コンピューティングシステム(例えば、図5のコンピューティングシステム500のプロセッサ(複数可)520)のプロセッサ(複数可)を制御するためのコード化された命令を含んでもよく、これはまた、コンピュータ読み取り可能な媒体に格納されてもよい。
コンピュータプログラムは、ハードウェア、ソフトウェア、またはハイブリッド実装で実装され得る。コンピュータプログラムは、互いに動作可能な通信を行うモジュールで構成され得、情報または指示をディスプレイに送るように設計されている。コンピュータプログラムは、汎用コンピュータ、ASIC、またはいずれかの他の好適なデバイスで動作するように構成され得る。
本開示の様々な実施形態のコンポーネントは、本明細書に一般的に記載され、図示されているように、様々な異なる構成で配置され、設計されてもよいことが、容易に理解されるであろう。したがって、添付の図に表されるような本開示の実施形態の詳細な説明は、特許請求されるような本発明の範囲を限定することを意図するものではなく、本発明の選択された実施形態を代表するものにすぎない。
本明細書を通して記載された本発明の特色、構造、または特徴は、1または複数の実施形態では、いずれかの好適な方法で組み合わせられ得る。例えば、本明細書全体を通して「特定の実施形態」、「いくつかの実施形態」、または類似の言語を参照することは、実施形態に関連して記載された特定の特色、構造、または特徴が、本開示の少なくとも1つの実施形態に含まれていることを意味する。したがって、本明細書全体を通して「特定の実施形態では」、「いくつかの実施形態では」、「他の実施形態では」、または類似の言語の出現は、必ずしも全ての実施形態の同じグループを指すものではなく、記載された特色、構造、または特徴は、1または複数の実施形態ではいずれかの好適な方法で組み合わせられ得る。
本明細書全体を通して特色、利点、または類似の言語への参照は、本開示で実現され得る特色および利点の全てが、本発明のいずれかの単一の実施形態にあるべきであること、または本発明のいずれかの実施形態であることを意味するものではないことに留意すべきである。むしろ、特色および利点に言及する言語は、実施形態に関連して記載された特定の特色、利点、または特徴が、本開示の少なくとも1つの実施形態に含まれることを意味すると理解される。したがって、本明細書全体での特色および利点の議論、ならびに類似の言語は、同じ実施形態を参照することができるが、必ずしもその必要性はない。
さらに、本発明の記載された特色、利点、および特徴は、1または複数の実施形態では、いずれかの好適な方法で組み合わせることができる。関連する技術の当業者は、本発明が、1または複数の特定の実施形態の特定の特徴または利点なしに実施され得ることを認識するであろう。他の例では、追加の特徴および利点は、本発明の全ての実施形態には存在しないかもしれないが特定の実施形態では認識され得る。
本分野における通常の技術を有する者は、上述したような本発明を、異なる順序でのステップを用いて、および/または開示されているものとは異なる構成のハードウェア要素を用いて実施することができることを容易に理解するであろう。したがって、本発明は、これらの好ましい実施形態に基づいて説明されてきたが、本発明の精神および範囲内にとどまりながら、特定の変更、変形、および代替的な構成が明らかになることは、当業者には明らかであろう。したがって、本発明の範囲を決定するためには、添付の特許請求の範囲を参照すべきである。
Claims (20)
- テスト中のアプリケーションのテストオートメーションファイルを生成するためのコンピュータ実装方法であって、
テスト中の前記アプリケーションのユーザーインターフェース設計に関連する画像ファイルを取得し、
処理コンポーネントによって、テスト中の前記アプリケーションの前記ユーザーインターフェース設計に関連する前記画像ファイルの1または複数のコントロール要素を特定し、ここで、前記1または複数のコントロール要素は、データの入力のためにユーザーがアクセスできる1または複数のフィールドで構成され、
コンピュータビジョンコンポーネントを用いてテストオートメーション記録データを生成し、ここで、前記テストオートメーション記録データの生成は、得られた前記画像ファイルの前記1または複数のコントロール要素で実行された1または複数のアクションを記録することを含み、
前記テストオートメーション記録データに基づいて、テスト中の前記アプリケーションの前記テストオートメーションファイルを生成し、ここで、前記テストオートメーションファイルは、テスト中の前記アプリケーションの実際のユーザーインターフェースへのアクセスを提供せずに、生成された前記テストオートメーション記録データを含む、ことを含む、コンピュータ実装方法。 - 生成された前記テストオートメーションファイルを取得し、
ライブアプリケーションファイルを選択し、
生成された前記テストオートメーションファイルを、選択された前記ライブアプリケーションファイルと関連付け、
生成された前記テストオートメーション記録データに関連する前記1または複数の記録されたアクションを、前記関連付けに基づいて選択された前記ライブアプリケーションファイル上で遂行することをさらに含む、請求項1に記載のコンピュータ実装方法。 - 前記1または複数のアクションの記録は、ワークフローのシーケンシャルフォーム(sequential form)にある、請求項1に記載のコンピュータ実装方法。
- 前記1または複数のアクションを記録するために、前記方法はさらに、
ワークフローにおける前記ユーザーのコンピュータビジョンアクティビティを受信し、
前記ユーザーによって、一意的に特定可能な前記画像ファイル上のボタンの選択を受信すること含む、請求項1に記載のコンピュータ実装方法。 - テスト中の前記アプリケーションの前記ユーザーインターフェース設計に関連する前記画像ファイルの前記1または複数のコントロール要素を特定することはさらに、
クラウドサーバー上に、テスト中の前記アプリケーションの前記ユーザーインターフェース設計に関連する取得された前記画像ファイルをアップロードし、ここで、前記クラウドサーバーは、前記処理コンポーネントを含み、
前記クラウドサーバーに関連する前記処理コンポーネントによって、アップロードされた前記画像ファイルを処理し、ここで、アップロードされた前記画像の処理は、取得された前記画像ファイル上の座標系を使用して、前記1または複数のコントロール要素のそれぞれについて位置を特定することを含み、
前記処理に基づき、前記画像ファイルの前記1または複数のコントロール要素を特定することを含む、請求項1に記載のコンピュータ実装方法。 - 前記1または複数のコントロール要素の特定は、前記画像の1または複数の特徴に基づいて、前記1または複数のコントロール要素のそれぞれについてコントロールタイプを特定することを含む、請求項5に記載のコンピュータ実装方法。
- 前記画像ファイルの前記1または複数のコントロール要素で実行される前記1または複数のアクションは、前記画像ファイルにおけるユーザーによるモックデータの記入に対応する、請求項1に記載のコンピュータ実装方法。
- 生成された前記テストオートメーションファイルは、ロボティックプロセスオートメーション(RPA)ワークフローファイルである、請求項1に記載のコンピュータ実装方法。
- コンピュータプログラムを格納した非一時的なコンピュータ読み取り可能な媒体であって、前記コンピュータプログラムは、少なくとも1つのプロセッサが、
テスト中のアプリケーションのユーザーインターフェース設計に関連する画像ファイルを取得し、
テスト中の前記アプリケーションの前記ユーザーインターフェース設計に関連する前記画像ファイルの1または複数のコントロール要素を特定し、ここで、前記1または複数のコントロール要素は、データの入力のためにユーザーがアクセスできる1または複数のフィールドで構成され、
コンピュータビジョンコンポーネントを用いてテストオートメーション記録データを生成し、ここで、前記テストオートメーション記録データの生成は、得られた前記画像ファイルの前記1または複数のコントロール要素で実行された1または複数のアクションを記録することを含み、
前記テストオートメーション記録データに基づいて、テスト中の前記アプリケーションのテストオートメーションファイルを生成し、ここで、前記テストオートメーションファイルは、テスト中の前記アプリケーションの実際のユーザーインターフェースへのアクセスを提供せずに、生成された前記テストオートメーション記録データを含む、ように構成される、非一時的なコンピュータ読み取り可能な媒体。 - 前記コンピュータプログラムはさらに、前記少なくとも1つのプロセッサが、
生成された前記テストオートメーションファイルを取得し、
ライブアプリケーションファイルを選択し、
生成された前記テストオートメーションファイルを、選択された前記ライブアプリケーションファイルと関連付け、
生成された前記テストオートメーション記録データに関連する前記1または複数の記録されたアクションを、前記関連付けに基づいて選択された前記ライブアプリケーションファイル上で遂行する、ように構成される、請求項9に記載の非一時的なコンピュータ読み取り可能な媒体。 - 前記1または複数のアクションの記録は、ワークフローのシーケンシャルフォーム(sequential form)にある、請求項9に記載の非一時的なコンピュータ読み取り可能な媒体。
- 前記コンピュータプログラムはさらに、前記少なくとも1つのプロセッサが、
ワークフローにおける前記ユーザーのコンピュータビジョンアクティビティを受信し、
前記ユーザーによって、一意的に特定可能な前記画像ファイル上のボタンの選択を受信する、ように構成される、請求項9に記載の非一時的なコンピュータ読み取り可能な媒体。 - 前記コンピュータプログラムはさらに、前記少なくとも1つのプロセッサが、
クラウドサーバー上に、テスト中の前記アプリケーションの前記ユーザーインターフェース設計に関連する取得された前記画像ファイルをアップロードし、ここで、前記クラウドサーバーは、処理コンポーネントを含み、
アップロードされた前記画像ファイルを処理し、
前記処理に基づき、前記画像ファイルの前記1または複数のコントロール要素を特定する、ように構成される、請求項12に記載の非一時的なコンピュータ読み取り可能な媒体。 - 前記コンピュータプログラムはさらに、前記少なくとも1つのプロセッサが、取得された前記画像ファイル上の座標系を用いて、前記1または複数のコントロール要素の各々について位置を特定する、ように構成される、請求項13に記載の非一時的なコンピュータ読み取り可能な媒体。
- 前記コンピュータプログラムはさらに、前記少なくとも1つのプロセッサが、前記画像の1または複数の特徴に基づいて、前記1または複数のコントロール要素のそれぞれについてコントロールタイプを特定する、ように構成される、請求項14に記載の非一時的なコンピュータ読み取り可能な媒体。
- 前記画像ファイルの前記1または複数のコントロール要素で実行される前記1または複数のアクションは、前記画像ファイルにおけるユーザーによるモックデータの記入に対応する、請求項9に記載の非一時的なコンピュータ読み取り可能な媒体。
- 生成された前記テストオートメーションファイルは、ロボティックプロセスオートメーション(RPA)ワークフローファイルである、請求項9に記載の非一時的なコンピュータ読み取り可能な媒体。
- 機械読み取り可能なコンピュータプログラム命令を格納するメモリと、
前記コンピュータプログラム命令を遂行するように構成された少なくとも1つのプロセッサとを含むコンピューティングシステムであって、前記コンピュータプログラム命令は、前記少なくとも1つのプロセッサが、
テスト中のアプリケーションのユーザーインターフェース設計に関連する画像ファイルを取得し、
人工知能処理コンポーネントによって、テスト中の前記アプリケーションの前記ユーザーインターフェース設計に関連する前記画像ファイルの1または複数のコントロール要素を特定し、
コンピュータビジョンコンポーネントを使用して、前記画像ファイルの前記1または複数のコントロール要素で実行される1または複数のアクションを記録することによって、テストオートメーション記録データを生成し、ここで、生成された前記テストオートメーション記録データは、前記画像ファイルの前記1または複数のコントロール要素で実行される前記1または複数のアクションのそれぞれに関連する1または複数の記録されたアクションを含み、
前記テストオートメーション記録データに基づいて、テスト中の前記アプリケーションのテストオートメーションファイルを生成し、ここで、前記テストオートメーションファイルは、生成された前記テストオートメーション記録データを含む、コンピューティングシステム。 - 前記1または複数のアクションの記録は、ワークフローのシーケンシャルフォーム(sequential form)にある、請求項18に記載のコンピュータプログラマブル製品。
- 前記コンピュータプログラム命令はさらに、前記少なくとも1つのプロセッサが、
生成された前記テストオートメーションファイルを取得し、
ライブアプリケーションファイルを選択し、
生成された前記テストオートメーションファイルを、選択された前記ライブアプリケーションファイルと関連付け、
生成された前記テストオートメーション記録データに関連する前記1または複数の記録されたアクションを、前記関連付けに基づいて選択された前記ライブアプリケーションファイル上で遂行する、ように構成される、請求項18に記載のコンピュータプログラマブル製品。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/032,556 US20220100639A1 (en) | 2020-09-25 | 2020-09-25 | Computer-implemented method and system for test automation of an application under test |
US17/032,556 | 2020-09-25 | ||
PCT/US2021/047699 WO2022066351A1 (en) | 2020-09-25 | 2021-08-26 | Computer-implemented method and system for test automation of an application under test |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023544278A true JP2023544278A (ja) | 2023-10-23 |
Family
ID=80822652
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2023518399A Pending JP2023544278A (ja) | 2020-09-25 | 2021-08-26 | テスト中のアプリケーションのテストオートメーションのためのコンピュータ実装方法およびシステム |
Country Status (5)
Country | Link |
---|---|
US (1) | US20220100639A1 (ja) |
EP (1) | EP4217873A1 (ja) |
JP (1) | JP2023544278A (ja) |
CN (1) | CN116508007A (ja) |
WO (1) | WO2022066351A1 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11829284B2 (en) * | 2021-06-07 | 2023-11-28 | International Business Machines Corporation | Autonomous testing of software robots |
US11900680B2 (en) * | 2022-04-11 | 2024-02-13 | Citrix Systems, Inc. | Extracting clips of application use from recordings of sessions |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7421683B2 (en) * | 2003-01-28 | 2008-09-02 | Newmerix Corp£ | Method for the use of information in an auxiliary data system in relation to automated testing of graphical user interface based applications |
US9606897B2 (en) * | 2011-06-16 | 2017-03-28 | Hewlett Packard Enterprise Development Lp | Parsing an image of a visually structured document |
US8984339B2 (en) * | 2012-01-31 | 2015-03-17 | Bank Of America Corporation | System and method for test case generation using components |
US8943468B2 (en) * | 2012-08-29 | 2015-01-27 | Kamesh Sivaraman Balasubramanian | Wireframe recognition and analysis engine |
WO2014117387A1 (en) * | 2013-02-01 | 2014-08-07 | Hewlett-Packard Development Company, L.P. | Test script creation based on abstract test user controls |
US9747331B2 (en) * | 2014-10-06 | 2017-08-29 | International Business Machines Corporation | Limiting scans of loosely ordered and/or grouped relations in a database |
US10169006B2 (en) * | 2015-09-02 | 2019-01-01 | International Business Machines Corporation | Computer-vision based execution of graphical user interface (GUI) application actions |
US10339027B2 (en) * | 2016-09-06 | 2019-07-02 | Accenture Global Solutions Limited | Automation identification diagnostic tool |
US10248543B2 (en) * | 2017-04-25 | 2019-04-02 | Dennis Lin | Software functional testing |
US10705948B2 (en) * | 2017-10-30 | 2020-07-07 | Bank Of America Corporation | Robotic process automation simulation of environment access for application migration |
US11048619B2 (en) * | 2018-05-01 | 2021-06-29 | Appdiff, Inc. | AI software testing system and method |
US10929159B2 (en) * | 2019-01-28 | 2021-02-23 | Bank Of America Corporation | Automation tool |
-
2020
- 2020-09-25 US US17/032,556 patent/US20220100639A1/en active Pending
-
2021
- 2021-08-26 EP EP21873160.2A patent/EP4217873A1/en active Pending
- 2021-08-26 JP JP2023518399A patent/JP2023544278A/ja active Pending
- 2021-08-26 CN CN202180073361.7A patent/CN116508007A/zh active Pending
- 2021-08-26 WO PCT/US2021/047699 patent/WO2022066351A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
CN116508007A (zh) | 2023-07-28 |
US20220100639A1 (en) | 2022-03-31 |
EP4217873A1 (en) | 2023-08-02 |
WO2022066351A1 (en) | 2022-03-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2023514682A (ja) | ロボティックプロセスオートメーションのための自動化ウィンドウ | |
US11919165B2 (en) | Process evolution for robotic process automation and workflow micro-optimization | |
JP2023516846A (ja) | ロボティックプロセスオートメーション(rpa)のテスト自動化ワークフローを解析するシステムおよびコンピュータ実装方法 | |
US11818223B2 (en) | Inter-session automation for robotic process automation (RPA) robots | |
US20210191367A1 (en) | System and computer-implemented method for analyzing a robotic process automation (rpa) workflow | |
JP2022552467A (ja) | ロボティックプロセスオートメーションおよびスーパーバイザーシステムのために決定論的ワークフローに確率論的モデルを挿入すること | |
JP2023534638A (ja) | ロボティックプロセスオートメーション用のユーザーインターフェース(ui)記述子、uiオブジェクトライブラリ、uiオブジェクトリポジトリ、およびuiオブジェクトブラウザ | |
JP2023549632A (ja) | 人工知能/機械学習によるロボティックプロセスオートメーションのための異常検出および自己修復 | |
JP2023524917A (ja) | ロボティックプロセスオートメーションのためのアプリケーション統合 | |
JP2023548737A (ja) | ロボティックプロセスオートメーション(rpa)のためのサポートロボットによるタスクオートメーション | |
KR102446568B1 (ko) | 제2 세션에서 실행중인 로봇 프로세스 자동화 로봇을 통한 제1 세션에서 실행중인 프로세스의 자동화 | |
JP2023541548A (ja) | ロボティックプロセスオートメーションのためのユーザーインターフェース(ui)マッパー | |
JP2022552130A (ja) | ロボティックプロセスオートメーションにおける強化学習 | |
JP2023544278A (ja) | テスト中のアプリケーションのテストオートメーションのためのコンピュータ実装方法およびシステム | |
JP2023545253A (ja) | コンピュータビジョンを使ったアプリケーション、画面、およびユーザーインターフェース要素を認識するための人工知能/機械学習モデルの訓練 | |
US11544082B2 (en) | Shared variable binding and parallel execution of a process and robot workflow activities for robotic process automation | |
KR20220007496A (ko) | 제1 세션에서 실행되고 있는 프로세스의 제2 세션에서 실행되고 있는 로봇 프로세스 자동화 로봇을 통한 자동화 | |
JP7242981B2 (ja) | 特定用途向けグラフィカル要素検出 | |
EP3901864A1 (en) | Test automation for robotic process automation | |
EP3901865A1 (en) | Test automation for robotic process automation | |
JP2023542559A (ja) | 組み合わせた直列および遅延並列実行統一ターゲット技術、デフォルトのグラフィカル要素検出技術、またはその両方を用いたグラフィカル要素検出 | |
JP2023523374A (ja) | ロボティックプロセスオートメーションのための機械学習モデル再訓練パイプライン | |
EP3955108B1 (en) | Graphical element detection using a combination of user interface descriptor attributes from two or more graphical element detection techniques | |
US11650871B2 (en) | System and computer-implemented method for verification of execution of an activity | |
JP2023539853A (ja) | ロボティックプロセスオートメーション(rpa)パッケージおよびワークフローのウェブベースの閲覧 |