(57)【要約】  ソフトウェア動作をテストするためのクラウド環境においてなどの、ホストエンティティによってホストされているエンタープライズシステムにおいて、トランザクションおよび／またはソフトウェア動作（例えば、アクション）の形式でクライアントコンピュータのメタデータを利用するためのシステムおよび方法が開示されている。ホストエンティティは、クライアントコンピュータシステムのアクションに関するデータベース内にトランザクションについてのメタデータ（例えば、応答時間、遅延、処理時間、使用状況）を格納する。次いで、ホストエンティティは、クライアントコンピュータのユーザによって動作されているエンタープライズリソースプランニングシステム内の複数のソフトウェア動作の機能をテストするために、格納されたメタデータを使用して、具体的なデータ範囲および環境に対するエンタープライズリソースプランニングシステムのソフトウェア動作を用いた実際のユーザの相互作用に基づいてテストスクリプトを自動的に生成する。
2020515985.tif 000002
【特許請求の範囲】
【請求項１】
システムであって、
通信ネットワークと、
エンタープライズリソースプランニングシステムを動作させるように構成されたクライアントコンピュータデバイスと、
通信サーバであって、
前記通信ネットワークを介して前記クライアントコンピュータデバイスから、前記クライアントコンピュータデバイスによって動作されている前記エンタープライズリソースプランニングシステム内の第１のアプリケーションの少なくとも複数のソフトウェア動作に対応するデータセットを含む第１の伝達を受信し、前記ソフトウェア動作の各々が、少なくとも１つのデータセットにリンクされるように構成され、かつ
各ソフトウェア動作に関連する前記データセットを複数のカテゴリのうちの１つに分類するように構成される、通信サーバと、
ダッシュボードサーバであって、
前記データセットから選択された定義された期間の間の１つ以上のデータフィールドを使用して、第２のアプリケーションのためのテストスクリプトを生成し、１つ以上の命令が前記テストスクリプト内で定義され、かつ前記１つ以上の命令がコンピュータ可読メモリの中へとロードされるように構成される、ダッシュボードサーバと、
テストサーバであって、
前記テストスクリプト内で定義された前記１つ以上の命令に従って、前記第２のアプリケーションをテストするために前記テストスクリプトを実行し、前記テストスクリプトを実行することが、前記１つ以上の選択されたデータフィールドに対して前記定義された期間中に、前記第１のアプリケーションの前記複数のカテゴリに対応する前記複数のソフトウェア動作を検索することと、前記１つ以上の選択されたデータフィールドに対して前記定義された期間中に、前記第１のアプリケーションの前記複数のソフトウェア動作を行うことと、を含むように構成された、テストサーバと、を含む、システム。
【請求項２】
前記通信サーバが、前記通信ネットワークを介して前記クライアントコンピュータデバイスに、前記エンタープライズリソースプランニングシステム内の前記第１のアプリケーションに対応する前記データセットに基づいて、前記第２のアプリケーションの前記複数の前記ソフトウェア動作のテストパフォーマンスの表示のための情報を含む第２の伝達を伝達するようにさらに構成されている、請求項１に記載のシステム。
【請求項３】
前記データセットが、応答時間、遅延時間、処理時間、および使用状況からなる群から選択されるメタデータを含む、請求項１に記載のシステム。
【請求項４】
前記通信ネットワークを介して前記ダッシュボードサーバへと連結されたデータベースをさらに含み、かつ前記データベースが、前記複数のカテゴリのうちの１つに対する各ソフトウェア動作に関連する前記データセットを格納するように構成されている、請求項１に記載のシステム。
【請求項５】
前記データセットが、フィールドレベルデータを含み、かつ前記フィールドレベルデータが、個人識別情報をさらに含む、請求項１に記載のシステム。
【請求項６】
前記ダッシュボードサーバが、１つ以上のルールに基づいて前記データセットから選択される前記１つ以上のデータフィールドのフィールド値を選択するようにさらに構成されている、請求項１に記載のシステム。
【請求項７】
前記１つ以上のルールが、前記データセット内のフォームの定義に基づいて定義され、かつデータベース内に格納される、請求項６に記載のシステム。
【請求項８】
前記ダッシュボードサーバが、前記１つ以上のデータフィールドの前記フィールド値に基づいて、前記クライアントコンピュータデバイスを動作させる従業員の前記エンタープライズリソースプランニングシステム内の前記第１のアプリケーションとの相互作用をシミュレートするために必要とされる第１のデータセットを再構築するようにさらに構成されている、請求項７に記載のシステム。
【請求項９】
前記ダッシュボードサーバが、前記第１のデータセットを使用して、第２のアプリケーションのための前記テストスクリプトを生成するようにさらに構成されている、請求項８に記載のシステム。
【請求項１０】
前記テストスクリプトが、テスト自動化フレームワークによってエクスポートされたサブルーチンまたはアプリケーションプログラミングインターフェースを呼び出すことによって、前記データセット内の前記第１のデータセットを再構築することによって生成されたテストケースを自動化するプログラムされたコードを含む、請求項９に記載のシステム。
【請求項１１】
コンピュータ実装された方法であって、
サーバによって、通信ネットワークを介してクライアントコンピュータデバイスから、前記クライアントコンピュータデバイスによって動作されているエンタープライズリソースプランニングシステム内の第１のアプリケーションの複数のソフトウェア動作に対応するデータセットを含む第１の伝達を受信することであって、前記ソフトウェア動作の各々が、前記少なくとも１つのデータセットにリンクされている、受信することと、
前記サーバによって、各ソフトウェア動作に関連する前記データセットを複数のカテゴリのうちの１つに分類することと、
前記サーバによって、定義された期間の間、前記データセットから選択される１つ以上のデータフィールドを使用して、第２のアプリケーションのためのテストスクリプトを生成することであって、１つ以上の命令が前記テストスクリプト内で定義され、かつ前記１つ以上の命令がコンピュータ可読メモリにロードされる、生成することと、
前記サーバによって、前記テストスクリプト内で定義された前記１つ以上の命令に従って、前記第２のアプリケーションをテストするために前記テストスクリプトを実行することであって、前記テストスクリプトを実行することが、前記サーバによって、前記１つ以上の選択されたデータフィールドに対して前記定義された期間中に、前記第１のアプリケーションの前記複数のカテゴリに対応する前記複数のソフトウェア動作を検索することと、前記サーバによって、前記１つ以上の選択されたデータフィールドに対して前記定義された期間中に、前記第１のアプリケーションの前記複数のソフトウェア動作を行うことと、を含む、実行することと、を含む、コンピュータ実装方法。
【請求項１２】
前記サーバによって、前記通信ネットワークを介して前記クライアントコンピュータデバイスへ、前記エンタープライズリソースプランニングシステム内の前記第１のアプリケーションに対応する前記データセットに基づいて、前記第２のアプリケーションの前記複数の前記ソフトウェア動作のテストパフォーマンスの表示のための情報を含む第２の伝達を伝達すること、をさらに含む、請求項１１に記載のコンピュータ実装方法。
【請求項１３】
前記データセットが、応答時間、遅延時間、処理時間、および使用状況からなる群から選択されるメタデータを含む、請求項１１に記載のコンピュータ実装方法。
【請求項１４】
前記複数のカテゴリのうちの１つに対する各ソフトウェア動作に関連する前記データセットが、データベース内に格納される、請求項１１に記載のコンピュータ実装方法。
【請求項１５】
前記データセットが、フィールドレベルデータを含み、かつ前記フィールドレベルデータが、個人識別情報をさらに含む、請求項１１に記載のコンピュータ実装方法。
【請求項１６】
前記サーバによって、１つ以上のルールに基づいて前記データセットから選択された前記１つ以上のデータフィールドのフィールド値を選択することをさらに含む、請求項１１に記載のコンピュータ実装方法。
【請求項１７】
前記１つ以上のルールが、前記データセット内のフォームの定義に基づいて定義され、かつデータベース内に格納される、請求項１６に記載のコンピュータ実装方法。
【請求項１８】
前記サーバによって、前記１つ以上のデータフィールドの前記フィールド値に基づいて、前記クライアントコンピュータデバイスを動作させる従業員の前記エンタープライズリソースプランニングシステム内の前記第１のアプリケーションとの相互作用をシミュレートするために必要とされる第１のデータセットを再構築することをさらに含む、請求項１７に記載のコンピュータ実装方法。
【請求項１９】
前記サーバによって、前記第１のデータセットを使用して、第２のアプリケーションのための前記テストスクリプトを生成することをさらに含む、請求項１８に記載のコンピュータ実装方法。
【請求項２０】
前記テストスクリプトが、テスト自動化フレームワークによってエクスポートされたサブルーチンまたはアプリケーションプログラミングインターフェースを呼び出すことによって、前記データセット内の前記第１のデータセットを再構築することによって生成されたテストケースを自動化するプログラムされたコードを含む、請求項１９に記載のコンピュータ実装方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、概して、ソフトウェアおよびウェブアプリケーションのテストのためのシステム、装置、および方法に関し、より具体的には、エンタープライズリソースプランニング（ＥＲＰ）ソフトウェアシステム用のテストツールに関する。
【背景技術】
【０００２】
ＥＲＰソフトウェアシステムは、多くの現代ビジネスの運営において重要な役割を果たしており、多種多様な複雑なソフトウェアシステムを含む。このようなＥＲＰシステムは、相互に関連する数百または数千のモジュールを含む場合がある。複雑なソフトウェアシステムを実装するには、多数のソフトウェアモジュールをカスタムプログラミングして、ベンダーからのソフトウェアをコーポレーションまたは他のエンティティの既存のシステムと組み合わせることがしばしば求められる。一部の会社は、Ｏｒａｃｌｅ（登録商標）またはＩｎｆｏｒ  Ｌａｗｓｏｎ（登録商標）システムからのものなど、独自のＥＲＰソフトウェアシステムを実行、管理、およびサービスする場合がある。他の会社は、ハードウェアとソフトウェアをホストし、会社用のこれらのＥＲＰシステムを管理するサードパーティにサービスを外部委託する場合がある。
【０００３】
サードパーティは、ＥＲＰシステムでソフトウェアアプリケーションをテストし、ソフトウェアアプリケーション内のソフトウェアのバグ、グリッチ、および問題を識別し得る。テストは、アプリケーションのビルドまたはアップグレード後に行われ、テストでは、所望の仕様に従って、行われていない特徴または機能を識別し得る。ストレステストなどの従来のテスト技法を使用して、テスト中に複数のユーザが同時にＥＲＰシステムソフトウェアを利用している状況をシミュレートすることにより、ＥＲＰシステム内のアプリケーションをテストしてもよい。ストレステストは、テスト対象のアプリケーションの安定性に関する分析情報を提供する。したがって、複数のユーザによって一般に利用されているアプリケーション（例えば、データベース、ウェブサーバなど）上でストレステストが行われることが非常に望ましい。それらのアプリケーションがストレステストの対象とされていない場合、重要な時点で失敗する可能性があり、例えば、アプリケーションを使用しようとしているユーザが多すぎる場合、障害はアプリケーションに対して取り返しのつかないダウンタイムをもたらす場合がある。ストレステストを行うためには、管理者は、アプリケーションのユーザと面接して通常の使用状況を確認し、次いで、それらのユーザによって伝えられた使用状況と、それらの面接に基づいた仮定とに基づいて、テストスクリプトを手動で生成する。しかしながら、このプロセスはしばしば、ユーザが特定のアクションを過度に強調または非強調する可能性があるため、ユーザの相互作用を正確にキャプチャしないテストスクリプトという結果になる。加えて、テストスクリプトを生成するこの手動プロセスは、達成が困難で時間がかかり、すべてのアプリケーションのパッチ、アップグレード、または移行でプロジェクト管理チームを悩ます可能性がある。
【発明の概要】
【０００４】
本明細書には、上述の欠点に対処することができるシステムおよび方法が開示されており、任意の数の追加または代替の利益および利点も提供することができる。本明細書で説明するように、システムと方法は、エンタープライズリソースプランニングテストツールを含み、エンタープライズリソースプランニングシステム内に実際のユーザ相互作用を複製し、どのアプリケーションと機能が利用されているかの当て推量を削除することによってターゲット環境にテストスクリプトを適用する。ワンクリックテストスクリプトジェネレータを用いて、システムと方法は、任意のソースの生産環境で利用される完全なアプリケーション機能を識別することができ、これにより、重要なアプリケーションを決定するための長期にわたる発見フェーズ、テストスクリプトを手動で作成する遅いプロセス、仮想的なユースケースの記録を排除し、結果として計画、識別、およびテストスクリプトの作成がより簡単かつ効率的になる。
【０００５】
本開示のシステム、装置、方法、およびコンピュータプログラム製品は、複数のクライアント会社によって動作されているエンタープライズリソースプランニングシステムにおける複数のウェブアプリケーション／ソフトウェア動作のホストエンティティによって収集されたデータセット（フィールドレベルデータ記録など）を利用することによりウェブアプリケーションのテストを行う。ウェブアプリケーションがホストエンティティと統合され、キーフィールドデータ収集が有効になっている場合、ホストエンティティは、ウェブアプリケーションで実行されたフィールドレベルデータならびに従業員の１つ以上のフォームおよび／または記録のキーフィールド値を収集する。システムおよび方法は、次いで、ホストエンティティによって収集されたフィールドレベルデータを使用することができ、そしてエンタープライズリソースプランニングシステムとの実際のユーザ相互作用に基づいてテストスクリプトを自動的に生成する。テストスクリプトの自動生成は、アプリケーション機能の労働集約的な検証を自動化されたデータが裏付けされたテストスクリプトに置き換えることによって、機能およびストレステストプロセスを変換し、それは、ウェブアプリケーション環境に変更を加える際に、ホストエンティティおよびクライアント会社の時間を節約し、リソースの消費を抑える。
【０００６】
一実施形態において、システムおよび方法は、クラウド環境など、ホストエンティティによってホストされているエンタープライズシステムにおいて、クライアント会社がトランザクションおよび／またはソフトウェア動作（例えばアクション）の形で行うコミュニティ情報を利用する。ホストエンティティはデータセットを格納し、データセットには、フィールドレベルデータ（クライアントコンピュータシステムソフトウェア動作および／またはウェブアプリケーションのモジュール上で動作する従業員の個人識別可能データなど）ならびにクライアント会社のアクションおよび他のクライアント会社のアクションに対するデータベース内のトランザクションについてのメタデータ（例えば、応答時間、遅延、処理時間、使用状況）が含まれる場合がある。次いで、ホストエンティティは、複数のクライアント会社のユーザによって動作されているＥＲＰシステムでの複数のソフトウェア動作の機能をテストするために、フィールドレベルデータを含む格納されたデータセットを使用して、具体的なデータ範囲および環境に対してＥＲＰシステムとの実際のユーザ相互作用に基づいてテストスクリプトを自動的に生成する。場合によっては、ホストエンティティは、複数のクライアント会社のユーザによって動作されているＥＲＰシステムで複数のソフトウェア動作の機能をテストするために、フィールドレベルデータならびにメタデータを使用して、具体的なデータ範囲および環境に対するＥＲＰシステムとの実際のユーザ相互作用に基づいてテストスクリプトを自動的に生成してもよい。
【０００７】
ホストエンティティのシステムは、ウェブインターフェースおよびテストエージェントの少なくとも２つの部分を含む。いくつかの実施形態では、ウェブインターフェースは、テストスクリプト用のウェブインターフェースを使用してソース環境として環境および日付範囲を選択することによって、テストスクリプトを生成するためにホストエンティティのユーザによって使用される。テストスクリプトの生成に加えて、ホストエンティティのユーザは、以前のテスト実行の結果を視て、ウェブインターフェース上で後続の実行に対するフィールド値を変更することができる。いくつかの実施形態では、テストサーバは、次いで、テストスクリプトからのおよびフォーム定義からの情報を使用することによって、トランザクションリクエストを生成する。テストサーバがトランザクションリクエストを生成すると、テストサーバは、トランザクションリクエストをターゲットシステムへと提出することによって機能テストを行い、そして各リクエストに対する応答をホストエンティティに送り返す。いくつかの実施形態では、テストエージェントは、ソース環境から各ターゲットシステムのストレスおよび相互作用を複製し、実際のユーザアクティビティを再生し、かつ、すべての必要なアプリケーション機能のパフォーマンスを立証および検証するための正確なデータ比較を提供することによって、完全なリハーサルを可能にする。例えば、テストエージェントは、特定の期間内のトランザクションリクエストの数を増やすことによって、ターゲットクライアントシステム上のストレスをシミュレートするために、ストレステストツールであるＪＭｅｔｅｒを利用することができる。本明細書で説明するようなホストエンティティの機能およびストレステスト能力を用いて、ホストエンティティは、両方のアプリケーション機能をテストすることができるだけでなく、最も重要な処理期間中のストレスを処理するようにインフラストラクチャが構成されることを保証する。
【０００８】
一実施形態では、コンピュータ実装された方法は、クライアントコンピュータシステムから通信ネットワークを介してサーバによって、ソフトウェア動作の各々が少なくとも１つのデータセットにリンクされているクライアントコンピュータシステムによって動作されているエンタープライズリソースプランニングシステムの第１のアプリケーションの少なくとも複数のソフトウェア動作に対応するデータセットを含む第１の伝達を受信することを含んでもよい。サーバは、各ソフトウェア動作に関連するデータを複数のカテゴリのうちの１つに分類するようにさらに構成されている。コンピュータ実装された方法は、サーバによって、１つ以上の命令がテストスクリプト内で定義され、１つ以上の命令がコンピュータ可読メモリの中へとロードされる定義された期間の間、データセットから第２のアプリケーションのために選択された１つ以上のデータフィールドを使用するテストスクリプトを生成することをさらに含み得る。コンピュータ実装方法は、サーバによって、テストスクリプト内で定義された命令に従って、テストスクリプトを実行して第２のアプリケーションをテストすることをさらに含み得る。テストスクリプトの実行は、サーバによって、１つ以上の選択されたデータフィールドに対して定義された期間中に第１のアプリケーションの複数のソフトウェア動作を検索すること、およびサーバによって、１つ以上の選択されたデータフィールドに対して定義された期間中に第１のアプリケーションの複数のソフトウェア動作を行うことを含む。コンピュータ実装された方法は、サーバによって通信ネットワークを介してクライアントコンピュータシステムに、エンタープライズリソースプランニングシステム内の第１のアプリケーションに対応するデータセットに基づいて、第２のアプリケーションの複数のソフトウェア動作のテスト性能を表示するための情報を含む第２の伝達を伝達することをさらに含み得る。
【０００９】
別の実施形態では、システムは、通信ネットワークを介して互いに連結されたクライアントコンピュータシステムおよびサーバを含み得る。サーバは、ソフトウェア動作の各々が少なくとも１つのデータセットにリンクされているクライアントコンピュータシステムによって動作されているエンタープライズリソースプランニングシステム内の第１のアプリケーションの少なくとも複数のソフトウェア動作に対応するデータセットを含む第１の伝達を、通信ネットワークを介してクライアントコンピュータシステムから受信するように構成されている。サーバは、各ソフトウェア動作に関連するデータを複数のカテゴリのうちの１つに分類するようにさらに構成されている。サーバは、１つ以上の命令がテストスクリプト内で定義され、かつ１つ以上の命令がコンピュータ可読メモリの中へとロードされる定義された期間の間、データセットから第２のアプリケーションのために選択された１つ以上のデータフィールドを使用してテストスクリプトを生成するようにさらに構成されている。サーバは、テストスクリプト内で定義された命令に従って、テストスクリプトを実行して第２のアプリケーションをテストするようにさらに構成されている。サーバによるテストスクリプトの実行は、１つ以上の選択されたデータフィールドに対して定義された期間中に第１のアプリケーションの複数のソフトウェア動作を検索すること、および１つ以上の選択されたデータフィールドに対して定義された期間中に第１のアプリケーションの複数のソフトウェア動作を行うことを含む。サーバは、エンタープライズリソースプランニングシステム内の第１のアプリケーションに対応するデータセットに基づいて、第２のアプリケーションの複数のソフトウェア動作のテスト性能を表示するための情報を含む第２の伝達を、通信ネットワークを介してクライアントコンピュータシステムへと伝達するようにさらに構成されている。
【００１０】
実施形態の追加の特徴および利点は、以下の説明に記載され、また一部はその説明から明らかになるであろう。本発明の目的および他の利点は、本明細書に記述される説明および特許請求の範囲ならびに添付の図面の例示的実施形態で具体的に指摘されている構造によって実現されかつ達成されるであろう。
【００１１】
前述の一般的な説明および以下の詳細な説明の両方が例示的かつ説明的であり、また特許請求されるような本発明のさらなる説明を提供することを意図していることを理解されたい。
【図面の簡単な説明】
【００１２】
添付の図面は、本明細書の一部を構成し、本発明の実施形態を例示し、本明細書とともに本発明を説明する。
【００１３】
【図１】例示的な実施形態による、ウェブアプリケーションをテストするためのシステムの構成要素を示す。
【図２】例示的な実施形態による、ウェブアプリケーションをテストするための方法の実行を示す。
【図３】例示的な実施形態による、ダッシュボードを示すグラフィカルユーザインターフェースを示す。
【図４】例示的な実施形態による、ダッシュボードを示すグラフィカルユーザインターフェースを示す。
【図５】例示的な実施形態による、テスト結果を表示するためのグラフィカルユーザインターフェースを示す。
【図６】例示的な実施形態による、ダッシュボードを示すグラフィカルユーザインターフェースを示す。
【図７】例示的な実施形態による、ヒートマップを示すグラフィカルユーザインターフェースを示す。
【図８】例示的な実施形態による、コミュニティ情報を比較するためのグラフィカルユーザインターフェースを示す。
【図９】例示的な実施形態による、経時的なパフォーマンスを表示するためのグラフィカルユーザインターフェースを示す。
【図１０】例示的な実施形態による、オープンリクエストを表示するグラフィカルユーザインターフェースを示す。
【図１１】例示的な実施形態による、故障停止を表示するためのグラフィカルユーザインターフェースを示す。
【図１２】例示的な実施形態による、クライアント会社の１つ以上の製品ラインを表示するグラフィカルユーザインターフェースを示す。
【発明を実施するための形態】
【００１４】
ここで、図面に例示されている例示的な実施形態を参照し、実施形態を説明するためにここでは特定の言語が使用されることになる。それにもかかわらず、特許請求の範囲または本開示の範囲の限定はそれによって意図されないことが理解されるであろう。関連技術の当業者および本開示を所有する者には思い付くであろう、本明細書に示される発明の特徴の変更およびさらなる修正、ならびに本明細書に示される主題の原理の追加的な応用は、本明細書で開示される主題の範囲内であるとみなされるべきである。
【００１５】
本開示は、本明細書の一部を形成する図面に示される実施形態を参照してここで詳細に説明される。本開示の趣旨または範囲から逸脱することなく、他の実施形態が使用されてもよく、および／または他の変更がなされてもよい。発明を実施するための形態に記載されている例示的な実施形態は、本明細書に提示されている主題を制限することを意味していない。
【００１６】
新しいアプリケーション、強化または更新されたアプリケーション、オペレーティングシステム、またはコンピュータシステムに対してストレステストを行う場合、本明細書のシステムおよび方法は、使用の仮定ではなく実際のトランザクションに基づいたスクリプトを生成するために、エンタープライズリソースプランニングシステムを用いて各トランザクションのフィールドレベルデータおよびメタデータを含むデータセットをキャプチャすることができる。テストスクリプトの自動生成は、アプリケーション機能の労働集約的な検証を自動化されたデータが裏付けされたテストスクリプトに置き換えることによって、機能およびストレステストプロセスを変換し、それは、ウェブアプリケーション環境に変更を加える際に、ホストエンティティおよびクライアント会社の時間を節約し、リソースの消費を抑える。本明細書で開示されるように、システムおよび方法は、ソフトウェア動作をテストするためのクラウド環境など、ホストエンティティによってホストされているエンタープライズリソースプランニングシステムにおいて、フィールドレベルデータ、トランザクション、および／またはソフトウェア動作（アクションなど）の形式でクライアントコンピュータのデータセットを使用することができる。ホストエンティティはデータセットを格納し、データセットには、フィールドレベルデータ（クライアントコンピュータシステムソフトウェア動作および／またはウェブアプリケーションの１つ以上のモジュールで動作するクライアントコンピュータシステムの従業員の個人識別可能データを含む）ならびにクライアントコンピュータシステムのアクションのためのデータベース内のトランザクションについてのメタデータ（例えば、応答時間、遅延、処理時間、使用状況）がさらに含まれる場合がある。次いで、ホストエンティティは、クライアントコンピュータのユーザによって動作されているエンタープライズリソースプランニングシステムでの複数のソフトウェア動作の機能をテストするために、格納されたデータセットを使用して、具体的なデータ範囲および環境に対するエンタープライズリソースプランニングシステムのソフトウェア動作との実際のユーザの相互作用に基づいてテストスクリプトを自動的に生成する。
【００１７】
図１は、例示的な実施形態による、ウェブアプリケーションをテストするためのシステム１００の構成要素を示す。システム１００は、ホストエンティティ１０２、クライアントコンピュータシステム１０４、およびクライアントコンピュータシステム１０６を含んでもよい。ホストエンティティ１０２、クライアントコンピュータシステム１０４、およびクライアントコンピュータシステム１０６ならびにそれらの構成要素は、ネットワーク１０８を介して互いに接続されている。ネットワーク１０８の例としては、私的または公的ＬＡＮ、ＷＬＡＮ、ＭＡＮ、ＷＡＮ、およびインターネットが挙げられ得るが、これらに限定されない。ネットワーク１０８としては、１つ以上の規格に従い、かつ／または１つ以上の搬送媒体を介した有線通信および無線通信の両方が挙げられ得る。ネットワーク１０８を介した通信は、伝送制御プロトコルおよびインターネットプロトコル（ＴＣＰ／ＩＰ）、ユーザデータグラムプロトコル（ＵＤＰ）、およびＩＥＥＥ通信プロトコルなどの様々な通信プロトコルに従って行われてもよい。一例では、ネットワーク１０８は、Ｂｌｕｅｔｏｏｔｈ（登録商標）仕様セット、または別の標準もしくは専用の無線通信プロトコルによる無線通信を含んでもよい。別の例では、ネットワーク１０８としては、例えば、ＧＳＭ（登録商標）（Ｇｌｏｂａｌ  Ｓｙｓｔｅｍ  ｆｏｒ  Ｍｏｂｉｌｅ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ）、ＣＤＭＡ（Ｃｏｄｅ  Ｄｉｖｉｓｉｏｎ  Ｍｕｌｔｉｐｌｅ  Ａｃｃｅｓｓ）、ＥＤＧＥ（Ｅｎｈａｎｃｅｄ  Ｄａｔａ  ｆｏｒ  Ｇｌｏｂａｌ  Ｅｖｏｌｕｔｉｏｎ）ネットワークを含むセルラーネットワークを介した通信も挙げられ得る。
【００１８】
ホストエンティティ１０２は、総称してコミュニティと呼ばれる様々なクライアント会社のためのエンタープライズシステム１１０をホストすることができる。ホストエンティティ１０２は、クラウドプラットフォーム上でエンタープライズシステム１１０をホストすることができる。ホストエンティティ１０２は、クライアントコンピュータシステム１０４、１０６がそれら自体では取得できないサービス品質保証契約（ＳＬＡ）を提供してもよい。ホストエンティティ１０２は、多数のチケット、応答時間、ログオンしている人などを含む、エンタープライズシステム１１０の動作に関するダッシュボード上のリアルタイム情報を提供することができる。クライアントコンピュータシステム１０４、１０６は、エンタープライズシステム１１０を使用して複数のトランザクションおよび／またはソフトウェア動作を行ってもよく、各トランザクションおよび／またはソフトウェア動作は、ホストエンティティ１０２によってホストされるハードウェアおよび／またはソフトウェアを使用することを代表するクライアントコンピュータシステム１０４、１０６によって行われる。各トランザクションおよび／またはソフトウェア動作（例えば、請求書の追加、時間記録の提出、バッチジョブの提出）は、金融トランザクションおよび／またはソフトウェア動作に限定されるように意図されておらず、むしろエンタープライズシステム１１０での測定可能または個別のタスク、プロジェクト、および／またはアクションである。ホストエンティティ１０２は、エンタープライズシステム１１０を使用してクライアント会社１０４、１０６からデータを収集するので、ホストエンティティ１０２は、クライアントコンピュータシステムのウェブアプリケーションの性能についてクライアントコンピュータシステム１０４、１０６に情報を提供することもできる。例えば、ホストエンティティ１０２は、クライアント会社１０４、１０６のソフトウェア動作および／またはウェブアプリケーションに関する１つ以上のテストを行って、テスト結果についてクライアント会社１０４、１０６にフィードバックを提供し得る。次いで、クライアントコンピュータシステム１０４、１０６は、ホストエンティティ１０２によって提供されたテスト結果のフィードバックに基づいて、自らのプロセスまたはソフトウェアを調整し得る。
【００１９】
ホストエンティティ１０２は、複数のクライアント会社１０４、１０６のためのエンタープライズシステム１１０をホストする。エンタープライズシステム１１０は、プロセッサおよび非一時的な機械可読記憶媒体を備え、かつ実行中に本明細書に記載の様々なタスクおよびプロセスを行うことができる任意のコンピューティングデバイスであり得る。エンタープライズシステム１１０の非限定的な例としては、デスクトップコンピュータ、サーバコンピュータ、ラップトップコンピュータ、タブレットコンピュータなどが挙げられ得る。説明を簡単にするために、図１はエンタープライズシステム１１０として機能する単一のサーバを示すが、エンタープライズシステム１１０は、クライアントコンピュータシステム１０４、１０６を代表してシステムをホストするために使用される１つ以上のサーバ、データベース、および／またはクラウド環境を含んでもよいことが意図されている。
【００２０】
ホストエンティティ１０２は、データを収集して、クライアントコンピュータシステム１０４、１０６に表示するために通信サーバにデータを提示するために、エンタープライズシステム１１０に通信可能に連結されたダッシュボードサーバ１１２を有してもよい。いくつかの実施形態では、ダッシュボードサーバ１１２は、データを収集して、クライアントコンピュータシステム１０４、１０６のユーザによって動作されている複数のソフトウェア動作およびウェブアプリケーションの機能をテストするために、データを使用して１つ以上のテストを行うように構成されているテストサーバ１２６にデータを提示するために、エンタープライズシステム１１０に通信可能に連結されてもよい。
【００２１】
ダッシュボードサーバ１１２の非限定的な例としては、デスクトップコンピュータ、サーバコンピュータ、ラップトップコンピュータ、タブレットコンピュータなどが挙げられ得る。いくつかの実施形態では、ダッシュボードサーバ１１２は、イーサネット（登録商標）ボードからウェブページを実行するウェブインターフェースを含んでもよく、またＨＴＴＰプロトコルインタープリタ、ＰＬＣバックプレーンドライバ、ＴＣＰ／ＩＰスタック、およびイーサネットボードカーネルを含む。ウェブインターフェースは、ホストエンティティ１０２へのアクセスを提供する。ダッシュボードサーバ１１２のこのインターフェースを使用して、ホストエンティティ１０２の管理者は、クライアントコンピュータシステム１０４、１０６の動作に関するすべての関連データを検索して、クライアントコンピュータシステム１０４、１０６のユーザによって動作されている複数のソフトウェア動作およびウェブアプリケーションの機能をテストするために、データを使用して１つ以上のテストを行い得る。
【００２２】
ダッシュボードサーバ１１２に対して１つのサーバが示されているが、機能は１つ以上のサーバおよびデータベースによって行われてもよいことが意図されている。ダッシュボードサーバ１１２は、クライアントコンピュータシステムの情報を管理することを支援するための複数の監視ツールまたはアプリケーションを含んでもよい。ダッシュボードサーバ１１２は、データベース１１４へと通信可能に連結されてもよい。データベース１１４は、ダッシュボードサーバ１１２および／またはホストエンティティ１０２の他の構成要素によって集められたデータセットを有する記録を格納することができる。いくつかの実施形態では、テストサーバ１２６は、クライアントコンピュータシステム１０４、１０６のユーザによって動作されている複数のソフトウェア動作およびウェブアプリケーションの機能をテストするために、データを収集して１つ以上のテストを行うためにデータベース１１４へと通信可能に連結されてもよい。
【００２３】
データベース１１４は、フィールドレベルデータを含むデータセットを格納する。いくつかの実施形態では、フィールドレベルデータは、クライアントコンピュータシステム１０４、１０６と関連付けられたすべての動作および個人識別可能データから取得される。いくつかの実施形態では、フィールドレベルデータは、メタデータを含む場合があるクライアントコンピュータシステム１０４、１０６に関連付けられたデータから取得される。メタデータは、クライアントコンピュータシステム１０４、１０６のトランザクションおよび／またはソフトウェア動作についての情報、および基礎となるトランザクションおよび／またはソフトウェア動作についてのデータを含んでもよい。メタデータは、クライアントコンピュータシステム１０４、１０６の場合は１人以上の従業員についてのデータ、クライアントコンピュータシステム１０４、１０６の１つ以上のソフトウェアおよびウェブアプリケーションについてのデータ、およびクライアントコンピュータシステム１０４、１０６のユーザおよび／または従業員によってアクセスされている１つ以上のフォームを含んでもよい。一例では、データベース１１４は、名、姓、従業員ＩＤ、開始日、役職などのデータフィールドを含む従業員記録に対応する１つ以上のフォームを格納してもよい。別の例では、データベース１１４は、クライアントコンピュータシステム１０４、１０６のユーザおよび／または従業員によってアクセスされる、福利厚生モジュール（ＢＮ）、人事モジュール（ＨＲ）、人員アクションモジュール（ＰＡ）、給与計算モジュール（ＰＲ）に対応する１つ以上のフォームを格納してもよい。動作中に、データベース１１４からフォームおよび従業員の詳細を含む記録を取得するために、リクエストがデータベース１１４になされてもよい。
【００２４】
いくつかの実施形態では、データベース１１４は、基礎となるトランザクションおよび／またはソフトウェア動作についてのデータを含み得るデータセットを格納する。例えば、病院などのヘルスケア業界のクライアントコンピュータシステムは、患者にステッチを提供するために必要なすべてのツールとアイテムを備えた縫合トレイを注文してもよい。データベース１１４は、注文傾向を他の病院と比較するために、いくつの縫合トレイが注文されているかについての情報をさらに格納してもよい。データベース１１４は、ステッチを必要とした特定の患者またはステッチが適用された理由についての情報をさらに格納してもよい。例示的な実施形態では、データベース１１４は、何らかの機密情報を格納してもよい。
【００２５】
データベース１１４は、上述のようにデータセット記録を格納するための非一時的な機械可読記憶媒体であってもよい。本明細書で使用される場合、「コンピュータ可読媒体」または「コンピュータ使用可能媒体」という用語は、実行のためにプロセッサに命令を提供することに関与する任意の媒体を指す。そのような媒体は、不揮発性媒体、揮発性媒体、および伝送媒体を含むがこれらに限定されない多くの形式を取り得る。不揮発性媒体としては、例えば、ディスクドライブなどの光学ディスクまたは磁気ディスクが挙げられる。揮発性媒体としては、システムメモリなどのダイナミックメモリが挙げられる。コンピュータ可読媒体の一般的な形式としては、例えば、フロッピーディスク、フレキシブルディスク、ハードディスク、磁気テープ、任意の他の磁気媒体、ＣＤ−ＲＯＭ、任意の他の光学媒体、パンチカード、紙テープ、穴のパターンを有する任意の他の物理媒体、ＲＡＭ、ＰＲＯＭ、ＥＰＲＯＭ、ＦＬＡＳＨ−ＥＰＲＯＭ、任意の他のメモリチップもしくはカートリッジ、またはコンピュータがこれから読み取ることができる任意の他の媒体が挙げられる。
【００２６】
ホストエンティティ１０２はまた、クライアント会社１０４、１０６との間でデータを伝達するための通信サーバ１１６（例えば、ウェブサーバ）も有する。通信サーバ１１６の非限定的な例としては、デスクトップコンピュータ、サーバコンピュータ、ラップトップコンピュータ、タブレットコンピュータなどが挙げられ得る。ホストエンティティの通信サーバ１１６は、クライアントコンピュータシステム／デバイス１０４、１０６の通信サーバ１１８、１２０（例えば、ウェブサーバ）にウェブページを提示してもよい。ホストエンティティの通信サーバ１１６は、通信可能に連結されたダッシュボードサーバ１１２から取得したデータをウェブページに投入してもよく、またホストエンティティの通信サーバ１１６は、クライアントコンピュータシステム１０４、１０６で表示するためにウェブページを伝達してもよい。
【００２７】
２つのクライアント会社１０４、１０６が示されているが、ホストエンティティ１０２は、任意の数のクライアント会社１０４、１０６のコミュニティをホストし得ることが意図されている。また、例示的な実施形態は、エンタープライズシステム１１０の使用を記載しているが、本開示の範囲と一致する任意のプラットフォームまたはソフトウェアが使用されてもよいことが意図されている。この例示的な実施形態では、各クライアントコンピュータシステム１０４、１０６は、エンタープライズリソースプランニング（ＥＲＰ）サーバ１２２、１２４を有してもよい。各クライアントコンピュータシステム／デバイス１０４、１０６に対して１つのＥＲＰサーバ１２２、１２４が示されているが、機能は１つ以上のサーバおよびデータベースによって行われてもよいことが意図されている。ＥＲＰサーバ１２２、１２４は、クライアントコンピュータシステム／デバイス１０４、１０６の通信サーバ１１８、１２０に通信可能に連結され、ホストエンティティのエンタープライズシステム１１０に連結されているホストエンティティ１０２の通信サーバ１１６との間でデータを伝達し得る。これらのサーバは、インターネットなどのネットワーク１０８を介して通信し得る。
【００２８】
クライアントコンピュータシステム１０４、１０６は、クライアントコンピュータシステムの通信サーバ１１８、１２０を介してホストエンティティ１０２と通信することができるワークステーション１２６、１２８および／または他のコンピューティング／コンピュータデバイス（例えば、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、モバイルデバイス、携帯電話、スマートフォン、パーソナルデータアシスタント）を有する。ホストエンティティ１０２は、ダッシュボードサーバ１１２およびデータベース１１４からのデータを使用してウェブページを生成し、クライアントエンティティにおけるワークステーション１２６、１２８にコミュニティ情報を提供することができる。この情報は、ホストエンティティ１０２によって生成され、クライアントコンピュータシステム１０４、１０６のワークステーション１２６、１２８のグラフィカルユーザインターフェース（例えば、ウェブブラウザ）上に表示するように構成される。
【００２９】
動作中、ダッシュボードサーバ１１２は、フィールドレベルデータを含むデータセットを格納するデータベース１１４と通信し得る。フィールドレベルデータは、クライアントコンピュータシステムソフトウェア動作および／またはウェブアプリケーションの１つ以上のモジュールで動作するクライアントコンピュータシステム１０４、１０６の従業員の個人識別データを含み得る。データセットは、クライアントコンピュータシステムソフトウェア動作および／またはウェブアプリケーションの１つ以上のモジュール上のクライアントコンピュータシステム１０４、１０６の従業員によってアクセスされる１つ以上の従業員記録およびフォームを含み得るメタデータをさらに含み得る。ダッシュボードサーバ１１２は、データベース１１４にリクエストを送って、１つ以上の従業員記録およびフォーム詳細に対応するデータを含むデータセットを取得し得る。いくつかの実施形態では、ダッシュボードサーバ１１２は、具体的なリクエストをデータベース１１４に送って、１つ以上の従業員記録およびフォーム内の複数のフィールド値から１つ以上のフィールド値を取得し得る。ダッシュボードサーバ１１２は、１つ以上のセットのルールに基づいて１つ以上の従業員記録およびフォーム内の複数のフィールド値から１つ以上のフィールド値を選択し得る。１つ以上のルールのセットは、フォーム定義に基づいて定義されてもよい。例えば、Ｇｏｏｇｌｅ電子メールフォームに対しては、ユーザ名フィールドとパスワードフィールドの２つのフィールドがある場合がある。ダッシュボードサーバ１１２は、データベース１１４に格納されたＧｏｏｇｌｅ電子メールのログインフォームの定義を決定し、Ｇｏｏｇｌｅ電子メールのログインフォームの定義に基づいて、ダッシュボードサーバ１１２は、Ｇｏｏｇｌｅ電子メールフォームの２つのフィールドから１つ以上のフィールド値を選択する。フォーム定義は、クライアントコンピュータシステム１０４、１０６および／またはホストエンティティ１０２の管理者によって定義されてもよい。
【００３０】
いくつかの実施形態では、ダッシュボードサーバ１１２は、次いで、従業員によってアクセスされる１つ以上の従業員記録およびフォーム内の１つ以上のフィールド値に基づいて、クライアントコンピュータシステム従業員のクライアントコンピュータシステム１０４、１０６のＥＲＰサーバ１２２、１２４のウェブアプリケーションとの相互作用をシミュレートするために必要とされるデータセット（例えば、第１のデータセット）を再構築する。その後、ダッシュボードサーバ１１２は、データベース１１４から再構築および／または取得されたデータセットおよび／またはメタデータに基づいてテストスクリプトを生成する。テストスクリプトは、テスト自動化フレームワーク（ＴＡＦ）によってエクスポートされたサブルーチンまたはアプリケーションプログラミングインターフェース（ＡＰＩ）を呼び出すことによって、メタデータ内の選択されたデータセットに対する１つ以上のフィールドを再構築することによって生成されたテストケースを自動化するプログラムされたコードであってもよい。ＴＡＦは、プロセスを作成し、リモートテストセットアップを追跡および制御するためのインフラストラクチャを含めて、テストスクリプトを実行するためのバックエンドサポートを提供し得る。一例では、テストケースは、複数のプロセス、ツール、およびＥＲＰシステムがクライアントコンピュータシステム１０４、１０６のユーザによって利用される複雑なロジックを含み得る。テストケースは、各プロセスが１つ以上のテスト機能を実行する並列および順次プロセスを含んでもよい。
【００３１】
いくつかの実施形態では、ダッシュボードサーバ１１２は、テストを行う必要がある製品／アプリケーションソフトウェアカテゴリを選択する。製品／アプリケーションカテゴリに加えて、いくつかの実施形態では、ダッシュボードサーバ１１２はまた、選択された製品／アプリケーションソフトウェアカテゴリをテストするためのテストスクリプトの生成のための定義された期間を有する、選択された環境に対する選択されたデータセットを取得するために、選択された製品／アプリケーションソフトウェアカテゴリに対するソース環境として環境および日付範囲も選択する。例えば、ＥＲＰサーバ１２２、１２４は、生産リクエストを行うように構成された生産環境および他のリクエストを行うように構成されたタスク環境などの複数の環境を有してもよい。別の例では、テストする必要のある単一のソフトウェア製品／アプリケーション（Ｐｅｏｐｌｅ  Ｓｏｆｔなど）は、異なった国のクライアントコンピュータシステム１０４、１０６によって動作され得る。その時、各国はソフトウェアアプリケーションの異なる環境を表す。製品／アプリケーションカテゴリとしてＰｅｏｐｌｅ  Ｓｏｆｔを選択した後のダッシュボードサーバ１１２のような事例では、次いで、ダッシュボードサーバ１１２は、テストスクリプトの生成のために、例えば、選択された製品／アプリケーションカテゴリのための環境としてＵＳＡゾーン、および選択された製品／アプリケーションカテゴリのための任意の日付範囲を選択する。
【００３２】
次いで、ダッシュボードサーバ１１２に通信可能に連結されたテストサーバ１２６は、ダッシュボードサーバ１１２からテストスクリプトを受信し得る。いくつかの実施形態では、ダッシュボードサーバ１１２は、テストスクリプトを生成すると、テストスクリプトをテストサーバ１２６へと自動的に伝達し得る。いくつかの実施形態では、ダッシュボードサーバ１１２は、テストサーバ１２６からリクエストを受信すると、テストスクリプトをテストサーバ１２６へと伝達し得る。いくつかの実施形態では、ダッシュボードサーバ１１２は、ホストエンティティ１２６の管理者からリクエストを受信すると、テストスクリプトをテストサーバ１２６に伝達し得る。次いで、テストサーバ１２６は、テストスクリプトおよび／またはフォーム定義からのデータを使用することによって、トランザクションリクエストを生成する。トランザクションリクエストが生成されると、テストサーバ１２６は、トランザクションリクエストを提出することによって、クライアントコンピュータシステム１０４、１０６のウェブアプリケーションをテストするために機能テストを行う。
【００３３】
いくつかの実施形態では、テストサーバ１２６はまた、クライアントコンピュータシステム１０４、１０６のウェブアプリケーションを使用する様々なシナリオを可能にするパフォーマンステストツールまたはシステム（またはソフトウェア）を利用することもでき、そのパフォーマンスを反映する統計データをそこから推定するためにシミュレートされる。これらのツールの中でも、財団Ａｐａｃｈｅによって作成されたソフトウェアであるＪＭｅｔｅｒツールを挙げることができる（エラー！ハイパーリンク参照が無効である。）。ＪＭｅｔｅｒツールは、クライアントコンピュータシステム１０４、１０６のＥＲＰコンピューティングウェブアプリケーションのパフォーマンステストが、ＨＴＴＰ／ＨＴＴＰＳ、ＳＭＴＰなどの異なるプロトコルに従って行われることを可能にする。そうするために、ＪＭｅｔｅｒツールは、クライアントコンピュータシステム１０４、１０６のターゲットＥＲＰコンピューティングアプリケーションの複数のユーザの負荷をシミュレートし、その後、この負荷に応答するＥＲＰコンピューティングウェブアプリケーションの挙動、特にクライアントコンピュータシステムの従業員の経験を表す応答時間を説明するいくつかのパフォーマンスメトリックを測定する。テストが完了すると、テストサーバ１２６は、次いで、通信ネットワーク１０８を介してクライアントコンピュータシステム１０４にテスト結果を提示し得る。
【００３４】
本開示の代替実施形態では、ホストエンティティ１０２は、洞察を提供するためにクライアントコンピュータシステム１０４、１０６から情報を取得することができる。システム１００は、ホストエンティティ１０２が傾向、効率、およびパフォーマンスに関する情報を提供できるように、ＥＲＰサーバ１２２、１２４が情報を抽出して、それをダッシュボードサーバ１１２へと提供することができるように構成することができる。
【００３５】
エンタープライズシステム１１０のクライアント会社１０４、１０６のコミュニティから少なくともメタデータを含むトランザクションデータセットを集めることによって、システム１００は、システム１００とユーザ効率との比較分析を提供することができる。さらに、コミュニティのシステム自体についてのメタデータ（バージョン、パッチなど）を集めることによって、異なるバージョンにわたってシステムおよびユーザパフォーマンスに対する追加の比較分析を提供することができる。さらに、システムの変更およびシステムイベント（すなわち、モニタ）についての追加のメタデータを追加することによって、追加の比較分析を提供することができる。
【００３６】
ホストエンティティ１０２が、クライアントコンピュータシステム１０４、１０６をコミュニティ内の他のものと比較するためにデータセットを使用することができる方法の例には、以下を行う能力、すなわち：（１）システム／トランザクション／機能ごとのパターン／比較のためにオンライントランザクション使用状況を分析する、（２）システム／トランザクション／機能ごとのパターン／比較のためにバッチシステム使用状況を分析する、（３）システム／トランザクション／機能ごとのパターン／比較のためにシステムパフォーマンスメトリックを分析する、（４）システム／トランザクション／機能ごとのパターン／比較のためにシステムレベル（バージョン／アップグレード／サイクリカル／パッチ）を分析する、（５）アドホッククエリの使用状況／効率（およびシステム全体のパフォーマンスへの影響）を分析する、（６）システム／トランザクション／機能ごとのパターン／比較のためにユーザログインを分析する、（７）システム／トランザクション／機能ごとのパターン／比較のためにユーザセッションの継続時間／習慣を分析する、（８）システム／トランザクション／機能ごとのパターン／比較のためにユーザ効率を分析する、（９）異例のユーザの挙動（すなわち、午前２時３０分に自宅からのユーザログイン）を特定する、および（１０）異例のトランザクションおよび／またはソフトウェア動作の挙動（すなわち、スケジュールされたチェックの実行前に買掛金ベンダーの条件を更新し、チェックの実行後に変更を戻すデーモンプロセス）を特定する、能力が含まれるが、これらに限定されない。
【００３７】
一実施形態では、内部制御システムは、すべてのソースコード、オブジェクト、画面、設定、データベースなどを含む、実際のシステム自体についてのメタデータを収集することができる。このシステムは以下、すなわち：（１）変更管理分析、（２）コミュニティとの構成の比較、（３）システムへの任意の変更によってスライスされた上記のすべてのパフォーマンスメトリック（４）配信された「ゴールドコード」からのシステムデルタ、を可能にする。
【００３８】
図２は、例示的な実施形態による、ウェブアプリケーションをテストするための方法２００の実行を示す。図２に示される例示的な方法２００は、実行ステップ２０２、２０４、２０６、および２０８を含む。しかしながら、他の実施形態は、追加のまたは代替の実行ステップを含んでもよく、または１つ以上のステップを完全に省略してもよいことを理解するべきである。また、他の実施形態は、特定の実行ステップを異なる順序で行ってもよく、ステップは、互いに同時にまたはほぼ同時に行われてもよいことも理解するべきである。加えて、図２の例示的な方法２００は、単一のサーバコンピュータによって実行されているものとして説明されている。しかしながら、当業者は、いくつかの実施形態では、ステップが、分散コンピューティング環境で動作する任意の数のコンピューティングデバイスによって実行されてもよいことを理解するであろう。場合によっては、１つ以上のステップを実行するコンピュータは、様々な他の、無関係な機能を実行するようにプログラムされてもよく、そのようなコンピュータは、ここで説明するセキュリティサーバとして厳密に動作している必要はない。
【００３９】
ステップ２０２において、サーバは、通信ネットワークを介してクライアントコンピュータシステムから、少なくともフィールドレベルデータならびにクライアントコンピュータシステムによって動作されているエンタープライズリソースプランニングシステム内の第１のアプリケーション（例えば、給与計算ウェブアプリケーションバージョン１）の複数のソフトウェア動作のメタデータを含むデータセットの伝達を受信し得る。ソフトウェア動作の各々は、サーバが各ソフトウェア動作に関連するデータを複数のカテゴリのうちの１つに分類することを可能にしている少なくとも１つのデータセットにリンクされてもよい。
【００４０】
いくつかの実装形態では、複数のソフトウェア動作のデータセットは、クライアントコンピューティングシステムを動作させている会社の従業員の個人識別情報をさらに含んでもよい。いくつかの実装形態では、複数のソフトウェア動作のデータセットは、クライアントコンピューティングシステムを動作させている会社の従業員の個人識別情報、およびクライアントコンピューティングシステムを動作させている会社の従業員によって行われる各ソフトウェア動作に関連するアクションに対応する詳細もまたさらに含んでもよい。いくつかの実装では、クライアントコンピュータシステムによって動作されているエンタープライズリソースプランニングシステム内の第１のアプリケーションの複数のソフトウェア動作のデータセットは、クライアントコンピュータシステムの１つ以上のエンタープライズリソースプランニングシステムサーバによって生成されたフィールドレベルデータを含む。
【００４１】
ステップ２０４において、サーバは、テストされる第２のアプリケーション（例えば、給与計算ウェブアプリケーションの新しいバージョンもしくはリリース、または完全に新しいアプリケーション）のためのデータセットを使用してテストスクリプトを生成し得る。サーバは、エンタープライズリソースプランニングシステム内の第１のアプリケーションに対応するデータセット内の複数のデータフィールドから１つ以上のデータフィールドを選択することによって、第２のアプリケーションをテストするためのテストスクリプトを生成し得る。１つ以上のデータフィールドを選択すると、サーバは、１つ以上のデータフィールドの各々に対応する値を検索し得る。サーバは、次いで、第２のアプリケーションをテストするためのテストスクリプトを生成するために、１つ以上のデータフィールドとそれらに対応する値を使用し得る。
【００４２】
いくつかの実施形態では、サーバは、定義された期間の間、第１のアプリケーションに対応するデータセット内の１つ以上のデータフィールドを選択することによって、第２のアプリケーションをテストするためのテストスクリプトを生成してもよい。いくつかの実施形態では、サーバは、定義された期間内の具体的な環境のための第１のアプリケーションに対応するデータセット内の１つ以上のデータフィールドを選択することによって、第２のアプリケーションをテストするためのテストスクリプトを生成してもよい。例えば、アプリケーションは、複数の国で動作し、各国は、アプリケーションに対して異なる動作の環境を表す場合がある。いくつかの実施形態では、テストスクリプトの生成時に、サーバは、テストスクリプト内に１つ以上の命令を定義する。次いで、サーバは、１つ以上の命令をコンピュータ可読メモリにロードする。サーバは、テストスクリプトをデータベースの揮発性メモリにダウンロードしてもよい。
【００４３】
サーバは、様々な目的のためにテストスクリプトを生成し得る。例えば、生成されたテストスクリプトは、ソフトウェアテスト環境内のサーバによって使用されて（例えば、ソフトウェアテストサーバによってサポートされて）、テストスクリプトを使用してクライアントコンピューティングシステム上で機能テストを行い、かつ／またはテストスクリプトを使用してクライアントコンピューティングシステム上で回帰テストを行い得る。テストスクリプトは、クライアントコンピューティングシステム上で行われる第１のアプリケーションに対応するメタデータを使用して、様々な異なるテストケースに関連付けられたセクションを含んでもよい。
【００４４】
ステップ２０６において、サーバは、テストスクリプト内で定義された命令に従って、テストスクリプトを実行して第２のアプリケーションをテストする。テストスクリプトの実行中に、サーバはリクエストを生成し得、かつリクエストをデータベースへと伝達して、１つ以上の選択されたデータフィールドに対して定義された期間中に、第１のアプリケーションの複数のソフトウェア動作を検索する。データベースは、サーバからリクエストを受信すると、１つ以上の選択されたデータフィールドに対して定義された期間中に、第１のアプリケーションの複数のソフトウェア動作を検索し得、かつその後、１つ以上の選択されたデータフィールドに対して定義された期間中に、第１のアプリケーションの複数のソフトウェア動作をサーバへと伝達する。サーバは、データベースからの１つ以上の選択されたデータフィールドに対して定義された期間中に、第１のアプリケーションの複数のソフトウェア動作を受信すると、１つ以上の選択されたデータフィールドに対して定義された期間中に、第１のアプリケーションの複数のソフトウェア動作を行う。
【００４５】
いくつかの実施形態では、テストスクリプトの実行中に、サーバは、テストスクリプトに関連付けられた情報および／またはデータを使用してトランザクションリクエストを生成し得る。トランザクションリクエストは、定義された期間内の具体的な環境に対する第１のアプリケーションに対応するメタデータ内の選択された１つ以上のデータフィールドに基づいて、クライアントコンピュータシステムの従業員の１つ以上のリクエストを再作成することを含んでもよい。トランザクションリクエストが生成されると、サーバは、トランザクションリクエストを実行することによって、第２のアプリケーションの機能テストを行う。
【００４６】
いくつかの実施形態では、サーバはまた、ＪＭｅｔｅｒ（ストレステストツール）を利用して、特定の期間内のトランザクションリクエストの数を増やすことによって、テスト対象のクライアントコンピュータの第２のアプリケーション上のクライアントコンピュータシステム従業員のストレスをシミュレートすることもでき、次いで、トランザクションリクエストの総数を実行することによって、第２のアプリケーションのサーバによる機能テストを行う。
【００４７】
ステップ２０８において、サーバは、通信ネットワークを介してクライアントコンピュータシステムへと第２の伝達を伝達する。第２の伝達は、エンタープライズリソースプランニングシステム内の第１のアプリケーションに対応するデータセットに基づいて、第２のアプリケーションの複数のソフトウェア動作のテストパフォーマンスを表示するための情報を含んでもよい。クライアントコンピュータシステムのユーザは、次いで、クライアントコンピュータシステムのグラフィカルユーザインターフェース（ＧＵＩ）上の第２のアプリケーションの複数のソフトウェア動作のテストパフォーマンス結果を視て、テスト結果に基づいて、第２のアプリケーションの後続の動作のために１つ以上のソフトウェア動作を変更し得る。クライアントコンピュータシステムのユーザはまた、第２のアプリケーションの複数のソフトウェア動作のテストパフォーマンス結果を以前のテスト実行の結果と比較し、そして比較結果に基づいて第２のアプリケーションの後続の動作のために１つ以上のソフトウェア動作を変更し得る。
【００４８】
図３は、例示的な実施形態による、ホストエンティティのダッシュボードを示すグラフィカルユーザインターフェース３００を示す。パネル３０２、３０４、３０６、および３０８の各々は、グラフィカルユーザインターフェース上の異なる位置に再配列することができ、またパネル３０２、３０４、３０６、および３０８は、必要に応じて追加または除去することができる。各パネルは、テストスクリプトを使用してクライアント会社のアプリケーションおよび／またはソフトウェア動作のテストを行うために、ユーザがテストスクリプトを生成するために選択できるエンタープライズシステムの態様についての情報を提示する。例えば、ユーザは、テストスクリプトの生成のための製品ライン３０２、環境３０４、および日付範囲３０６を選択する。製品ライン３０２、環境３０４、および日付範囲３０６を選択すると、ユーザは、次いで、「トークン取得」パネル３０８をクリックすることになる。トークン結果３１０は、図３に示されるように、「トークン取得」パネル３０８を選択すると、グラフィカルユーザインターフェース３００上でユーザに提示され得る。次いで、トークン結果３１０を使用して、選択された日付範囲内の選択された製品ラインのデータセットに対してトランザクション情報を含むテストスクリプトを生成する。例えば、トークン結果３１０は、選択した日付範囲において選択したデータセット内で従業員がアクセスしたベネフィットモジュール（ＢＮ）、人事モジュール（ＨＲ）、人員アクションモジュール（ＰＡ）、給与計算モジュール（ＰＲ）などのためのフォームのリストを含んでもよい。その後、テストスクリプトは、図４に示すグラフィカルユーザインターフェース４００上に表示されるように、ホストシステムの管理者によって、ダウンロードパネル４０２を使用して管理者ワークステーション上にダウンロードされる。次いで、ホストシステムの管理者は、テストスクリプトを使用してテストを行うためにテストサーバをトリガーし得る。その後、図５に示すように、テスト結果５０２が、グラフィカルユーザインターフェース５００上に表示される。
【００４９】
コミュニティ情報を利用するための例示的な方法は次のとおりである。クライアントコンピュータシステムは、クラウド環境など、ホストエンティティによってホストされているエンタープライズシステムにおいて、トランザクションおよび／またはソフトウェア動作（例えば、アクション）を行う。ホストエンティティは、クライアントコンピュータシステムのアクションおよび他のクライアント会社のアクションのために、データベース内のトランザクションおよび／またはソフトウェア動作についてのフィールドレベルデータおよびメタデータ（例えば、応答時間、遅延、処理時間、使用状況）を含むデータセットを格納する。ホストエンティティは、格納されたデータセットを使用して、テストスクリプトを自動的に生成し、またテストスクリプトを使用してクライアント会社のソフトウェア動作をテストする。次いで、テストの結果は、クライアントコンピュータシステムのソフトウェア動作のパフォーマンスに関してクライアントコンピュータシステムに提示される。ホストエンティティは、特定のデータセットに基づいてクライアントコンピュータシステムソフトウェア動作のパフォーマンスを示すウェブページをクライアントコンピュータシステムに提示し得る。
【００５０】
いくつかの実施形態では、システムおよびユーザの効率の比較分析を提供するためにトランザクションデータセットが使用されてもよい。さらに、コミュニティのシステム自体についてのデータセット（例えば、バージョン、パッチ）を集めることによって、異なるバージョンにわたってシステムおよびユーザパフォーマンスに対して追加の比較分析を提供することができる。さらに、システムの変更およびシステムイベント（すなわち、モニタ）についての追加のデータセットを追加することによって、追加の比較分析を提供することができる。ホストエンティティが、クライアント会社をコミュニティ内の他のものと比較するためにデータセットを使用することができる方法の例としては、以下に対する能力、すなわち：（１）システム／トランザクション／機能ごとのパターン／比較のためにオンライントランザクション使用状況を分析する、（２）システム／トランザクション／機能ごとのパターン／比較のためにバッチシステム使用状況を分析する、（３）システム／トランザクション／機能ごとのパターン／比較のためにシステムパフォーマンスメトリックを分析する、（４）システム／トランザクション／機能ごとのパターン／比較のためにシステムレベル（バージョン／アップグレード／サイクリカル／パッチ）を分析する、（５）アドホッククエリの使用状況／効率（およびシステム全体のパフォーマンスへの影響）を分析する、（６）システム／トランザクション／機能ごとのパターン／比較のためにユーザログインを分析する、（７）システム／トランザクション／機能ごとのパターン／比較のためにユーザセッションの継続時間／習慣を分析する、（８）システム／トランザクション／機能ごとのパターン／比較のためにユーザ効率を分析する、（９）異例のユーザの挙動（すなわち、午前２時３０分に自宅からのユーザログイン）を特定する、および（１０）異例のトランザクションおよび／またはソフトウェア動作の挙動（すなわち、スケジュールされたチェックの実行前に買掛金ベンダーの条件を更新し、チェックの実行後に変更を戻すデーモンプロセス）を特定する、が含まれるが、これらに限定されない。
【００５１】
比較パフォーマンス情報を提示するタイプの非限定的な例は、以下の図６〜１２でさらに説明される。図６を参照すると、グラフィカルユーザインターフェース６００は、例示的な実施形態によるダッシュボードを示している。パネル６０２の各々は、グラフィカルユーザインターフェース上の異なる位置に再配列することができ、パネル６０２は、必要に応じて追加または除去することができる。左上隅のボタンをアクティブにすることによって、ユーザは追加のオプションまたはパネルを曝露することができる。各パネルは、エンタープライズシステムの態様についての情報をクライアント会社に提示することができる。例えば、１つのパネルには「トランザクション」というタイトルが付けられ、コミュニティ情報を含む。トランザクションパネル６０４は、過去３日間で最も遅い実行トランザクションおよび／またはソフトウェア動作を示し、これは、最も注意が必要とされるトランザクションおよび／またはソフトウェア動作である可能性がある。いくつかのエンタープライズシステムは、一度に数千のアプリケーションを実行している場合があり、そのため、どのタイプのトランザクションおよび／またはソフトウェア動作が、完了するのに最も多くの時間がかかるかを確かめることは有用である。
【００５２】
図７を参照すると、使用状況のヒートマップを示すグラフィカルユーザインターフェース７００が、エンタープライズシステムに対して示されている。このヒートマップは、ダッシュボード上のパネル内の「トランザクション分析」のためのリンクをクリックすることによって生成され得る。ヒートマップは、トランザクションおよび／またはソフトウェア動作の計数と応答時間とによって使用状況を示す。左軸７０２は時刻を表し、上軸７０４は月の時間を表し、右軸は総時間を表し、下軸は総日数を表す。ヒートマップ上の数字は、トランザクションおよび／またはソフトウェア動作の数を表す。この例示的な実施形態では、フィルタはＨＲであるがＨＲ１１．１ではなく、Ｉｎｆｏｒ  Ｌａｗｓｏｎ（登録商標）人事アプリケーションを参照している。例示的な実施形態は、ＯｒａｃｌｅまたはＩｎｆｏｒ  Ｌａｗｓｏｎのエンタープライズシステムの使用を挙げる場合があるが、任意のエンタープライズシステムが本明細書に記載の方法およびシステムとともに使用されてもよいことが意図されている。この例示的ヒートマップに示すように、月の１６日目、１７日目、および３０日目が最も忙しく、これらの日はたまたま給与計算時と一致している。クライアント会社にとって、これらの期間中に他の同様のビジネスがどのように行っているか、例えば、トランザクションやソフトウェア動作の数が分散しているか、月の異なる部分に移動しているかなどを確かめることは有用である場合がある。
【００５３】
図８を参照すると、例示的な実施形態による、コミュニティ情報を比較するためのグラフィカルユーザインターフェース８００が示されている。このグラフィカルユーザインターフェースは、図６に示されるように、「トランザクション」パネルを選択するとユーザに提示され得る。第１の行８０２に示すように、ＡＰ２３０という名前は特定のアプリケーションを指す。「コミュニティサイズ」の下にリストされている各行には、対応するボリュームとともに、バージョン番号およびパッチレベルが含まれる。場合によっては、クライアント会社内の異なる部門が、同じアプリケーションの異なるバージョンまたはパッチレベルを使用している場合がある。この例では、クライアント会社は、同じバージョンを使用する他社より２４．２９倍遅い速度でアプリケーションを実行していることを観察することができる。別の例では、ＧＬ２９１に対して、コミュニティ内で実行されている５つの異なるバージョンがあり、バージョン１７４はバージョン１５３より高速である。このクライアント会社は、４．０３秒の平均応答時間でアプリケーションを実行しており、これは、アプリケーションの最も遅いバージョンよりも遅い。そのため、クライアント会社は、このバージョンでは非効率である場合があり、異なるバージョンへのアップグレードを考慮してもよい。このコミュニティ比較は、クライアント会社が効率と遅延とを評価することを可能にするデータを提供することができる。
【００５４】
図９を参照すると、例示的な実施形態による、経時的なパフォーマンスを表示するためのグラフィカルユーザインターフェース９００が示されている。このチャートは、経時的なトランザクションおよび／またはソフトウェア動作、ドリル、クエリの応答時間を示す。修正または変更がシステムになされた場合、このチャートは、どのように修正または変更がパフォーマンスに影響したかを示すことができる。フィルタ（例えば、特定のアプリケーションに限定する）を使用して、実行中のジョブを確かめることができる。「ドリル」は、トランザクションおよび／またはソフトウェア動作についての詳細情報を確かめるために、ユーザがデータ内にドリルダウンするアプリケーションの機能を表すことができる。「クエリ」は、ユーザによるいくつかのクエリを表すことができ、その一部はシステムを圧倒する不適切なクエリを作成する場合がある。この例では、ポイント「Ａ」は、クライアント会社がローソンビジネスインテリジェンス（ＬＢＩ）をリサイクルすることをリクエストした時間を表す。ポイントＡは、パフォーマンスへの影響を確かめるためにチャート上に示されている。
【００５５】
図１０を参照すると、例示的な実施形態による、オープンリクエストを表示するグラフィカルユーザインターフェース１０００が示されている。図３に示されるように、「インシデント＆リクエスト」のパネルを選択することによって、ユーザは、オープンインシデント、オープンリクエスト、過去３０日以内にクローズされたインシデントおよびリクエストのリストを見ることができる。
【００５６】
図１１を参照すると、例示的な実施形態による、故障停止を表示するためのグラフィカルユーザインターフェース１１００が示されている。この例示的な実施形態では、故障停止の持続期間とともに、システムのインストール以降の故障停止の数が示されている。いくつかの実施形態では、故障停止の原因に関する説明がある場合もある。
【００５７】
図１２を参照すると、例示的な実施形態による、クライアント会社に対する１つ以上の製品ラインを表示するグラフィカルユーザインターフェース１２００が示されている。グラフィカルユーザインターフェースは、開発、テスト、生産、またはトレーニングに関する情報を表示する場合がある。このグラフィカルユーザインターフェースは、ホストエンティティによってホストされているシステムの状態についての情報をクライアント会社に与えることができる。
【００５８】
本明細書で説明する機能は、１つまたは複数の機能を行うことができる多数のモジュールまたは構成要素によって実装することができる。各モジュールまたは構成要素は、サーバなどの、非一時的なコンピュータ可読媒体およびプロセッサを有するコンピュータによって実行することができる。一代替形態では、１つのモジュールまたは構成要素の機能を実装するために複数のコンピュータが必要になる場合がある。
【００５９】
以下の議論から明らかなように特に別段の明記がない限り、説明全体を通して、「処理」または「演算（ｃｏｍｐｕｔｉｎｇ）」または「計算（ｃａｌｃｕｌａｔｉｎｇ）」または「決定」あるいは「測定」または「選択」または「表示」または「識別」あるいは「検出」などのような用語を使用する議論は、システムのレジスタおよびメモリ内で物理（電子的）量として表されるデータを、システムのメモリまたはレジスタあるいは他のそのような情報格納、送信、または表示デバイス内の物理量として同様に表される他のデータへと操作および変換するデータ処理システム、または類似の電子デバイスのアクションおよびプロセスを指すことができることが理解される。
【００６０】
例示的な実施形態は、本明細書で説明される機能のうちの１つ以上を実施するための装置に関係付けることができる。この装置は、要求される目的のために特別に構築されてもよく、またはコンピュータに格納されたコンピュータプログラムによって選択的にアクティブ化または再構成される汎用コンピュータを含んでもよい。そのようなコンピュータプログラムは、限定はされないが、フロッピーディスク、光ディスク、ＣＤ−ＲＯＭおよび磁気光学ディスクを含む任意のタイプのディスク、読み取り専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、消去可能プログラマブルＲＯＭ（ＥＰＲＯＭ）、電気的消去可能プログラマブルＲＯＭ（ＥＥＰＲＯＭ）、磁気または光カード、または電子的命令を格納するために好適であり、かつそれぞれがバスに接続されている任意のタイプのメディアなどの、機械（例えば、コンピュータ）可読記憶媒体内に格納されてもよい。
【００６１】
本明細書で説明される例示的な実施形態は、少なくとも１つのサーバ上で実行されるソフトウェアとして説明されるが、実施形態は他のやり方で構成することができ、かつ機能を保持できることが理解される。実施形態は、パーソナルコンピュータ、専用コンピュータ、携帯電話、携帯情報端末（「ＰＤＡ」）、デジタルカメラ、デジタルタブレット、電子ゲームシステム、プログラムされたマイクロプロセッサまたはマイクロコントローラおよび周辺集積回路要素、およびＡＳＩＣまたはその他の集積回路、デジタルシグナルプロセッサ、ディスクリート素子回路などのハードワイヤード電子またはロジック回路、ＰＬＤ、ＰＬＡ、ＦＰＧＡ、ＰＡＬなどのようなプログラマブルロジックデバイスなどの既知のデバイス上に実装することができる。一般に、本明細書に記載のプロセスを実装できる任意のデバイスを使用して、本発明によるシステムおよび技術を実装することができる。
【００６２】
本技術の様々な構成要素は、分散ネットワークおよび／もしくはインターネットの遠い部分に、または専用の安全な、安全でない、および／もしくは暗号化されたシステム内に位置付けることができることを理解されたい。このため、システムの構成要素を１つ以上のデバイスへと結合する、または電気通信ネットワークなどの分散ネットワークの特定のノード上に共同配置することができることが理解されるべきである。説明から理解されるように、および演算効率の理由から、システムの動作に影響を与えることなく、システムの構成要素を分散ネットワーク内の任意の場所に配列することができる。さらに、構成要素を専用の機械内に埋め込むことができる。
【００６３】
さらに、要素を接続する様々なリンクは、有線もしくは無線リンク、またはそれらの任意の組み合わせ、あるいは接続された要素との間でデータを供給および／または通信することができる任意の他の既知のもしくは今後開発される要素であってもよいことを理解するべきである。本明細書で使用されるモジュールという用語は、その要素に関連付けられた機能を行うことができる任意の既知の、または今後開発されるハードウェア、ソフトウェア、ファームウェア、またはそれらの組み合わせを指すことができる。本明細書で使用される場合、決定する、演算する（ｃａｌｃｕｌａｔｅ）、および計算する（ｃｏｍｐｕｔｅ）という用語、ならびにそれらの変形は、交換可能に使用され、任意のタイプの方法論、プロセス、数学的動作または技法を含む。
【００６４】
上述の実施形態は、例示的なものであることが意図されている。当業者は、本明細書に記載の特定の例に対して置換されてもよく、または特定の例の中に含まれてもよい多数の代替構成要素および実施形態があり、またそのような追加または置換は依然として本発明の範囲に含まれることを認識する。
【図１】
2020515985.tif 000003
【図２】
2020515985.tif 000004
【図３】
2020515985.tif 000005
【図４】
2020515985.tif 000006
【図５】
2020515985.tif 000007
【図６】
2020515985.tif 000008
【図７】
2020515985.tif 000009
【図８】
2020515985.tif 000010
【図９】
2020515985.tif 000011
【図１０】
2020515985.tif 000012
【図１１】
2020515985.tif 000013
【図１２】
2020515985.tif 000014
【国際調査報告】
2020515985.tif 000015