IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ユーアイパス,インコーポレイテッドの特許一覧

特表2023-522281ロボティックプロセスオートメーションのためのテスト自動化
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-05-30
(54)【発明の名称】ロボティックプロセスオートメーションのためのテスト自動化
(51)【国際特許分類】
   G06F 11/36 20060101AFI20230523BHJP
【FI】
G06F11/36 184
G06F11/36 188
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2020553463
(86)(22)【出願日】2020-09-18
(85)【翻訳文提出日】2021-03-18
(86)【国際出願番号】 US2020051508
(87)【国際公開番号】W WO2021216107
(87)【国際公開日】2021-10-28
(31)【優先権主張番号】16/855,563
(32)【優先日】2020-04-22
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】16/854,733
(32)【優先日】2020-04-21
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.JAVASCRIPT
2.ZIGBEE
3.BLUETOOTH
4.WCDMA
(71)【出願人】
【識別番号】520262319
【氏名又は名称】ユーアイパス,インコーポレイテッド
【氏名又は名称原語表記】UiPath,Inc.
【住所又は居所原語表記】1 Vanderbilt Avenue, 60th Floor, New York, NY 10017, United States of America
(74)【代理人】
【識別番号】100180781
【弁理士】
【氏名又は名称】安達 友和
(74)【代理人】
【識別番号】100182903
【弁理士】
【氏名又は名称】福田 武慶
(72)【発明者】
【氏名】トーマス ストッカー
(72)【発明者】
【氏名】ゲルト ワイシャー
【テーマコード(参考)】
5B042
【Fターム(参考)】
5B042GB02
5B042HH17
5B042HH49
(57)【要約】
既存のワークフロー(又はテスト中のワークフロー)のためのテストケースが作成されて実行され得る。テストケースは、本番環境におけるワークフロー又はワークフローの一又は複数の部分について作成され、ワークフロー又はワークフローの一又は複数の部分について作成されたテストケースが実行されて、該ワークフローについて環境の問題及び/又は自動化の問題を特定し得る。環境の問題及び/又は自動化の問題が特定された場合に、失敗したワークフローテストが報告され得る。

【特許請求の範囲】
【請求項1】
コンピュータによって実行される方法であって、
テストセットを作成することと、
本番環境における複数のワークフローのうち対応する1つについての一又は複数のテストケースを、前記テストセットに割り当てることと、
前記テストセットを実行して、前記一又は複数のテストケースの各々の環境の問題及び/又は自動化の問題を特定することと、
前記テストセットの結果を報告することと、
を含み、
前記結果は、一又は複数の失敗したテストケースを、前記一又は複数の失敗したテストケースをユーザに通知するメッセージと共に含むことを特徴とする方法。
【請求項2】
前記結果は、前記一又は複数の失敗したテストケースの各々についての警告トライアングル及びツールチップを含むことを特徴とする、請求項1に記載の方法。
【請求項3】
前記警告トライアングル及びツールチップは、前記一又は複数の失敗したテストケースの各々における特定のプロセスが影響を受け本番環境中エラーなしで実行するために適応を必要とすることを示すものを提供することを特徴とする、請求項2に記載の方法。
【請求項4】
前記方法は、
前記ユーザが前記メッセージを「受け取り済み」としてマークできるようにして、前記メッセージから警告ラベルを取り除くこと
をさらに含むことを特徴とする、請求項1に記載の方法。
【請求項5】
前記方法は、
対応するアプリケーションのプロジェクトを開き、前記一又は複数の失敗したテストケースの各々において一又は複数の影響を受けた領域を強調表示すること
をさらに含むことを特徴とする、請求項1に記載の方法。
【請求項6】
前記方法は、
複数のワークフローを作成すること
をさらに含み、
前記複数のワークフローを作成することは、前記複数のテストケースを選択して複数のテストケースを作成することを含むことを特徴とする、請求項1に記載の方法。
【請求項7】
前記複数のワークフローを作成することは、データが抽出された元のデータソースを選択することを含むことを特徴とする、請求項6に記載の方法。
【請求項8】
前記複数のワークフローを作成することは、前記データが抽出された元の前記データソースから一又は複数のフィールドを選択することを含むことを特徴とする、請求項7に記載の方法。
【請求項9】
前記複数のワークフローを作成することは、前記データソースで選択された前記一又は複数のフィールドから前記データをインポートすることを含むことを特徴とする、請求項8に記載の方法。
【請求項10】
前記複数のワークフローを作成することは、前記データソースで選択された前記一又は複数のフィールドからの前記データを参照することを含むことを特徴とする、請求項9に記載の方法。
【請求項11】
コンピュータプログラム命令を記憶するメモリと、
前記コンピュータプログラム命令を実行するように構成されている少なくとも1つのプロセッサと、
を備え、
前記コンピュータプログラム命令は、
テストセットを作成することと、
本番環境における複数のワークフローのうち対応する1つについての一又は複数のテストケースを、前記テストセットに割り当てることと、
前記テストセットを実行して、前記一又は複数のテストケースの各々の環境の問題及び/又は自動化の問題を特定することと、
前記テストセットの結果を報告することと、
を実行させるように構成され、
前記結果は、一又は複数の失敗したテストケースを、前記一又は複数の失敗したテストケースをユーザに通知するメッセージと共に含むことを特徴とするシステム。
【請求項12】
前記結果は、前記一又は複数の失敗したテストケースの各々についての警告トライアングル及びツールチップを含むことを特徴とする、請求項11に記載のシステム。
【請求項13】
前記警告トライアングル及びツールチップは、前記一又は複数の失敗したテストケースの各々における特定のプロセスが影響を受け本番環境中エラーなしで実行するために適応を必要とすることを示すものを提供することを特徴とする、請求項12に記載のシステム。
【請求項14】
前記コンピュータプログラム命令は、
前記ユーザが前記メッセージを「受け取り済み」としてマークできるようにして、前記メッセージから警告ラベルを取り除くこと
をさらに実行させるように構成されていることを特徴とする、請求項11に記載のシステム。
【請求項15】
前記コンピュータプログラム命令は、
対応するアプリケーションのプロジェクトを開き、前記一又は複数の失敗したテストケースの各々において一又は複数の影響を受けた領域を強調表示すること
をさらに実行させるように構成されていることを特徴とする、請求項11に記載のシステム。
【請求項16】
前記コンピュータプログラム命令は、
複数のワークフローを作成すること
をさらに実行させるように構成され、
前記複数のワークフローを作成することは、前記複数のテストケースを選択して複数のテストケースを作成することを含むことを特徴とする、請求項11に記載のシステム。
【請求項17】
前記コンピュータプログラム命令は、
データが抽出された元のデータソースを選択すること
をさらに実行させるように構成されていることを特徴とする、請求項16に記載のシステム。
【請求項18】
前記コンピュータプログラム命令は、
前記データが抽出された元の前記データソースから一又は複数のフィールドを選択すること
をさらに実行させるように構成されていることを特徴とする、請求項17に記載のシステム。
【請求項19】
前記コンピュータプログラム命令は、
前記データソースで選択された前記一又は複数のフィールドから前記データをインポートすること
をさらに実行させるように構成されていることを特徴とする、請求項18に記載のシステム。
【請求項20】
前記コンピュータプログラム命令は、
前記データソースで選択された前記一又は複数のフィールドからの前記データを参照すること
をさらに実行させるように構成されていることを特徴とする、請求項18に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2020年4月21日に出願された米国非仮特許出願番号16/854,733の継続出願であり、その利益を主張する、2020年4月22日に出願された米国非仮特許出願番号16/855,563の利益を主張する。これらのより早く出願された出願の主題は、参照によりその全体が本明細書に組み込まれる。
【0002】
本発明は、概して、ロボティックプロセスオートメーション(RPA)、より詳細には、本番環境での(プロダクション)テストのためのRPAに関する。
【背景技術】
【0003】
デジタルトランスフォーメーションでは、企業がデジタル技術を継続的に活用して、顧客価値の新しいソースを作り、顧客サービスの運用の俊敏性を高める必要がある。例えば、可能な限り、ソフトウェア及び自動化のアプリケーションを実装して、コスト及び市場投入までの時間を短縮する。
【0004】
プロセスの自動化は、効率を大幅に向上させて競争上の優位性を生み出す可能性があるので、デジタルトランスフォーメーションにおいて重要な役割を果たす。例えば、RPAはかなり新しい市場であり、存在してほんの数年である。RPAは、企業顧客により迅速に採用から利益を得ており、その結果、プロセスを自動化するための何千ものボットが作成されている。
【0005】
しかし、そのようなボットの多くは、様々な理由で動作を停止する可能性がある。例えば、ボットの安定性が低いのは、アプリケーションの変更、環境の変化、及び脆弱な自動化自体に起因する。例えば20年以上前から存在しているテスト自動化などの他の自動化領域とは異なり、RPAはメンテナンスを処理する必要がなく、実装は多くの場合、弾力性及び例外処理ではなく、ハッピーパスに重点を置いていた。この問題は、例外処理及びデバッグにベストプラクティス及びツールサポートを適用することで部分的に対処されているが、自動化の品質及びデジタルトランスフォーメーションについての高レベルのビューを考慮すると、幾つかの領域におけるメンテナンスに対処するプラットフォームが必要である。
【発明の概要】
【0006】
本発明の特定の実施形態は、現在のRPA技術によってまだ完全に識別、認識、又は解決されていない当該技術分野の課題及び必要性に対する解決方法を提供し得る。例えば、本発明の幾つかの実施形態は、既存のワークフロー(又はテスト中のワークフロー)のためのテストケースの作成及び実行に関する。
【0007】
一実施形態において、コンピュータによって実行される方法は、本番環境におけるワークフロー又は該ワークフローの一又は複数の部分のための一又は複数のテストケースを作成することを含む。該方法はまた、該ワークフロー又は該ワークフローの一又は複数の部分のためのテストケースを実行して、該ワークフローの環境の問題及び/又は自動化の問題を特定することを含む。該方法はまた、環境の問題及び/又は自動化の問題が特定された場合に、失敗したワークフローテストを報告することを含む。
【0008】
別の実施形態において、コンピュータによって実行される方法は、テストセットを作成することと、本番環境における複数のワークフローのうち対応する1つについての一又は複数のテストケースを、該テストセットに割り当てることとを含む。該方法はさらに、該テストセットを実行して、一又は複数のテストケースの各々の環境の問題及び/又は自動化の問題を特定することを含む。該方法はさらに、該テストセットの結果を報告することを含む。該結果は、一又は複数の失敗したテストケースを、前記一又は複数の失敗したテストケースをユーザに通知するメッセージと共に含む。
【図面の簡単な説明】
【0009】
本発明の特定の実施形態の利点が容易に理解されるように、上記簡単に説明した本発明のより詳細な説明を、添付の図面に示す特定の実施形態を参照して行う。これらの図面は、本発明の典型的な実施形態のみを示すもので、その範囲を限定するものとみなされるべきではないことを理解されたい。本発明は、添付の図面の使用を通じて追加の特性及び詳細とともに記載され説明される。
【0010】
図1】本発明の一実施形態によるRPAシステムを示すアーキテクチャ図である。
【0011】
図2】本発明の一実施形態による、デプロイされたRPAシステムを示すアーキテクチャ図である。
【0012】
図3】本発明の一実施形態による、デザイナとアクティビティとドライバとの関係を示すアーキテクチャ図である。
【0013】
図4】本発明の一実施形態によるRPAシステムを示すアーキテクチャ図である。
【0014】
図5】本発明の一実施形態による、一又は複数のテストケースを作成し公開するように構成されたコンピューティングシステムを示すアーキテクチャ図である。
【0015】
図6】本発明の一実施形態による、テストケースを作成するプロセスを示すフロー図である。
【0016】
図7】本発明の一実施形態による、テストケースを公開するプロセスを示すフロー図である。
【0017】
図8】本発明の一実施形態による、テストケースを実行するプロセスを示すフロー図である。
【0018】
図9】本発明の一実施形態による、データ駆動型ワークフローテストケースを作成するプロセスを示すフロー図である。
【0019】
図10】本発明の一実施形態による、Studio Pro(商標)で選択されているワークフローを示すグラフィカルユーザインタフェース(GUI)である。
【0020】
図11】本発明の一実施形態による、「given-when-then」テンプレートを示すGUIである。
【0021】
図12】本発明の一実施形態による、「when」モジュールを示すGUIである。
【0022】
図13】本発明の一実施形態による、「given」モジュールで入力された前提条件を示すGUIである。
【0023】
図14】本発明の一実施形態による、テスト中のワークフローのモック(模擬)を示すGUIである。
図15】本発明の一実施形態による、テスト中のワークフローのモックを示すGUIである。
【0024】
図16】本発明の一実施形態による、「then」モジュールを示すGUIである。
【0025】
図17】本発明の一実施形態による、実行されたワークフローを示すGUIである。
図18】本発明の一実施形態による、実行されたワークフローを示すGUIである。
【0026】
図19】本発明の一実施形態による、「Linked Process(リンクされたプロセス)」の列を有するテストケースセクションを示すGUIである。
【0027】
図20】本発明の一実施形態による、実行されたワークフローテストケースからのテスト結果を示すGUIである。
【0028】
図21】本発明の一実施形態による、Orchestrator(商標)の「Process(プロセス)」セクションを示すGUIである。
【0029】
図22】本発明の一実施形態による、Studio(商標)におけるワークフローを開くためのメニューオプションを示すGUIである。
【0030】
図23】本発明の一実施形態による、Studio(商標)において影響を受けるワークフロー及びテストケースを示すGUIである。
【0031】
図24】本発明の一実施形態による、Excel(登録商標)内のテーブルを示すGUIである。
【0032】
図25】本発明の一実施形態による、選択されるワークフローを示すGUIである。
【0033】
図26】本発明の一実施形態による、ユーザがデータソースを選択できるようにする「データ駆動型テストケース(Data-Driven Test Case)」メニューを示すGUIである。
【0034】
図27】本発明の一実施形態による、フィールドを選択できるようにするメニューオプションを示すGUIである。
【0035】
図28】本発明の一実施形態による、選択されたExcel(登録商標)シート内の一又は複数の使用可能な列をユーザが選択できるようにするためのメニューオプションを示すGUIである。
【0036】
図29】本発明の一実施形態による、「Import Data Set(データセットのインポート)」を選択するためのオプションを示すメニューオプションを示すGUIである。
【0037】
図30】本発明の一実施形態による、データセットから作成された第1のテストケースを示すGUIである。
【0038】
図31】本発明の一実施形態による、複数のテストデータのバリエーションを有するテストケースを示すGUIである。
【0039】
図32】本発明の一実施形態による、一又は複数のテストケースを公開可能に設定するためのメニューオプションを示すGUIである。
【0040】
図33】本発明の一実施形態による、Studio Pro(商標)で公開するためのアプリケーションを示すGUIである。
【0041】
図34】本発明の一実施形態による、デプロイメントプロセスを示すGUIである。
【0042】
図35】本発明の一実施形態による、「Test Case(テストケース)」セクションにおける作成されたテストケースを示すGUIである。
【発明を実施するための形態】
【0043】
幾つかの実施形態は、既存のワークフロー(又はテスト中のワークフロー)のテストケースの作成及び実行に関する。例えば、幾つかの実施形態は、一般的な機能アプリケーションテストのための、即ち、開発内でアプリケーションを直接テストするためのソリューションを提供する。これにより、開発者はアプリケーションの変更を早期に捉え、RPAに必要な適応(アダプテーション)を設定できる。幾つかのさらなる実施形態において、機能ワークフローテストのための、即ち、アプリケーションが本番環境に置かれる前に自動化の問題及び環境の変化(例えば、オペレーティングシステムの更新、環境への更新、又はMicrosoftWindows(登録商標)の更新など)を捉えてRPAに必要な適応を設定するためにITホストのテスト環境内で自動化されたワークフローをテストするためのソリューションを提供し得る。
【0044】
自動化されたワークフローをテストする必要性が認識されてきていることを理解されたい。例えば単体テスト(Unit Testing)のインフラストラクチャを提供するREフレームワーク、UiPath(登録商標)ワークフローの機能テストなど自動化されたワークフローのテストのためのソリューションを提供しようとする内部及び外部のイニシアチブがある。
【0045】
幾つかの実施形態は、以前のイニシアチブの欠陥に対するソリューションを提供する。例えば、幾つかの実施形態は、既存のワークフロー又は既存のワークフローの一部のテストケースの作成を可能にする。このようなテストケースは、環境の及び自動化の問題を捉えるために頻繁に実行され得る。失敗したワークフローが特定されると、RPA開発者に通知される。幾つかの追加の実施形態において、データ駆動型ワークフローテストケースが作成されて、データセットが外部ソースから注入され得る。このデータセットには、Excel(登録商標)、JSON、DBなどが含まれ得る。このような実施形態は、自動化されたワークフローのテストケースを作成するための人手による労力を低減し得る。
【0046】
図1は、本発明の一実施形態による、RPAシステム100を示すアーキテクチャ図である。RPAシステム100は、開発者がワークフローを設計及び実装することを可能にするデザイナ110を含む。デザイナ110は、アプリケーション統合、並びにサードパーティアプリケーション、管理情報技術(IT)タスク、及びビジネスITプロセスの自動化のためのソリューションを提供してもよい。デザイナ110は、ビジネスプロセスのグラフィック表現である自動化プロジェクトの開発を容易にしてもよい。簡単に言うと、デザイナ110はワークフロー及びロボットの開発とデプロイメントを容易にする。
【0047】
自動化プロジェクトは、開発者が、本明細書において「アクティビティ」として定義される、ワークフローで開発されたカスタムセットのステップ間の実行順序及び関係を制御できるようにすることで、ルールベースのプロセスの自動化を可能にする。デザイナ110の実施形態の1つの商業的な例は、UiPath Studio(商標)である。各アクティビティには、例えばボタンのクリック、ファイルの読み込み、ログパネルへの書き込みなどのアクションが含まれていてもよい。幾つかの実施形態において、ワークフローがネストされ又は埋め込まれてもよい。
【0048】
一部の種類のワークフローには、シーケンス、フローチャート、有限状態機械(FSM)、及び/又はグローバル例外ハンドラが含まれてもよいが、これらに限定されない。シーケンスは、線形プロセスに特に適している可能性があり、ワークフローを混乱させることなく、あるアクティビティから別のアクティビティへのフローを可能にする。フローチャートは、より複雑なビジネスロジックに特に適している可能性があり、複数の分岐論理演算子によって、より多様な方法で決定の統合及びアクティビティの接続を可能にする。FSMは、大規模なワークフローに特に適している可能性がある。FSMは、実行時に有限数の状態を使用してもよく、それらの状態は、条件(即ち、遷移)又はアクティビティによってトリガされる。グローバル例外ハンドラは、実行エラーが発生したときのワークフローの振る舞いを決定したり、プロセスをデバッグしたりするのに特に適している可能性がある。
【0049】
ワークフローがデザイナ110で開発されると、ビジネスプロセスの実行は、デザイナ110で開発されたワークフローを実行する一又は複数のロボット130を調整するコンダクタ120によって調整される。コンダクタ120の実施形態の1つの商用的な例は、UiPath Orchestrator(商標)である。コンダクタ120は、環境におけるリソースの作成、監視(モニタリング)、及びデプロイメントの管理を容易にする。コンダクタ120は、サードパーティのソリューション及びアプリケーションとの統合ポイントとして機能してもよい。
【0050】
コンダクタ120は、全てのロボット130を管理して、集中ポイントからロボット130を接続して実行してもよい。管理可能なロボット130の種類には、アテンディッド(操作要)ロボット132、アンアテンディッド(操作不要)ロボット134、開発ロボット(アンアテンディッドロボット134と同様であるが、開発及びテストの目的で使用される)、及び非生産ロボット(アテンディッドロボット132と同様であるが、開発及びテストの目的で使用される)が含まれるが、これらに限定されない。アテンディッドロボット132は、ユーザイベントによってトリガされ、同じコンピューティングシステム上で人間と一緒に動作する。アテンディッドロボット132は、集中プロセス展開及びロギング媒体のためにコンダクタ120と共に使用されてもよい。アテンディッドロボット132は、人間のユーザが様々なタスクを達成するのを助け、ユーザイベントによってトリガされてもよい。幾つかの実施形態において、プロセスは、この種のロボットのコンダクタ120から開始されることができず、且つ/又は、ロックされた画面の下で実行できない。特定の実施形態において、アテンディッドロボット132は、ロボットトレイから又はコマンドプロンプトから開始できるのみである。幾つかの実施形態において、アテンディッドロボット132は、人間の監督下で動作するべきである。
【0051】
アンアテンディッドロボット134は、仮想環境で操作不要で実行され、多くのプロセスを自動化できる。アンアテンディッドロボット134は、遠隔実行、監視、スケジューリング、及びワークキューのサポートの提供を担当してもよい。幾つかの実施形態において、全てのロボットの種類のデバッグをデザイナ110で実行してもよい。アテンディッドロボットとアンアテンディッドロボットの両方が、メインフレーム、ウェブアプリケーション、VM、エンタープライズアプリケーション(例えば、SAP(登録商標)、SalesForce(登録商標)、Oracle(登録商標)などによって生成されたもの)、及びコンピューティングシステムアプリケーション(例えば、デスクトップ及びラップトップアプリケーション、モバイルデバイスアプリケーション、ウェアラブルコンピュータアプリケーションなど)を含むがこれらに限定されない様々なシステム及びアプリケーションを自動化してもよい。
【0052】
コンダクタ120は、プロビジョニング、デプロイメント、コンフィギュレーション、キューイング、監視、ロギング、及び/又は相互接続性の提供を含むがこれらに限定されない様々な機能を有してもよい。プロビジョニングには、ロボット130とコンダクタ120(例えば、ウェブアプリケーションなど)の間の接続の作成及び保守が含まれてもよい。デプロイメントには、実行のために割り当てられたロボット130へのパッケージバージョンの正しい配信を確実にすることが含まれてもよい。コンフィギュレーションには、ロボット環境及びプロセスコンフィギュレーションの保守及び配信が含まれてもよい。キューイングには、キュー及びキューアイテムの管理の提供が含まれてもよい。監視には、ロボット識別データの追跡及びユーザ権限の維持が含まれてもよい。ロギングには、データベース(例えば、SQLデータベースなど)及び/又は他のストレージメカニズム(例えば、ElasticSearch(登録商標)など。これは、大規模なデータセットを記憶してすばやくクエリを実行する機能を提供する)へのログの記憶及びインデックス付けが含まれてもよい。コンダクタ120は、サードパーティのソリューション及び/又はアプリケーションのための通信の集中ポイントとして機能することで、相互接続性を提供してもよい。
【0053】
ロボット130は、デザイナ110に組み込まれたワークフローを実行する実行エージェントである。ロボット130の幾つかの実施形態のうち1つの商用的な例は、UiPath Robots(商標)である。幾つかの実施形態において、ロボット130は、デフォルトで、Microsoft Windows(登録商標)サービスコントロールマネージャー(SCM)が管理するサービスをインストールする。その結果、そのようなロボット130が、ローカルシステムアカウントでインタラクティブなWindows(登録商標)セッションを開き、Windows(登録商標)サービスの権限を有することができる。
【0054】
幾つかの実施形態において、ロボット130は、ユーザモードでインストールされてもよい。そのようなロボット130の場合、これは、ユーザのもとでロボット130がインストールされて、そのユーザと同じ権利をロボット130が有することを意味する。この特徴は、高密度(HD)ロボットで利用可能であってもよく、各マシンの最大限の活用を確実にしてもよい。幾つかの実施形態において、任意の種類のロボット130が、HD環境で構成されてもよい。
【0055】
幾つかの実施形態におけるロボット130は、それぞれが特定の自動化タスク専用である幾つかのコンポーネントに分割される。幾つかの実施形態におけるロボットコンポーネントには、SCM管理のロボットサービス、ユーザモードのロボットサービス、エグゼキュータ、エージェント、及びコマンドラインが含まれるが、これらに限定されない。SCM管理のロボットサービスは、Windows(登録商標)セッションを管理、監視してコンダクタ120と実行ホスト(即ち、ロボット130が実行されるコンピューティングシステム)との間のプロキシとして機能する。このようなサービスは、ロボット130の資格情報を託され、これを管理する。コンソールアプリケーションは、ローカルシステムのもとでSCMによって起動される。
【0056】
幾つかの実施形態におけるユーザモードロボットサービスは、Windows(登録商標)セッションを管理、監視し、コンダクタ120と実行ホストとの間のプロキシとして機能する。ユーザモードロボットサービスは、ロボット130の資格情報を託され、これを管理してもよい。SCM管理のロボットサービスがインストールされていない場合、Windows(登録商標)アプリケーションが自動的に起動されてもよい。
【0057】
エグゼキュータは、Windows(登録商標)セッションのもとで所定のジョブを実行してもよい(即ち、エグゼキュータはワークフローを実行してもよい。エグゼキュータは、モニタ毎のドット/インチ(DPI)設定を認識していてもよい。エージェントは、システムトレイウィンドウで利用可能なジョブを表示するWindows(登録商標)Presentation Foundation(WPF)アプリケーションであってもよい。エージェントはこのサービスのクライアントであってもよい。エージェントは、ジョブの開始又は停止を要求し、設定を変更してもよい。コマンドラインはそのサービスのクライアントであってもよい。コマンドラインは、ジョブの開始を要求可能なコンソールアプリケーションであり、その出力を待つ。
【0058】
上記で説明したようにロボット130のコンポーネントを分割することにより、開発者、サポートユーザ、及びコンピューティングシステムが、各コンポーネントの実行内容の実行、識別、及び追跡をより容易に行うことができる。このように、例えばエグゼキュータとサービスに異なるファイアウォールルールを設定するなど、コンポーネント毎に特別な振る舞いが構成されてもよい。幾つかの実施形態において、エグゼキュータは、モニタ毎のDPI設定を常に認識していてもよい。その結果、ワークフローが作成されたコンピューティングシステムの構成に関わらず、ワークフローが任意のDPIで実行されてもよい。幾つかの実施形態において、デザイナ110からのプロジェクトは、ブラウザのズームレベルから独立していてもよい。DPIを認識しない又は意図的に認識しないとマークされているアプリケーションの場合、幾つかの実施形態においてDPIが無効にされてもよい。
【0059】
図2は、本発明の一実施形態による、デプロイされたRPAシステム200を示すアーキテクチャ図である。幾つかの実施形態において、RPAシステム200は、図1のRPAシステム100であってもよいし、その一部であってもよい。クライアント側、サーバ側、又はこれらの両方が、本発明の範囲から逸脱することなく、任意の所望の数のコンピューティングシステムを含んでもよいことに留意されたい。クライアント側では、ロボットアプリケーション210が、エグゼキュータ212、エージェント214、及びデザイナ216を含む。しかし、幾つかの実施形態において、デザイナ216はコンピューティングシステム210で実行されていなくてもよい。エグゼキュータ212はプロセスを実行する。図2に示すように、複数のビジネスプロジェクトが同時に実行されてもよい。このような実施形態において、エージェント214(例えば、Windows(登録商標)サービスなど)は、全てのエグゼキュータ212の単一の接続ポイントである。このような実施形態における全てのメッセージは、コンダクタ230にログインされる。このコンダクタ230は、さらにデータベースサーバ240、インデクササーバ250、又はこれらの両方を介して、それらのメッセージを処理する。図1に関して上記で説明したように、エグゼキュータ212はロボットコンポーネントであってもよい。
【0060】
幾つかの実施形態において、ロボットは、マシン名とユーザ名との間の関連付けを表す。ロボットは同時に複数のエグゼキュータを管理してもよい。同時に実行されている複数の対話型セッションをサポートするコンピューティングシステム(例えば、Windows(登録商標)Server 2012など)では、複数のロボットが同時に実行され、それぞれが一意のユーザ名を使用する個別のWindows(登録商標)セッションで実行されてもよい。これを上記のHDロボットという。
【0061】
エージェント214はまた、ロボットのステータスを送り(例えば、ロボットがまだ機能していることを示す「ハートビート」メッセージを定期的に送り)、実行されるパッケージの必要なバージョンをダウンロードすることも担当する。幾つかの実施形態において、エージェント214とコンダクタ230との間の通信は、常にエージェント214によって開始される。通知シナリオにおいて、エージェント214は、コンダクタ230によって後で使用されるWebSocketチャネルを開き、ロボットにコマンド(例えば、開始、停止など)を送ってもよい。
【0062】
サーバ側では、プレゼンテーション層(ウェブアプリケーション232、Open Data Protocol(オープンデータプロトコル)(OData)Representative State Transfer(リプレゼンタティブステートトランスファー)(REST)Application Programming Interface(アプリケーションプログラミングインタフェース)(API)エンドポイント234、通知・監視236)、サービス層(API実装/ビジネスロジック238)、及び永続層(データベースサーバ240及びインデクササーバ250)が含まれる。コンダクタ230には、ウェブアプリケーション232、OData REST APIエンドポイント234、通知・監視236、及びAPI実装/ビジネスロジック238が含まれる。幾つかの実施形態において、コンダクタ230のインタフェースで(例えば、ブラウザ220を介して)ユーザが実行する殆どのアクションが、様々なAPIを呼び出すことで実行される。このようなアクションには、本発明の範囲から逸脱することなく、ロボットでのジョブの開始、キュー内のデータの追加/削除、操作不要で実行するジョブのスケジューリングなどが含まれてもよいが、これらに限定されない。ウェブアプリケーション232は、サーバプラットフォームのビジュアル層である。このような実施形態において、ウェブアプリケーション232は、ハイパーテキストマークアップ言語(HTML)及びJavaScript(JS)を使用する。しかし、本発明の範囲から逸脱することなく、任意の所望のマークアップ言語、スクリプト言語、又は任意の他のフォーマットが使用されてもよい。このような実施形態において、ユーザは、コンダクタ230を制御するための様々なアクションを実行するため、ブラウザ220を介してウェブアプリケーション232からウェブページと対話する。例えば、ユーザは、ロボットグループを作成し、ロボットにパッケージを割り当て、ロボット毎に且つ/又はプロセス毎にログを分析し、ロボットを起動、停止させるなどしてもよい。
【0063】
ウェブアプリケーション232に加えて、コンダクタ230には、OData REST APIエンドポイント234を公開するサービス層も含まれる。しかし、本発明の範囲から逸脱することなく、他のエンドポイントが含まれてもよい。REST APIは、ウェブアプリケーション232とエージェント214の両方によって使用される。このような実施形態において、エージェント214は、クライアントコンピュータ上の一又は複数のロボットのスーパーバイザである。
【0064】
このような実施形態におけるREST APIは、コンフィギュレーション、ロギング、監視、及びキューイングの機能をカバーする。幾つかの実施形態において、コンフィギュレーションエンドポイントが使用されて、アプリケーションユーザ、権限、ロボット、アセット、リリース、及び環境を定義、構成してもよい。ロギングRESTエンドポイントが使用されて、例えばエラー、ロボットによって送られた明示的なメッセージ、その他の環境固有の情報など、様々な情報をログに記録してもよい。デプロイメントRESTエンドポイントがロボットによって使用されて、コンダクタ230でジョブ開始コマンドが使用される場合に実行する必要があるパッケージバージョンをクエリしてもよい。キューイングRESTエンドポイントは、例えばキューへのデータの追加、キューからのトランザクションの取得、トランザクションのステータスの設定など、キュー及びキューアイテムの管理を担当してもよい。
【0065】
監視RESTエンドポイントは、ウェブアプリケーション232及びエージェント214を監視してもよい。通知・監視API236は、エージェント214の登録、エージェント214へのコンフィギュレーション設定の配信、並びにサーバ及びエージェント214からの通知の送受信に使用されるRESTエンドポイントであってもよい。幾つかの実施形態において、通知・監視API236はまた、WebSocket通信を使用してもよい。
【0066】
永続層は、この実施形態では一対のサーバ、つまり、データベースサーバ240(例えば、SQLサーバなど)及びインデクササーバ250を含む。この実施形態のデータベースサーバ240は、ロボット、ロボットグループ、関連プロセス、ユーザ、ロール(役割)、スケジュールなどのコンフィギュレーションを記憶する。このような情報は、幾つかの実施形態において、ウェブアプリケーション232を介して管理される。データベースサーバ240は、キュー及びキューアイテムを管理してもよい。幾つかの実施形態において、データベースサーバ240は、(インデクササーバ250に加えて又はその代わりに)ロボットによってログに記録されたメッセージを記憶してもよい。
【0067】
幾つかの実施形態において任意であるインデクササーバ250は、ロボットによってログに記録された情報を記憶し、インデックスを付ける。特定の実施形態において、インデクササーバ250は、コンフィギュレーション設定を通じて無効にされてもよい。幾つかの実施形態において、インデクササーバ250は、オープンソースプロジェクトの全文検索エンジンであるElasticSearch(登録商標)を使用する。ロボットによって(例えば、ログメッセージ、行書き込みなどのアクティビティを使用して)ログに記録されたメッセージは、ロギングRESTエンドポイントを介してインデクササーバ250に送られてもよく、そこで将来の利用のためにインデックスが付けられてもよい。
【0068】
図3は、本発明の一実施形態による、デザイナ310とアクティビティ320、330とドライバ340との間の関係300を示すアーキテクチャ図である。上記のとおり、開発者は、デザイナ310を使用して、ロボットによって実行されるワークフローを開発する。ワークフローは、ユーザ定義のアクティビティ320とUI自動化アクティビティ330を含んでもよい。幾つかの実施形態は、本明細書においてコンピュータビジョン(CV)という、画像における非テキストのビジュアルコンポーネントを識別することができる。そのようなコンポーネントに関連する一部のCVアクティビティには、クリック(click)、タイプ(type)、テキストを取得(get text)、ホバー(hover)、要素の有無を検出(element exists)、スコープの更新(refresh scope)、ハイライト(highlight)などが含まれてもよいが、これらに限定されない。幾つかの実施形態において、クリック(click)は、例えば、CV、光学式文字認識(OCR)、ファジーテキストマッチング、複数のアンカーを使用して要素を識別し、クリックする。タイプ(type)は、上記を使用して要素を識別してもよく、要素内でタイプする。テキストを取得(get text)は、特定のテキストの位置を識別し、OCRを使用してスキャンしてもよい。ホバー(hover)は、要素を識別し、その上にホバーしてもよい。要素の有無を検出(element exists)は、上記の技術を使用して、要素が画面上に存在するか否かを確認してもよい。幾つかの実施形態において、デザイナ310で実装可能な数百又は数千ものアクティビティがあってもよい。しかし、本発明の範囲から逸脱することなく、任意の数及び/又は種類のアクティビティが利用可能であってもよい。
【0069】
UI自動化アクティビティ330は、低レベルのコードで書かれた特別な低レベルのアクティビティ(例えば、CVアクティビティなど)のサブセットであり、画面との対話を容易にする。UI自動化アクティビティ330は、ロボットが所望のソフトウェアと対話することを可能にするドライバ340を介して、このような対話を容易にする。例えば、ドライバ340は、OSドライバ342、ブラウザドライバ344、VMドライバ346、エンタープライズアプリケーションドライバ348などを含んでもよい。
【0070】
ドライバ340は、低レベルでOSと対話して、フックを探したりキーを監視したりするなどしてもよい。ドライバ340は、Chrome(登録商標)、IE(登録商標)、Citrix(登録商標)、SAP(登録商標)などとの統合を容易にしてもよい。例えば、「クリック」アクティビティは、ドライバ340を介してそのような異なるアプリケーションで同じ役割を果たす。
【0071】
図4は、本発明の一実施形態によるRPAシステム400を示すアーキテクチャ図である。幾つかの実施形態において、RPAシステム400は、図1及び/又は図2のRPAシステム100及び/又は200であってもよいし、それを含んでもよい。RPAシステム400は、ロボットを実行する複数のクライアントコンピューティングシステム410を含む。コンピューティングシステム410は、そこで実行されるウェブアプリケーションを介してコンダクタコンピューティングシステム420と通信可能である。次に、コンダクタコンピューティングシステム420は、データベースサーバ430及び任意のインデクササーバ440と通信可能である。
【0072】
図1及び図3に関して、これらの実施形態においてウェブアプリケーションが使用されているが、本発明の範囲から逸脱することなく、任意の適切なクライアント/サーバソフトウェアが使用されてもよいことに留意されたい。例えば、コンダクタは、クライアントコンピューティングシステム上の非ウェブベースのクライアントソフトウェアアプリケーションと通信するサーバ側アプリケーションを実行してもよい。
【0073】
図5は、本発明の一実施形態による、一又は複数のテストケースを作成し発行するように構成されたコンピューティングシステム500を示すアーキテクチャ図である。幾つかの実施形態において、コンピューティングシステム500は、本出願において図示及び/又は説明される一又は複数のコンピューティングシステムであってもよい。コンピューティングシステム500は、情報を通信するためのバス505又は他の通信メカニズムと、情報を処理するためにバス505に接続されたプロセッサ510とを含む。プロセッサ510は、中央処理装置(CPU)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、グラフィックスプロセッシングユニット(GPU)、それらの複数の例、及び/又はこれらのうちの任意の組み合わせを含む、任意の種類の汎用又は特定用途のプロセッサであってもよい。プロセッサ510はまた、複数の処理コアを有してもよく、コアの少なくとも一部が、特定の機能を実行するように構成されてもよい。幾つかの実施形態において、複数並列処理を使用されてもよい。特定の実施形態において、少なくとも1つのプロセッサ510が、生体ニューロンを模倣する処理要素を含むニューロモーフィック回路であってもよい。幾つかの実施形態において、ニューロモーフィック回路は、フォンノイマンコンピューティングアーキテクチャの典型的なコンポーネントを必要としなくてもよい。
【0074】
コンピューティングシステム500は、プロセッサ510によって実行される情報及び命令を記憶するためのメモリ515をさらに含む。メモリ515は、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、フラッシュメモリ、キャッシュ、例えば磁気若しくは光ディスクなどの静的記憶装置、又は任意の他の種類の非一時的なコンピュータ読み取り可能な媒体、又はこれらのうちの組み合わせのうちの任意の組み合わせから構成されてもよい。非一時的なコンピュータ読み取り可能な媒体は、プロセッサ510によってアクセス可能な任意の利用可能な媒体であってもよく、揮発性媒体、不揮発性媒体、又はその両方を含んでもよい。媒体は、取り外し可能、取り外し不可能、又はその両方であってもよい。
【0075】
さらに、コンピューティングシステム500は、無線及び/又は有線接続を介して通信ネットワークへのアクセスを提供するために、例えばトランシーバなどの通信デバイス520を含む。幾つかの実施形態において、通信デバイス520は、本発明の範囲から逸脱することなく、周波数分割多元接続(FDMA)、シングルキャリアFDMA(SC-FDMA)、時分割多元接続(TDMA)、符号分割多元接続(CDMA)、直交周波数分割多重方式(OFDM)、直交周波数分割多元接続(OFDMA)、移動体用グローバルシステム(GSM)通信、汎用パケット無線サービス(GPRS)、ユニバーサル移動体通信システム(UMTS)、cdma2000、広帯域CDMA(W-CDMA)、高速ダウンリンクパケットアクセス(HSDPA)、高速アップリンクパケットアクセス(HSUPA)、高速パケットアクセス(HSPA)、Long Term Evolution(LTE)、LTEアドバンスト(LTE-A)、802.11x、Wi-Fi、Zigbee、超広帯域無線(UWB)、802.16x、802.15、Home Node-B(HnB)、Bluetooth、Radio Frequency Identification(RFID)、Infrared Data Association(IrDA)、Near-Field Communications(NFC)、第5世代(5G)、New Radio(NR)、これらのうちの任意の組み合わせ、及び/又は任意の他の現在存在する又は将来実施される通信規格及び/又はプロトコルを使用するように構成されてもよい。幾つかの実施形態において、通信デバイス520は、本発明の範囲から逸脱することなく、単一、アレイ、フェーズド、スイッチド、ビームフォーミング、ビームステアリング、これらのうちの組み合わせ、及び/又は任意の他のアンテナ構成である一又は複数のアンテナを含んでもよい。
【0076】
プロセッサ510は、バス505を介して、例えばプラズマディスプレイ、液晶ディスプレイ(LCD)、発光ダイオード(LED)ディスプレイ、電界放出ディスプレイ(FED)、有機発光ダイオード(OLED)ディスプレイ、フレキシブルOLEDディスプレイ、フレキシブル基板ディスプレイ、プロジェクションディスプレイ、4Kディスプレイ、高精細ディスプレイ、Retina(登録商標)ディスプレイ、インプレーンスイッチング(IPS)ディスプレイ、又はユーザに情報を表示するための任意の他の適切なディスプレイなどのディスプレイ525にさらに接続される。ディスプレイ525は、抵抗性、容量性、表面弾性波(SAW)容量性、赤外線、光学イメージング、分散信号技術、音響パルス認識、フラストレート全内部反射などを使用して、タッチ(触覚)ディスプレイ、3次元(3D)タッチディスプレイ、マルチ入力タッチディスプレイ、マルチタッチディスプレイなどとして構成されてもよい。任意の適切な表示デバイス及び触覚I/Oが、本発明の範囲から逸脱することなく、使用されてもよい。
【0077】
キーボード530と、例えばコンピュータマウス、タッチパッドなどのようなカーソル制御デバイス535とが、さらにバス505に接続されて、ユーザがコンピューティングシステム500とインタフェースをとることを可能にする。しかし、特定の実施形態において、物理的なキーボード及びマウスが存在しなくてもよく、ユーザは、ディスプレイ525及び/又はタッチパッド(図示略)を介してのみデバイスと対話してもよい。入力デバイスの任意の種類及び組み合わせが、設計上の選択事項として使用されてもよい。特定の実施形態において、物理的な入力デバイス及び/又はディスプレイが存在しない。例えば、ユーザは、コンピューティングシステム500と通信する別のコンピューティングシステムを介してリモートでコンピューティングシステム500と対話してもよく、或いは、コンピューティングシステム500は自律的に動作してもよい。
【0078】
メモリ515は、プロセッサ510によって実行されると機能を提供するソフトウェアモジュールを記憶する。該モジュールは、コンピューティングシステム500用のオペレーティングシステム540を含む。モジュールは、本明細書に記載されているプロセス又はその派生のプロセスの全て又は一部を実行するように構成されるテストケースモジュール545をさらに含む。コンピューティングシステム500は、追加の機能を含む一又は複数の追加の機能モジュール550を含んでもよい。
【0079】
当業者は、「システム」が、本発明の範囲から逸脱することなく、サーバ、組込みコンピューティングシステム、パーソナルコンピュータ、コンソール、パーソナルデジタルアシスタント(PDA)、携帯電話、タブレットコンピューティングデバイス、量子コンピューティングシステム、任意の他の適切なコンピューティングデバイス、又はデバイスの組み合わせとして具現化され得ることを理解するであろう。上記の機能を「システム」によって実行されるものとして示すことは、決して本発明の範囲を限定することを意図するものではなく、本発明の多くの実施形態の一例を示すことを意図する。実際、本明細書において開示される方法、システム、及び装置は、クラウドコンピューティングシステムを含むコンピューティング技術と整合するローカライズされ分散された形式で実装されてもよい。
【0080】
本明細書に記載されているシステム機能の一部は、実装の独立性をより強調するため、モジュールとして示されていることに留意されたい。例えば、モジュールは、カスタムの超大規模集積(VLSI)回路又はゲートアレイを含むハードウェア回路、ロジックチップ、トランジスタ、又は他のディスクリートコンポーネントなどの既製の半導体として実装されてもよい。モジュールは、例えばフィールドプログラマブルゲートアレイ、プログラマブルアレイロジック、プログラマブルロジックデバイス、グラフィックスプロセッシングユニットなどのプログラマブルハードウェアデバイスに実装されてもよい。
【0081】
モジュールは、様々な種類のプロセッサによる実行のため、ソフトウェアで少なくとも部分的に実装されてもよい。例えば、実行可能コードの識別されたユニットは、例えばオブジェクト、手順、又は機能として構成され得るコンピュータ命令の一又は複数の物理ブロック又は論理ブロックを含んでもよい。これにも関わらず、識別されたモジュールの実行可能ファイルは物理的に一緒に配置される必要はないが、論理的に結合されるとモジュールを含んでモジュールの上記目的を達成するような様々な場所に記憶された異種の命令を含んでもよい。さらに、モジュールは、本発明の範囲から逸脱することなく、コンピュータ読み取り可能な媒体に記憶されてもよく、コンピュータ読み取り可能な媒体は、例えば、ハードディスクドライブ、フラッシュデバイス、RAM、テープ、及び/又はデータを記憶するために使用される他のそのような非一時的なコンピュータ読み取り可能な媒体であってもよい。
【0082】
実際、実行可能コードのモジュールは、単一の命令であっても多数の命令であってもよく、異なるプログラム間で複数の異なるコードセグメントにわたり、複数のメモリデバイスにわたって分散されてもよい。同様に、動作データが、識別されて、本明細書においてモジュール内に示されてもよく、任意の適切な形式で具体化され、任意の適切な種類のデータ構造内で構成されてもよい。動作データは、単一のデータセットとしてまとめられてもよく、或いは、異なるストレージデバイスを含む異なる場所に分散されてもよく、少なくとも部分的に、単にシステム又はネットワーク上の電子信号として存在してもよい。
【0083】
テストケースの作成
【0084】
図6は、本発明の一実施形態による、テストケースを作成するプロセス600を示すフロー図である。幾つかの実施形態において、プロセス600は、602で、Studio Pro(商標)で既存のワークフローを開くことから開始する。上記のように、既存のワークフローは、本番環境中(稼働中)又は開発中のワークフローであり得る。604で、既存のワークフローが選択され、ワークフローテストケースの範囲が決定される。実施形態に応じて、ワークフロー全体又はワークフローの一又は複数の部分のいずれかが選択される。本発明の実施形態による、Studio Pro(商標)で選択されているワークフローを示すGUI1000である図10を参照されたい。
【0085】
606で、選択されたテストケースが作成される。例えば、コンピューティングデバイスのユーザがワークフローのコンテキストメニューから[Create Test Case(テストケースの作成)]ボタンを選択すると、選択されたテストケースが作成される。作成されたテストケースは、プロジェクトの「Test Cases(テストケース)」フォルダに記憶されてもよい。
【0086】
幾つかの実施形態において、テストケースは、「given-when-then」テンプレート又はモジュールを使用する。本発明の一実施形態による、「given-when-then」テンプレートを示すGUI1100である図11を参照されたい。「when」モジュールの下で、テスト中のワークフローが呼び出され、したがて、参照(リファレンス)として配置される。テストケースは、テスト中のワークフローのコピーを保持するのではなく、それを直接参照するという考え方である。テスト中のワークフローは時間の経過とともに変化する可能性があるので、これは重要である。「when」モジュールは、主に、テスト中のワークフローの実行又は呼び出しを担当する。例えば、本発明の一実施形態による、「when」モジュールを示すGUI1200である図12を参照されたい。
【0087】
「given」モジュールの下で、コンピューティングデバイスのユーザは、「when」モジュールが正常に実行されるために必要な全ての前提条件を追加する。本発明の一実施形態による、「given」モジュールに入力された前提条件を示すGUI1300である図13を参照されたい。例えば、必要な前提条件は、入力パラメータ、アプリケーションなどを含んでもよい。「given」モジュールは、ワークフローが正常に実行されることを確実にする実行環境を提供し得る。これは、例えば、(例えば、実際の請求書の代わりに)ワークフローが処理する一時ファイルの提供、ワークフローの実行に必要な特定のアプリケーションの開始、ワークフロー内で使用されワークフローの入力として予測されるパラメータ及び変数(例えば、ID、資格情報など)を含んでもよい。幾つかのさらなる実施形態では、「given」モジュールは、テスト中のワークフローのステップをモックする機能を提供するように構成され、テスト中のワークフローがエラーなしで実行されることを確実にする。モックには、テスト中のワークフロー内の一連のステップのシミュレーションが含まれる。一実施形態による、テスト中のワークフローのモックを示すGUI1400、1500である図14、15を参照されたい。幾つかの実施形態において、テスト中のワークフローは、テストケースを作成するためのテストオブジェクトであり、「when」モジュールによって呼び出される。
【0088】
さらに、「given」モジュールの下で、ワークフローに必要な変数及び/又はパラメータが自動的に特定される。特定の実施形態において、ユーザは、任意のアクティビティ及び/又はアクションを「given」モジュールに配置し得る。さらに、引数/パラメータが、テスト中のワークフローを参照する「Invoke Workflow(ワークフローの呼び出し)」アクティビティでの「when」モジュールで直接提供され得る。
【0089】
一例において、テスト中のワークフローは、データ駆動型テストケース(Data-Driven Test Case:DDT)の一部である変数「Insurant.Name」を使用する。幾つかの実施形態において、DDTは、異なるデータバリエーション(変化)で満たされる単一のテストケース定義によって表される。このようなバリエーションは、例えば、Excel(登録商標)ファイルからもたらされる場合があり、そのようなデータファイルがリンクされている場合、データソースのテーブル列ごとに引数が作成される。テストケースが作成されると、同じ名前の変数が「given」モジュールに自動的に作成される。別の一例において、元の「Insurant.Name」変数のデフォルト値が使用可能な場合に与えられる。それ以外の場合、変数はコンピューティングデバイスのユーザが値を完了するために残される。
【0090】
「then」モジュールの下で、このモジュールは、テストケースの重要な部分を表す任意の種類のアサーション(表明)を保持し得る。説明のため、テストケースの重要な部分はアサーション又は検証(ベリフィケーション)であり、それはテストの目的を定義する(例えば、ローンの価値が500,000であるとアサート(表明)する)。これは、テストケースがテスト中のアプリケーションの特定の要件が満たされていることを証明する方法である。「then」モジュールを使用すると、コンピューティングデバイスのユーザによって既存の検証アクティビティがこのモジュールの「then」セクションにドラッグされ得る。一例において、「when」モジュール内で、コンピューティングデバイスのユーザは、保険申請書に記入するワークフローを呼び出し得る。本発明の一実施形態による、「then」モジュールを示すGUI1600である図16を参照されたい。「then」モジュール内で、コンピューティングデバイスのユーザは、「Verify UiElement(UiElementの検証)」アクティビティをドラッグして、作成された保険番号をアサートし得る。本発明の一実施形態による、実行されたワークフローを示すGUI1700、1800である図17図18を参照されたい。
【0091】
テストケースの公開
【0092】
Studio Pro(商標)のプロジェクトは、1-nワークフロー、1-nワークフローテストケース、及び1-nアプリケーションテストケースを保持し得る。公開する場合、Orchestrator(商標)の「Test Cases(テストケース)」セクションには、プロジェクト、アプリケーションテストケース、及び/又はワークフローテストケースが含まれ得る。ワークフローテストケースには、それを作成するための元のワークフローへの参照が追加で含まれてもよい。例えば、本発明の一実施形態による、「Linked Process(リンクされたプロセス)」の列を有するテストケースセクションを示すGUI1900である図19を参照されたい。
【0093】
図7は、本発明の一実施形態による、テストケースを公開するためのプロセス700を示すフロー図である。幾つかの実施形態において、Studio Pro(登録商標)を使用して、ユーザは、ワークフロー又はテストケースのいずれかを公開し得る。公開されると、ユーザは、一又は複数のテストケースを選んで、それらをグループ化して実行のためのテストセットとし得る。プロセス700は、702で、Studio Pro(登録商標)で一又は複数のテストケースを作成することから開始し、704で、一又は複数のテストケースが公開可能に設定される。例えば、本発明の一実施形態による、一又は複数のテストケースを公開可能に設定するためのメニューオプションを示すGUI3200である図32を参照されたい。706で、一又は複数のテストケースが公開のためにトリガされる。例えば、本発明の一実施形態による、Studio Pro(登録商標)で公開するためのアプリケーションを示すGUI3300である図33を参照されたい。
【0094】
708で、特定の環境を使用してテストケースパッケージについてプロセスが作成される。例えば、本発明の一実施形態による、デプロイメントプロセスを示すGUI3400である図34を参照されたい。710で、一又は複数のテストケースがStudio Pro(登録商標)の「Test Cases(テストケース)」セクションに表示される。例えば、本発明の一実施形態による、「Test Cases」セクションにおける作成されたテストケースを示すGUI3500である図35を参照されたい。
【0095】
ワークフローテストケースの実行
【0096】
ワークフローテストケースの実行は、アプリケーションテストケースの実行と異ならない。例えば、図8は、本発明の一実施形態による、テストケースを実行するプロセス800を示すフロー図である。幾つかの実施形態において、プロセス800は、802で、テストセットを作成することから開始し、804で、一又は複数のワークフロー又はワークフローの一又は複数の部分のための一又は複数のテストケースをテストセットに割り当てる。806で、テストセットが実行される。
【0097】
ワークフローテストケースの実行結果は、一般的なアプリケーションテスト結果と同様の構造を有し得るが、さらに、テスト中のプロセスへの参照を有し得ることを理解されたい。図20は、本発明の一実施形態による、実行されたワークフローテストケースからのテスト結果を示すGUI2000である。
【0098】
ワークフローテストケースが失敗した場合、Orchestrator(商標)の「Process(プロセス)」セクション内の対応するプロセスが、警告(ワーニング)トライアングル及びツールチップを受け取る。図21は、本発明の一実施形態による、Orchestrator(商標)の「Process」セクションを示すGUI2100である。一実施形態において、警告トライアングル及びツールチップ2102は、失敗したワークフローテストケースによって特定のプロセスが影響を受け且つ本番環境中(稼働中)に正常に実行するために適応を必要とし得ることを示す。
【0099】
一又は複数のユーザが専用のテスト環境内で最新バージョンのワークフローについて一又は複数のワークフローテストケースを継続的に実行し得ることを考慮すると、本番環境の実際のプロセスでは、以前のバージョン及び別の環境が使用される。例えば、RPAの開発中に、第1のバージョンがあり、次に第2のバージョンがある。この第2のバージョンでは、ワークフローに変更がある場合にテストケースが実行される。別の一例において、第2のバージョンが本番環境にある場合、一連のワークフローテストケースも本番環境で実行される。例えば、テストケースは、本番環境でワークフローを実行する前に1日1回実行される。これにより、ワークフローが本番環境段階に入る前に、テスト中のワークフローを中断して修正できる。説明のため、「環境(environment)」という用語は、システム、即ち、プログラミング、データベースなどを指す。言い換えると、開発環境から始まり、本番環境前環境、本番環境など、多くの環境がある。
【0100】
このような理由のため、このプロセス内の潜在的な問題についてユーザに警告又は通知することが有益になり得る。したがって、ツールチップ又は通知メッセージ2102は、必要なコンテキストを提供し得る。例えば、ツールチップ又は通知メッセージ2102は、「このプロセスに割り当てられた幾つかのテストケースが環境YのバージョンX.X.Xで失敗しました。」というメッセージを含んでもよい。幾つかの実施形態におけるコンテキストメニューは、警告を「受け取り済み」としてマークできるようにし、これは基本的に警告を取り除く。
【0101】
特定の実施形態において、失敗したワークフローテストケースにより、開発者は、ワークフロー及び/又はテストケースを分析し、Studio Pro(商標)でワークフロー及び/又はテストケースをデバッグする。したがって、図22に示すような追加のコンテキストメニューエントリを使用すると、対応するStudio Pro(商標)のプロジェクトを直接開くことができる。図22は、本発明の一実施形態による、失敗したワークフローテストケースをStudio(商標)で開くための追加のコンテキストメニューエントリ2202を示すGUI2200である。図23は、本発明の一実施形態による、Studio Pro(商標)における影響を受けるワークフロー2302及びテストケースを示すGUI2300である。
【0102】
データ駆動型ワークフローテストケースの作成
【0103】
幾つかの実施形態において、入力データの異なる組み合わせをテストすることは、外部データソースをテストケースに接続する可能性を必要とする。一例において、データソースがExcel(登録商標)シート内のテーブルである場合を考える。例えば、本発明の一実施形態による、Excel(登録商標)内のテーブルを示すGUI2400である図24を参照されたい。
【0104】
図9は、本発明の一実施形態による、データ駆動型ワークフローテストケースを作成するプロセス900を示すフロー図である。幾つかの実施形態において、プロセス900は、902で、Studio Pro(商標)においてワークフロー又はワークフローの一又は複数の部分を選択することから開始する。このようにして、(この例では、Excel(登録商標)シートの形式での)データソース内のデータが利用される。図25は、本発明の一実施形態による、選択されるワークフロー2502を示すGUI2500である。904で、「Workflow Testing(ワークフローテスト)」セクションから「Create Data-Driven Test Case(データ駆動型テストケースの作成)」が選択され、データソースが選択される。図26は、本発明の一実施形態による、ユーザがデータソースを選択できるようにする「Data-Driven Test Case」メニュー2602を示すGUI2600である。
【0105】
906で、「Select Table(テーブルの選択)」メニューで、一又は複数のテーブルが選択される。テーブルが選択されると、908で、フィールドが選択される。図27は、本発明の一実施形態による、フィールドを選択できるようにするメニューオプション2702を示すGUI2700である。具体的には、GUI2700は、ユーザがExcel(登録商標)シートのデータソースから一又は複数のフィールドを選択できるようにするメニューオプション2702を示す。これらのフィールドからデータが抽出される。910で、データソースがExcel(登録商標)シートであるため、Studio Pro(商標)は使用されている変数名と、列を自動的に適合(照合)する。
【0106】
912で、特定の列と適合しない変数について、ユーザは選択されたシート内の利用可能な列から手動で選択する。図28は、本発明の一実施形態による、選択されたExcel(登録商標)シート内の一又は複数の利用可能な列をユーザが選択できるようにするためのメニューオプション2802を示すGUI2800である。
【0107】
914で、Studio Pro(商標)の「Import Data Set(データセットのインポート)」チェックボックスで選択されて、データソースはインポートされる。実施形態に応じて、データソースは(パスによって)参照されるか又は(例えば、メニューオプションの「Import Data Set」チェックボックスをクリックすることによって)プロジェクトの一部としてインポートされることに留意されたい。図29は、本発明の一実施形態による、「Import Data Set」を選択するためのオプションを示すメニューオプション2902を示すGUI2900である。幾つかの実施形態において、データセットはプロジェクト自体の一部であり、初めのソース(ファイル)は、テスト実行中に利用可能である必要はない。
【0108】
916で、変数の適合が完了した後、第1のテストケースが作成され、「Arguments(引数)」セクション内の変数がデータソース(外部又は内部)への参照(リファレンス)により設定される。図30は、本発明の一実施形態による、データセットから作成された第1のテストケース3002を示すGUI3000である。
【0109】
図31は、本発明の一実施形態による、複数のテストデータのバリエーションを有するテストケースを示すGUI3100である。幾つかの実施形態において、「Data Sets(データセット)」という新しいタブが作成されて、インポートされたテストデータを含むテーブルを表示し得る。このテーブルには主に2つの目的がある。第一に、このテーブルは、単一のテストケースが複数のテストデータのバリエーションに接続されていることを示す。第二に、テーブルは、ローカルでデバッグする目的で(例えば、一又は複数のバリエーションを選択して「Run(実行)」をクリックすることにより)一又は複数のバリエーションを実行する。例えば、Orchestrator(商標)に公開する場合、データセット全体が公開され実行される。
【0110】
図6図9で実行されるプロセスステップは、本発明の実施形態に従って、コンピュータプログラムによって実行されて、図6図9に記載されているプロセスの少なくとも一部をプロセッサが実行するための命令を符号化してもよい。コンピュータプログラムは、非一時的なコンピュータ読み取り可能な媒体に格納されてもよい。コンピュータ読み取り可能な媒体は、ハードディスクドライブ、フラッシュデバイス、RAM、テープ、及び/又はデータを記憶するために使用される任意の他のそのような媒体又は媒体の組み合わせであってもよいが、これらに限定されない。コンピュータプログラムは、図6図9に記載されたプロセスステップの全て又は一部を実施するようにコンピューティングシステムのプロセッサ(例えば、図5のコンピューティングシステム500のプロセッサ510など)を制御するための符号化された命令を含んでもよく、これもまた、コンピュータ読み取り可能な媒体に記憶されてもよい。
【0111】
コンピュータプログラムは、ハードウェア、ソフトウェア、又はハイブリッド実装で実装されてもよい。コンピュータプログラムは、互いに動作可能に通信し、表示する情報又は命令を渡すように設計されたモジュールで構成されてもよい。コンピュータプログラムは、汎用コンピュータ、ASIC、又は任意の他の適切なデバイスで動作するように構成されてもよい。
【0112】
本発明の様々な実施形態の構成要素は、本願の図面で一般的に記載され示されているように、多種多様な異なる構成で配置、設計されてもよいことは容易に理解されるであろう。したがって、添付の図面に表されている本発明の実施形態の詳細な説明は、クレームされている本発明の範囲を限定することを意図しておらず、単に本発明の選択された実施形態を表すものである。
【0113】
本明細書全体を通して説明される本発明の特徴、構造、又は特性は、一又は複数の実施形態において任意の適切な方法で組み合わせられてもよい。例えば、本明細書全体を通して「特定の実施形態」、「幾つかの実施形態」、又は類似の文言への言及は、実施形態に関連して説明される特定の特徴、構造、又は特性が本発明の少なくとも1つの実施形態に含まれることを意味する。したがって、本明細書全体を通して「特定の実施形態において」、「幾つかの実施形態において」、「他の実施形態において」という語句、又は同様の文言の出現は、必ずしも全て同じ実施形態のグループを指すとは限らず、説明された特徴、構造、又は特性は、一又は複数の実施形態において任意の適切な方法で組み合わせられてもよい。
【0114】
本明細書全体を通して特徴、利点、又は同様の文言への言及は、本発明で実現され得る特徴及び利点の全てが本発明の任意の単一の実施形態であるか又はそれに含まれることを意味しないことに留意されたい。むしろ、特徴及び利点に言及する文言は、実施形態に関連して説明される特定の特徴、利点、又は特性が本発明の少なくとも1つの実施形態に含まれることを意味すると理解される。したがって、本明細書全体を通して特徴、利点、及び類似の文言の説明は、必ずしもそうではないが、同じ実施形態を指してもよい。
【0115】
さらに、本発明の説明された特徴、利点、及び特性は、一又は複数の実施形態において任意の適切な方法で組み合わせられてもよい。当業者は、特定の実施形態の特定の特徴又は利点のうちの一又は複数がなくても本発明を実施できることを認識するであろう。他の例において、本発明の全ての実施形態には存在しない可能性がある特定の実施形態において、追加の特徴及び利点が認識されてもよい。
【0116】
当業者は、上記の本発明が異なる順序のステップで、及び/又は開示されているものとは異なる構成のハードウェア要素で実施されてもよいことを容易に理解するであろう。したがって、本発明をこのような好ましい実施形態に基づいて説明してきたが、本発明の主旨及び範囲内にありながら、特定の修正、変形、及び代替構造が明らかであることは当業者には明らかであろう。したがって、本発明の境界及び範囲を決定するために、添付の特許請求の範囲を参照されたい。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25
図26
図27
図28
図29
図30
図31
図32
図33
図34
図35
【国際調査報告】