(57)【要約】【課題】アプリケーションの実際の挙動をテスト実行状態から分離して検証する手段の提供。【解決手段】例示する種々の実施形態は、テスト実行から検証を分離することに関連するものである。一部の実施形態は、テスト対象アプリケーションのテスト実行中にデータ点を取り込むデータ取込みエンジンを含む場合がある。データ点は、例えば、アプリケーションデータ、テストデータ、及び環境データを含み得る。その他に、一部の実施形態は、特定のテスト実行状態の間に発生した一連のイベントに基づいて、データ点の各々をテスト対象アプリケーションの特定のテスト実行状態と相関付けるデータ相関付けエンジンを含む場合がある。さらに、一部の実施形態は、データ点の相関性に基づいて、テスト対象アプリケーションの実際の挙動を特定のテスト実行状態から分離して検証するテスト検証エンジンをさらに含む場合がある。【選択図】図２
2017539031.tif 000002
【特許請求の範囲】
【請求項１】
テスト実行からテスト検証を分離するためのシステムであって、
テスト対象アプリケーションのテスト実行中にデータ点を取り込むデータ取込みエンジンであって、前記データ点が、アプリケーションデータ、テストデータ、及び環境データを含む、データ取込みエンジンと、
前記データ点の各々を前記テスト対象アプリケーションの特定のテスト実行状態と相関付けるデータ相関付けエンジンであって、前記データ点の各々が、前記特定のテスト実行状態の間に発生した一連のイベントに基づいて相関付けられる、データ相関付けエンジンと、
前記データ点の相関性に基づいて、前記テスト対象アプリケーションの実際の挙動を前記特定のテスト実行状態から分離して検証するテスト検証エンジンと
を含むシステム。
【請求項２】
前記アプリケーションデータは、前記テスト対象アプリケーションの様々なレベルに関連するデータを含み、前記レベルは、ユーザインタフェースレベル、コードレベル、ネットワーク通信レベル、及びデータベースレベルのうちの少なくとも１つを含み、
前記テストデータは、前記特定のテスト実行状態に関連するデータを含み、前記テストデータは、前記テスト対象アプリケーション、前記特定のテスト実行状態、及び、前記特定のテスト実行状態の間に実施されたテスト動作に関連するメタデータを含み、
前記環境データは、前記テスト対象アプリケーションの環境に関連するデータを含み、前記環境データは、前記テスト対象アプリケーションを実行するハードウェア、及びプログラムに関連するメタデータを含む、請求項１に記載のシステム。
【請求項３】
前記データ相関付けエンジンは、
テスト実行の種々のテストステップをデータ構造のバックボーンとして割り当て、
割り当てられたテストステップのうちの第１のテストステップから、有向エッジにより前記データ点を接続し、前記データ点が、特定のデータ点に関連するタイムスタンプと前記第１のテストステップに関連するタイムスタンプとの間の時間の長さに基づいて接続され、
前記アプリケーションデータ、前記テストデータ、及び前記環境データを、前記バックボーンに接続された頂点として割り当て、
前記頂点間の関係のタイプを識別するためのタグを前記有向エッジに割り当てること
によって、前記データ点の各々を相関付ける、請求項２に記載のシステム。
【請求項４】
前記テスト検証エンジンは、前記特定のテスト実行状態の後に受信した検証入力に基づいて、前記実際の挙動を検証する、請求項１に記載のシステム。
【請求項５】
前記データ相関付けエンジンは、有効非巡回グラフを生成することによって前記データ点の各々を相関付け、前記有効非巡回グラフは、前記データ点に関連するタイムスタンプに基づいて生成され、
前記テスト検証エンジンは、前記検証入力を有向非巡回グラフ検証クエリーに変換し、前記有向非巡回グラフ検証クエリーは、ドメイン固有言語を使用して変換され、
前記テスト検証エンジンは、前記有向非巡回グラフ検証クエリーを使用して、前記有向非巡回グラフを照会する、請求項４に記載のシステム。
【請求項６】
前記特定のテスト実行状態は、第１の特定のテスト実行状態であり、
前記有向非巡回グラフ検証クエリーは、第２の特定のテスト実行状態よりも前に記憶装置に記憶され、
前記第２の特定のテスト実行状態により、前記クエリーの結果が変化する場合、警告が生成される、請求項５に記載のシステム。
【請求項７】
検証が記憶された検証レポジトリをさらに含み、
前記テスト検証エンジンは、特定の時点で前記検証を自動的に実行することにより、前記テスト対象アプリケーションの前記実際の挙動を検証する、請求項１に記載のシステム。
【請求項８】
前記テスト検証エンジンは、前記検証の実行に関する報告を自動的に行い、
前記特定の時点が、スケジュールに基づいている、請求項７に記載のシステム。
【請求項９】
前記特定のテスト実行状態に対応するテスト実行に際し、前記記憶された検証の各々は、前記テスト実行よりも前、または前記テスト実行よりも後の何れかにおいて定義される、請求項７に記載のシステム。
【請求項１０】
コンピュータで実施される方法であって、
プロセッサにより、テスト対象アプリケーションのテスト実行中にデータ点を取り込み、前記データ点が、前記テスト実行、前記テスト対象アプリケーション、及び前記テスト対象アプリケーションの環境に関連するメタデータを含み、
前記プロセッサにより、コードの第１の部分から、前記データ点の各々を複数のタイプのうちの少なくとも１つに分類するための第１の要求を受信し、
前記第１の要求の受信に応答し、前記プロセッサにより、前記データ点の各々を複数のタイプのうちの少なくとも１つに分類し、
前記プロセッサにより、コードの第２の部分から、前記取り込まれたデータ点の各々を前記テスト対象アプリケーションの前記テスト実行と相関付けるための第２の要求を受信し、
前記第２の要求の受信に応答し、前記プロセッサにより、前記取り込まれたデータ点の各々を前記テスト対象アプリケーションの前記テスト実行と相関付けることを含み、
前記取り込まれたデータ点の各々を相関付けることは、
前記プロセッサにより、バックボーンを含むデータ構造を生成し、前記バックボーンが、前記複数のタイプのうちの第１のタイプとして分類されたデータ点を含み、
前記プロセッサにより、残りのデータ点に関連するタイムスタンプに基づいて、前記残りのデータ点を有向エッジにより接続し、前記残りのデータ点が、前記第１のタイプとして分類されなかったデータ点であり、
頂点間の関係のタイプを識別するためのタグを前記有向エッジに割り当てること
を含む、コンピュータで実施される方法。
【請求項１１】
前記プロセッサにより、コードの第３の部分から、前記テスト対象アプリケーションの実際の挙動を検証するための第３の要求を受信し、前記第３の要求が、前記テスト実行を実施するテスト構成要素とは異なる検証構成要素から受信され、
前記第３の要求の受信に応答し、検証レポジトリに対してクエリーを行い、前記クエリーに対応する前記相関付けられた取り込まれたデータ点の少なくとも一部を取得すること
を含む、請求項１０に記載のコンピュータで実施される方法。
【請求項１２】
前記クエリーに対応する前記相関付けられた取り込まれたデータ点の少なくとも一部を受信し、
前記クエリーに対応する前記相関付けられた取り込まれたデータ点の少なくとも一部の表示を表示装置上に生成すること
を含む、請求項１１に記載のコンピュータで実施される方法。
【請求項１３】
前記取り込まれたデータ点の各々を相関付けることは、有向非巡回グラフを生成することを含む、請求項１１に記載のコンピュータで実施される方法。
【請求項１４】
命令を含む非一時的コンピュータ読み取り可能な記憶媒体であって、前記命令が、プロセッサによって実行されたときに、前記プロセッサに、
記憶装置に記憶されたデータ構造を管理させ、前記データ構造が、
テスト対象アプリケーションの第１のテスト実行に関するテストステップを含むバックボーンであって、前記バックボーンの各テストステップが、有向エッジにより、前記テスト実行の間に取り込まれたデータ点に接続され、前記バックボーンの各テストステップが、前記データ点に関連する一連のイベントに基づいて接続されている、バックボーンと、
前記バックボーンに接続された頂点であって、前記頂点が、前記テスト実行に関連するメタデータによりモデル化されている、頂点と、
前記有向エッジに関連するタグであって、前記タグが、前記頂点間の関係のタイプを識別する、タグと
を含み、
前記データ構造を第２のテスト実行に基づいて更新させる、非一時的コンピュータ読み取り可能な記憶媒体。
【請求項１５】
前記データ構造の管理は、
前記データ構造をアクセスするためのクエリーを受信し、
前記クエリーに対応する前記データ構造からの情報を送信すること
を含み、前記クエリーは、前記テスト対象アプリケーションの実際の挙動を検証するための検証情報を含む、請求項９に記載の非一時的コンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
背景
アプリケーションテストは、テスト対象アプリケーション（「ＡＵＴ」： Application Under Test）に関する情報を得るために実施されることがある。例えば、アプリケーションテストは、ＡＵＴが何らかのエラーその他の欠陥を含むか否かを判断するために実施されることがある。アプリケーションテストには、様々な技術を使用可能であるが、基本的アプリケーションテスト手順は、２つの主要なタイプのテストステップを含み得る。すなわち、（１）テスト対象アプリケーション（「ＡＵＴ」）を操作し、駆動し、または照会する動作ステップ、及び（２）動作ステップに関連する期待される結果を検証する検証ステップである。
【図面の簡単な説明】
【０００２】
下記の詳細な説明では、次の図面が参照される。
【０００３】
【図１】開示実施形態に合致する、テスト実行からテスト検証を分離するための一例によるシステムを示すブロック図である。
【図２】開示実施形態に合致する、一例による検証装置を示すブロック図である。
【図３】開示実施形態に合致する、一例による検証装置を示すブロック図である。
【図４】開示実施形態に合致する、データ点を相関付けるための一例によるプロセスを示すフロー図である。
【図５】開示実施形態に合致する、有向非巡回グラフの一例を示すブロック図である。
【図６】開示実施形態に合致する、検証入力の有向非巡回グラフ検証クエリーへの変換の一例を示す図である。
【図７】開示実施形態に合致する、テスト実行からテスト検証を分離するための一例によるプロセスを示すフロー図である。
【図８】開示実施形態に合致する、一例による機械読み取り可能な記憶媒体を示すブロック図である。
【発明を実施するための形態】
【０００４】
詳細な説明
下記の詳細な説明では、添付の図面が参照される。図面、及び下記の説明では、同じ部品または類似の部品を指し示すために、出来る限り、同じ参照符号が使用される。本文書では、複数の例が説明されるが、種々の修正、変更、及び他の実施形態が可能である。したがって、下記の詳細な説明は、開示例を制限しない。むしろ、開示例の適切な範囲は、添付の特許請求の範囲により規定されることがある。
【０００５】
上記のように、基本的アプリケーションテスト手順は、２つの主要なタイプのテストステップを含み得る。すなわち、（１）テスト対象アプリケーション（ＡＵＴ）を操作し、駆動し、または照会する動作ステップまたはテストステップ、及び（２）動作ステップに関連する期待される結果を検証する検証ステップである。従来、この基本的アプリケーションテスト手順によれば、動作と検証との間に依存関係が生じることがある。例えば、検証は、ＡＵＴのテストの実行中に実施されなければならないことがある。この依存関係は、様々な欠点をもたらすことがあり、欠点としては、例えば、検証が変化した場合（たとえ動作が変化していなくても）ＡＵＴのテスト実行をやり直す必要性、動作の対象物を検証するだけの傾向（例えば、動作がボタンをクリックすることである場合、ユーザは、ボタンがクリックされたことを検証することになる）、動作ステップの結果をＡＵＴの他のレベルのイベント（例えば、サーバログ、データベースログ、アプリケーションログなど）に相関付けることの困難性、並びに、動作の変化、及び/又は検証の変化に基づく様々な管理上の課題が挙げられる。例えば、ＡＵＴがバンキングアプリケーションであり、テスト事例が、第１の口座（「口座Ａ」）から第２の口座（「口座Ｂ」）へ資金が移動されたか否かを判断することである事例を考えて欲しい。テスト実施者は、テスト事例を実行することにより、資金移動を実施し、移動された額が口座Ｂに実際に加算されたか否かを検証する場合がある。テスト完了後、テスト実施者は、別の検証（すなわち、移動された額が口座Ａから取り除かれたことの検証）が必要であると判断した。しかしながら、この新たな検証を実施するためには、テスト実施者は、たとえ動作ステップが依然と同じステップであっても、動作ステップの各々をやり直さなければならない。このように、一部の従来のテストの方法では、動作ステップが検証ステップと密接に結び付けられているため、テスト実行を検証から分離することができない。
【０００６】
本明細書に開示される種々の例は、テスト実行からテスト検証を分離することにより、従来のアプリケーションテストを増強し、または置き換えることができる。この目的のために、一部の例は、ＡＵＴのテスト実行からデータ点を監視し、取り込むとともに、それらのデータ点のクエリーを定義し、永続化（persist）し、実行する場合がある。クエリーは、期待されるアプリケーション挙動を定義する新たな手段とみなされる場合があり、従来のスクリプトにおける検証ステップのような役割を果たすことができる。例えば、開示実施形態に合致する種々の例は、ＡＵＴのテスト実行中にデータ点を取り込み、データ点の各々をＡＵＴの特定のテスト実行状態（例えば、特定の時点におけるシステムの状態）と相関付け、データ点の相関性に基づいて、ＡＵＴの実際の挙動を特定のテスト実行状態から分離して検証することができる。本明細書において、特定のテスト実行状態は、の状態である場合がある。
【０００７】
次に図面を参照すると、図１は、テスト実行からテスト検証を分離するための一例によるシステム１００を示すブロック図である。システム１００は、開示例の範囲から外れることなく、多数の異なる構成で実施されることができる。図１に示した例では、システム１００は、検証装置１１０、クライアント装置１２０、検証レポジトリ１３０、並びに、検証装置１１０をクライアント装置１２０及び／又は検証レポジトリ１３０と接続するためのネットワーク１４０を含む場合がある。
【０００８】
検証装置１１０は、開示例に合致する種々の機能を実施する計算システムである場合がある。例えば、検証装置１１０は、サーバ、デスクトップ・コンピュータ、ラップトップ・コンピュータ、及び／又は、任意の他の適当なタイプの計算装置である場合がある。一部の例において、検証装置１１０は、クライアント装置１２０、及び／又は検証レポジトリ１３０から受信した情報を処理する場合がある。例えば、検証装置１１０は、クライアント装置１２０から取り込まれ、及び／又は検証レポジトリ１３０から受信されたデータに基づいて、ＡＵＴの実際の挙動を特定のテスト実行状態から分離して検証することができる。検証装置１１０の例、及び装置１１０により実施されることができる特定の機能については、例えば図２及び図３に関係して、後で詳細に説明される。
【０００９】
クライアント装置１２０は、ユーザによって操作される計算システムである場合がある。例えば、クライアント装置１２０は、デスクトップ・コンピュータ、ラップトップ・コンピュータ、タブレット型計算装置、携帯電話、サーバ、及び／又は、任意の他のタイプの計算装置である場合がある。一部の例において、クライアント１２０は、開示実施形態に合致する種々の処理を実施するための計算装置である場合がある。例えば、クライアント装置１２０は、例えばアプリケーションテスト中に実施される動作ステップに関連するデータのようなＡＵＴのテスト実行に関連するデータを検証装置１１０に送信するように構成される場合がある。
【００１０】
クライアント装置１２０は、機械読み取り可能な記憶媒体に記憶された種々の命令を実行するためのプロセッサを含む場合がある。図１に示した例において、クライアント装置１２０は、プロセッサ１２２、機械読み取り可能な記憶媒体１２４、表示装置１２６、及びインタフェース１２８を含む場合がある。クライアント装置１２０のプロセッサ１２２は、種々の処理を実施するための命令を実行するための少なくとも１つの処理ユニット（ＣＰＵ）、マイクロプロセッサ、及び／又は、他のハードウェアデバイスであってよい。例えば、プロセッサ１２２は、機械読み取り可能な記憶媒体１２４に記憶された命令（テスト実行アプリケーション命令１２７、及びＡＵＴ命令１２９など）をフェッチし、デコードし、実行することにより、ＡＵＴをテストする場合がある。図１に示した例では、ＡＵＴは、クライアント装置１２０上に置かれているが、テスト実行命令１２７、及び／又はＡＵＴ１２９は、異なる機械上に置かれてもよく、及び／又は、複数の計算装置若しくはシステムにわたって存在していてもよい。機械読み取り可能な記憶媒体１２４は、プロセッサ１２２によって実行される命令が記憶された任意の電気的、光学的、または他の非一時的（持続性）記憶装置であってよい。表示装置１２６は、ＡＵＴのユーザインタフェースのような情報を、クライアント装置１２０を操作しているユーザ（例えば、テスト実施者）に対して表示する任意のタイプの表示装置であってよい。インタフェース装置１２８は、クライアント装置１２０の内部構成要素と、ユーザ動作検証装置１１０のような外部構成要素との間のデータの交換を可能にするハードウェア、及び／又はプログラムの任意の組み合わせであってよい。一部の例において、インタフェース装置１２８は、クライアント装置１２０がネットワーク１４０を介して検証装置１１０のような種々の構成要素との間でデータの送受信を行うことを可能にするネットワークインタフェース装置を含む場合がある。
【００１１】
検証レポジトリ１３０は、データの記憶が可能な、任意のタイプの記憶システム構成であってよい。例えば、検証レポジトリ１３０によれば、ＡＵＴ（例えば、ＳａａＳ、ＳＱＬ、Ａｃｃｅｓｓなど、データベース）のテスト実行中に取り込まれたデータ点の探索、アクセス、及び読み出しが可能になる場合がある。検証レポジトリ１３０には、様々な方法でデータが入力されることがある。例えば、検証装置１１０は、一組の検証を受信し、生成し、及び／又はアクセスし、一組の検証を検証レポジトリ１３０に記憶することにより、検証レポジトリ１３０にデータを入力する場合がある。別の例として、検証装置１１０は、検証装置１１０によって取り込まれ、相関付けられたデータ点を検証レポジトリ１３０に入力する場合があり、相関付けられたデータ点を検証レポジトリ１３０に記憶する場合がある。一部の実施形態において、データ点は、有向非巡回グラフ（「ＤＡＧ」）として記憶される場合がある。従来、ＤＡＧは、頂点（例えば、グラフを形成する基本単位）の集合、及び有向エッジ（例えば、前記頂点の集合における第１の頂点から前記頂点の集合における第２の頂点を指し示すエッジ）によって形成された有向グラフである。本明細書において、ＤＡＧは、従来のＤＡＧに含まれるデータのグラフィック表現を必ずしも意味していない。むしろ、本明細書におけるＤＡＧは、システム１００が従来のＤＡＧ（例えば、データ点の分類、特定のデータ点に関連する有向エッジ、及び／又はデータ点に関連する頂点）で表されたデータを決定することが可能な形でデータ点を記憶するグラフィック表現、及び／又はデータ構造を含み得る。一部の例において、データ構造は、アレイ、レコード、データベース・エントリ、ルックアップテーブル、ハッシュテーブル、マップ、ツリー、連結リスト、及び／又は、任意の他のタイプのデータ構造である場合がある。開示実施形態に合致するＤＡＧの一例は、例えば図５に関連して、後でより詳細に説明される。
【００１２】
図１に示した例では、検証レポジトリ１３０は、構成要素１１０及び１２０の外部の単一構成要素であるが、検証レポジトリ１３０は、種々の独立した構成要素を含んでいてもよく、並びに／あるいは、装置１１０、１２０及び／又は他の装置の一部であってもよい。一部の実施形態において、検証レポジトリ１３０は、ネットワーク１４０を通して遠隔的にデータを取得し、作成し、制御し、及び／又は管理することが可能な装置１１０及び／又は他の装置の種々の構成要素によって管理される場合がある。
【００１３】
ネットワーク１４０は、検証装置１１０とクライアント装置１２０のような遠隔構成要素間における通信を可能にする任意のタイプのネットワークであってよい。例えば、ネットワーク１４０は、ローカル・エリア・ネットワーク（ＬＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、仮想私設ネットワーク、専用イントラネット、インターネット、及び／又は無線ネットワークである場合がある。
【００１４】
図１に示した配置は、単に一例であり、システム１００は、多数の異なる構成で実施されてよい。例えば、図１は、１つの検証装置１１０、クライアント装置１２０、検証レポジトリ１３０、及びネットワーク１４０を示しているが、システム１００は、任意数の構成要素１１０、１２０、１３０、及び１４０、並びに図１には示されていない他の構成要素を含み得る。例えば、システム１００は、構成要素１１０、１２０、１３０、及び１４０のうちの何れかを省略する場合があり、及び／又は、構成要素１１０、１２０、１３０、及び１４０のうちの少なくとも１つの機能は、他の構成要素（例えば、構成要素１１０、１２０、１３０、１４０、及び／又は、図１には示されていない構成要素）に組み込まれる場合がある。
【００１５】
図２は、開示実施形態に合致する、一例による検証装置２１０を示すブロック図である。特定態様において、検証装置２１０は、図１の検証装置１１０に対応する場合がある。検証装置２１０は、様々な形で実施されてよい。例えば、装置２１０は、特殊な目的のコンピュータ、サーバ、メインフレーム・コンピュータ、及び／又は任意の他のタイプの計算装置である場合がある。図２に示した例において、関連装置２１０は、プロセッサ２２０、及び機械読み取り可能な記憶媒体２３０を含む場合がある。
【００１６】
プロセッサ２２０は、種々の処理を実施するための命令を実行するための少なくとも１つの処理ユニット（ＣＰＵ）、マイクロプロセッサ、及び／又は、他のハードウェアデバイスであってよい。例えば、プロセッサ２２０は、機械読み取り可能な記憶媒体２３０に記憶されたの検証命令２４０（例えば、命令２４２、２４４、及び／又は２４６）をフェッチし、デコードし、実行することにより、開示例に合致する種々の処理を実施する場合がある。
【００１７】
機械読み取り可能な記憶媒体２３０は、実行可能命令が記憶された任意の電気的、磁気的、光学的、または他の物理的記憶装置であってよい。したがって、機械読み取り可能な記憶媒体２３０は、例えば、メモリ、ストレージ・ドライブ、及び光学ディスク等である場合がある。一部の実施形態において、機械読み取り可能な記憶媒体２３０は、非一時的（持続性）コンピュータ読み取り可能な記憶媒体である場合があり、ここで、「非一時的」という語は、一時的に伝搬する信号を包含しない。機械読み取り可能な記憶媒体２３０は、種々の命令を有するようにエンコードされる場合があり、これらの命令は、プロセッサ２３０によって実行されたときに、開示実施形態に合致する種々の処理を実施する。例えば、機械読み取り可能な記憶媒体２４０は、ＡＵＴのテスト実行中にデータ点を取り込み、データ点の各々をＡＵＴの特定のテスト実行状態と相関付け、データ点の相関性に基づいてＡＵＴの実際の挙動を検証することによって、テスト実行からテスト検証を分離する処理を実施する種々の命令を含む場合がある。図２に示した例において、機械読み取り可能な記憶媒体２３０は、データ取込み命令２４２、データ相関付け命令２４４、及びテスト検証命令２４６を含む場合がある。
【００１８】
データ取込み命令２４２は、ＡＵＴのテスト実行中にデータ点を取り込む機能を果たす場合がある。一部の実施形態において、データ取込み命令２４２がプロセッサ２２０によって実行されると、データ取込み命令２４２は、プロセッサ２２０、及び／又は他のプロセッサに、ＡＵＴのテスト実行中にデータ点を取り込ませる。データ点は、テスト実行、テスト実行中のＡＵＴ、及び、テスト実行中のＡＵＴの環境に関連する場合がある。例えば、データ取込み命令２４２は、プロセッサ２２０、及び／又は他のプロセッサに、テストを実行し、及び／又はテスト実行中にＡＵＴを実施している１以上の計算システムからデータ点をアクセス、受信、または取得させることができる。一部の例においては、特定の構成要素（複数可）がどのような働きをしているかを監視するとともに、データ点を検証装置１１０に関連する記憶装置のような記憶装置へ送信するエージェントを、様々な物理的または仮想的システム構成要素にインストールすることによって、データ点を取り込む場合がある。送信されたデータ点は、その後、検証装置１１０によって受信され、及び／又は取り込まれることができる。エージェントは、単純なもの（例えば、ＣＰＵ使用レベルが何であるかをオペレーティング・システムに単に尋ねることができる、中央演算処理装置（「ＣＰＵ」）を監視するエージェント）であってもよいし、複雑なもの（例えば、テスト手段と一体化され、ＡＵＴのテスト実行中に全てのテストステップを追跡するエージェント）であってもよい。代替的に（または、エージェントの使用と組み合わせて）、情報は、エージェントなしに監視されてもよい。例えば、監視サーバは、構成要素（複数可）のメモリ使用に関する情報を種々の構成要素（複数可）に質問する場合がある。
【００１９】
一部の実施形態において、取り込まれたデータ点は、ユーザインタフェースレベル（例えば、ＵＩスナップショット、ＵＩオブジェクト抽出など）、コードレベル（例えば、ＵＩの後ろで実行されるコード）、ネットワーク通信レベル（例えば、クライアント装置１２０と検証装置１１０の間のネットワーク通信）、及び、データベースレベル（例えば、テスト実行中にＡＵＴによりアクセスされたデータベース）といった様々なレベルのＡＵＴに関連するデータを含む場合がある。さらに、一部の例において、テストデータは、ＡＵＴ（例えば、ＡＵＴバージョン）、特定のテスト実行状態（例えば、テスト日時、テスト実施者名など）、及び、特定のテスト実行状態の間に実施されたテスト動作及び／又はステップに関連するメタデータのような、特定のテスト実行状態に関連するデータを含む場合がある。さらに、一部の例において、環境データは、ＡＵＴの環境に関連するデータを含む場合があり、環境データは、ＡＵＴのテストの実行（例えば、サーバログ）、及び／又はＡＵＴ自体の実行（例えば、アプリケーションサーバエラー）に関連する、ハードウェア（例えば、デバイスビルド、ＣＰＵ使用量、メモリ使用量、リソース使用量など）、及びプログラム（例えば、オペレーティングシステム、ブラウザなど）に関連するメタデータを含み得る。ＡＵＴのテスト実行中のデータ点の取込みの例については、図２〜図８に関連して、後でさらに詳しく説明される。
【００２０】
データ相関付け命令２４４は、データ点を相関付ける機能を果たす場合がある。例えば、データ相関付け命令２４４がプロセッサ２２０により実行されると、データ相関付け命令２４４は、プロセッサ２２０に、データ点の各々を、ＡＵＴの特定のテスト実行状態と相関付けさせる。一部の実施形態において、データ点は、特定のテスト実行状態の間に発生した一連のイベントに基づいて相関付けられる場合がある。例えば、データ相関付け命令２４４は、プロセッサ２２０に、ＤＡＧを生成させ、及び／又は、データのコンテキスト・クエリーが可能となる形でデータを記憶させる場合がある。一部の実施形態において、ＤＡＧ、及び／又は相関付けされたデータは、検証レポジトリ１３０のようなレポジトリに記憶される場合がある。データ点の相関付けの例については、例えば図４、図５及び図７に関連して、後でさらに詳しく説明される。
【００２１】
テスト検証命令２４６は、データ点の相関性に基づいて、ＡＵＴの実際の挙動を特定のテスト実行状態から分離して検証する機能を果たす場合がある。例えば、テスト検証命令２４６がプロセッサ２２０により実行されると、テスト検証命令２４６は、特定のテスト実行に際し、プロセッサ２２０に、特定のテスト実行よりも前、または特定のテスト実行よりも後の何れかにおいて受信した検証入力（例えば、自然言語クエリー）に基づいて、ＡＵＴの実際の挙動を検証させる場合がある。例えば、特定のテスト実行状態に対応するテスト実行に際し、検証データベース１３０は、テスト実行よりも前、またはテスト実行よりも後の何れかにおいて定義された、記憶された検証を含む場合がある。一部の実施形態において、検証入力は、ドメイン固有言語を使用して検証（例えば、有向非巡回グラフ検証クエリー）に変換され、及び／又は、検証レポジトリ１３０のような記憶システムに記憶される。ＡＵＴの実際の挙動を特定のテスト実行状態から分離して検証する例については、例えば図５及び図６に関連して、後で詳しく説明される。
【００２２】
図３は、開示実施形態に合致する、一例による検証装置３１０を示すブロック図である。一部の態様において、検証装置３１０は、図１の検証装置１１０、及び／又は、図２の検証装置２１０に対応する場合がある。装置３１０は、様々な形で実施されてよい。例えば、装置３１０は、特殊な目的のコンピュータ、サーバ、メインフレーム・コンピュータ、及び／又は任意の他の適当なタイプの計算装置である場合がある。図３に示した例では、装置３１０は、データ取込みエンジン３２０、データ相関付けエンジン３３０、及びデータ検証エンジン３４０を含む場合がある。
【００２３】
エンジン３２０、３３０、及び３４０は、開示例に合致する機能を実施するための電子回路である場合がある。例えば、エンジン３２０、３３０、及び３４０は、開示実施形態に合致する機能を実施するための種々のハードウェアデバイス、及びプログラムの組み合わせを表している場合がある。一部の例において、エンジン３２０、３３０、及び／又は３４０の機能は、分離命令２４０がプロセッサ２２０によって実行されたときに実施される処理（図２に関して上で説明したもの）のような、図２の検証装置２１０により実施される種々の処理に対応する場合がある。図３において、データ取込みエンジン３２０は、プロセッサ２２０がデータ取込み命令２４２を実行するときに実施されるものに類似した処理を実施するハードウェアとプログラムの組み合わせを表している場合がある。同様に、データ相関付けエンジン３３０は、プロセッサ２２０がデータ相関付け命令２４４を実行するときに実施されるものに類似した処理を実施するハードウェアとプログラムの組み合わせを表し、テスト検証エンジン３４０は、プロセッサ２２０がテスト検証命令２４６を実行するときに実施されるものに類似した処理を実施するハードウェアとプログラムの組み合わせを表している場合がある。
【００２４】
図４は、開示実施形態に合致する、データ点を相関付けるための一例によるプロセス４００を示すフロー図である。以下において、プロセス４００の実行は、図１のシステム１００、及び／又はシステム１００の具体的構成要素を参照して説明されるが、プロセス４００の少なくとも１つのステップの実行のために、他の適当なシステム及び装置が使用されてもよい。例えば、検証装置１１０によって実施される場合があるものとして以下で説明されるプロセスは、検証装置２１０、検証装置３１０、及び／又は任意の他の適当な装置によって実施されてもよい。プロセス４００は、機械読み取り可能な記憶媒体に記憶された実行可能命令の形で実施されてもよいし、及び／又は、電子回路の形で実施されてもよい。
【００２５】
プロセス４００は、ＡＵＴのテスト実行の際、データ点が取り込まれた後に開始される場合がある（ステップＳ４０５）。データ点が取り込まれた後、プロセス４００は、ＤＡＧを生成する機能を果たす場合がある。例えば、プロセス４００は、データ点を複数のタイプのうちの少なくとも１つに分類することを含む場合がある（ステップＳ４１０）。例えば、データ点は、テスト実行の種々のステップ、データタイプ（例えば、ＣＰＵ、メモリ、ＵＩオブジェクト、ユーザ動作、ネットワークパケットなど）、特定ユーザ（例えば、テストを開始したユーザの識別情報）、ＡＵＴビルド（データ点が取り込まれたときのＡＵＴの具体的ビルドバージョン）、及び／又は、任意の他の適当な分類に基づいて分類される場合がある。プロセス４００は、バックボーンを含むデータ構造を生成することをさらに含む場合がある。ここで、バックボーンは、複数のタイプのうちの第１のタイプとして分類されたデータ点を含む場合がある。例えば、システム１００は、第１のタイプのデータ点（例えば、テスト実行のテストステップ）をデータ構造のバックボーンとして割り当てる場合がある（ステップＳ４２０）。
【００２６】
プロセス４００は、残りのデータ点（例えば、第１のタイプとして分類されなかったデータ点）に関連するタイムスタンプに基づいて、残りのデータ点を有向エッジにより接続すること（ステップＳ４３０）を含む場合がある。例えば、データ点は、第１のタイプの第１のデータ点（例えば、テストステップのうちの第１のステップ）から、有向エッジにより接続される場合がある。一部の例において、データ点は、取り込まれたデータ点のうちの特定のデータ点に関連するタイムスタンプと、第１のテストステップに関連するタイムスタンプとの間の時間の長さに基づいて接続される場合がある。例えば、システム１００は、テストステップが何時実行されたかに基づいて、テストステップをバックボーンを成すように一列に整列させる場合がある。特定のテストステップに関連するイベントが追跡され、特定のテストステップに関連付けられる場合がある。例えば、システム１００は、ＵＩオブジェクトを追跡する場合がある。ＵＩスキャナーは、定期的に作動し、ＵＩ上の構造化オブジェクト、それらの属性、及びそれらの値を自動的に識別する場合がある。別の例において、システム１００は、スレッドイベントモニターを実施することにより、特定のテストステップに関連するシステムイベントを追跡する場合がある。スレッドイベントモニターは、オブジェクトの作成、オブジェクトの実行、及びオブジェクトの終了等のためのスレッドを監視し、スレッド識別子及びオブジェクト識別子に基づいて、オブジェクトの作成、実行、及び／又は終了を特定のテストイベントに関連付ける。
【００２７】
プロセス４００は、メタデータをバックボーンに接続された頂点として割り当てることをさらに含む場合がある（ステップＳ４４０）。例えば、システム１００は、バックボーンの要素を決定する場合があり、追跡したメタデータを各特定の要素（例えば、各テストステップ）に割り当てる場合がある。例えば、システム１００は、時間的関連性（例えば、特定のテストステップの後に発生したイベント）に基づいて、または、別の適当な方法論（例えば、サーバコードに対し、メタデータを追跡するためにネットワークパケットを着色すること等）に基づいて、メタデータを追跡する場合がある。さらに、プロセス４００は、頂点間の関係のタイプを識別するためのタグを有向エッジに割り当てる場合がある（ステップＳ４５０）。一部の実施形態において、システム１００は、物理的または仮想的システム構成要素にインストールされたエージェントから受信したデータに基づいて、有向エッジにタグを割り当てる場合がある。例えば、エージェントは、プロセッサにより実行されたときに、システムに発生したイベントをルールのリストと照合する命令を含む場合がある。イベントが特定のルールに適合しない場合、エージェントは、イベント間におけるタグ関連付けを記録する。例えば、ルールのリストが、テストステップがブラウザの使用を必要とする場合に有向エッジを「使用」としてタグ付けしなければならない使用タグ付けルールを含むものと仮定する。「ブラウザ」という名のオブジェクトを呼び出すテストステップが実行された場合、エージェントは、このオブジェクトの呼び出しをルールのリストと照合し、リスト上の前記使用タグ付けルールに基づいて、有向エッジを「使用」としてタグ付けする場合がある。
【００２８】
プロセス４００は、データ構造を記憶装置に記憶すること（ステップＳ４６０）をさらに含む場合がある。一部の実施形態において、構造化されたデータは、検証装置１１０における非一時的コンピュータ読み取り可能な記憶媒体、検証レポジトリ１３０、及び／又は他の装置のような記憶装置に記憶される場合がある。データ点が分類され（ステップＳ４１０）、データ構造のバックボーンが割り当てられ（ステップＳ４２０）、残りのデータ点が接続され（ステップＳ４３０）、メタデータが頂点として割り当てられ（ステップＳ４４０）、有向エッジにタグが割り当てられ（ステップＳ４５０）、及び、データ構造が記憶された後（ステップＳ４６０）、プロセス４００は終了する場合がある（ステップＳ４７５）。
【００２９】
図５は、開示実施形態に合致するＤＡＧ５００のブロック図の一例である。例えば、ＤＡＧ５００は、特定のテスト実行状態の間に発生した一連のイベントに基づいて相関付けられた、ＡＵＴのテスト実行中に取り込まれたデータ点を表している場合がある。この例におけるＤＡＧ５００は、図１のシステム１００、及び／又はシステム１００の種々の具体的構成要素によって管理され、更新され、及び／又は使用されるものとして以下で説明されるが、ＤＡＧ５００を管理し、更新し、及び／又は使用するために、他の適当なシステム、及び装置が使用されてもよい。例えば、検証装置１１０によって実施されるものとして以下で説明されるプロセスは、検証装置２１０、検証装置３１０、及び／又は任意の他の適当な装置によって実施されてもよい。ＤＡＧ５００に関連して実施される種々のプロセスは、機械読み取り可能な記憶媒体に記憶された実行可能命令の形で実施されてもよいし、及び／又は、電子回路により実施されてもよい。
【００３０】
図５に示されるように、ＤＡＧ５００は、ＡＵＴの１以上の特定のテスト実行に関連するデータを含む場合がある。図５に示した例では、このデータは、アプリケーションデータ５０２ａ（例えば、ビルド番号）、テストデータ（例えば、テストの日付）５０２ｂ、及び環境データ５０２ｃ（例えば、オペレーティングシステム、及びブラウザタイプ）に関連するデータ点を含む。ＤＡＧ５００は、ＤＡＧにおける頂点の各々についてのアンカーとしての働きをするバックボーン（テストステップ５１０ａ、５２０ａ、５３０ａ、５４０ａ、及び５５０ａの集合）をさらに含む。この例では、バックボーンは、ＡＵＴのテスト実行中に実施された種々のテストステップからなるが、開示実施形態に合致するＤＡＧは、任意の適当な分類のデータ点をバックボーンとして使用することができる。例えば、バックボーンは、ユーザ動作、記録されたＡＵＴウェブページ、ＵＩオブジェクト、及び／又は任意の他の適当な分類にしたがって構成される場合がある。
【００３１】
ＤＡＧ５００のバックボーンは、特定のテスト実行状態の間に発生した一連のイベントに基づいて相関付けられ、したがって、バックボーンは、テストステップ５１０ａ、５２０ａ、５３０ａ、５４０ａ、及び５５０ａのうちの様々なものを１つに連結する。図５に示した例では、テストステップ５１０ａは、テストステップ５２０ａよりも前に発生し、テストステップ５２０ａは、テストステップ５３０ａよりも発生し、テストステップ５３０ａは、テストステップ５４０ａよりも前に発生し、テストステップ５４０ａは、テストステップ５５０ａよりも前に発生した。この例におけるバックボーンの各部分（例えば、各テストステップ）は、テストステップのうちの最初のテストステップ５１０ａからテストステップのうちの最後のテストステップ５５０ａまで種々の有向エッジ（明確化のために有向エッジ６６０にのみラベルが付されている）によって接続され、有向エッジ（明確化のために有向エッジ５６０ａにのみラベルが付されている）には、頂点間の関係のタイプを識別するタグ（明確化のためにタグ５７０ａにのみラベルが付されている）が付されている。例えば、テストステップ５１０ａは、種々の有向エッジによりテストステップ５２０ａ、５３０ａ、及び５４０ａに直接連結され、連結の理由、及び／又は作用が、タグに示されている。例えば、テストステップ５１０ａは、テストステップ５２０ａ、５３０ａ、及び５４０ａから構成され、テストステップ５２０は、テストステップ５３０ａに先行し、テストステップ５３０ａは、テストステップ５４０ａに先行し、テストステップ５４０ａは、テストステップ５５０ａに先行している。
【００３２】
さらに、ＤＡＧ５００における各テストステップは、テスト、及び／又はアプリケーション環境から取り込まれ、特定のテストステップに相関付けられた追加情報をさらに有している。この追加情報は、バックボーンに接続された種々の頂点（明確化のために頂点５２０ｂ、５２０ｃ、５２０ｄ、５２０ｅ、及び５２０ｆのみにラベルが付されている）として割り当てられた。例えば、テストステップ５２０ａは、ブラウザを開くことに関連する。この事例では、ブラウザを開くステップは、ブラウザ（オブジェクト）を使用することを含み、ブラウザは、特定の動作（この事例では、開く）により使用された。したがって、特定のテスト実行状態の間に、ブラウザは、ブラウザの開始関数を呼び出すことによって自動的に開始された。ＤＡＧ５００において、この情報は、ＡＵＴ、及び環境の観点から種々のテストステップとその後に続くものを連結することによってのみならず、それらのステップの概念的意味を実質的に示すタグによっても、モデル化される。
【００３３】
図６は、開示実施形態に合致する、検証入力６１０の有向非巡回グラフ検証クエリー６２０への変換の一例である。この例による変換は、図１のシステム１００、及び／又は、システム１００の種々の具体的構成要素によって実施されるものとして以下で説明されるが、検証入力の変換には、他の適当なシステム及び装置が使用されてもよい。例えば、検証装置１１０によって実施されるものとして以下で説明されるプロセスは、検証装置２１０、検証装置３１０、及び／又は任意の他の適当な装置によって実施されてもよい。検証入力６１０の変換に関連して実施される種々のプロセスは、機械読み取り可能な記憶媒体に記憶された実行可能命令の形で実施されてもよいし、及び／又は、電子回路により実施されてもよい。
【００３４】
検証装置１１０は、ユーザに対して表示されるユーザインタフェースを表示装置上に生成する場合がある。ユーザは、検証装置１１０がどのように問い合わせを受けるかを定義する検証入力を入力することができる。例えば、検証入力は、一連の条件文、質問、または任意の他の適当な入力である場合がある。図６に示した例では、検証入力６１０は、単一または複数のＡＵＴの複数回のテスト実行からデータ点を決定することに関連しており、データ点は、ブラウザの開始、"search.com"への移動、ＨＰのタイプイン、searchのクリック、及びその後、サーチ結果リスト中に"HP.com"を得ることからなる種々のテストステップに対応している。さらに、検証入力（例えば、検証入力６１０）は、ドメイン固有言語（例えば、検証装置１１０に特化されたコンピュータ言語）を使用してユーザインタフェースに入力されてもよいし、及び／又は、任意の他の入力（例えば、自然言語）を使用してユーザインタフェースに入力されてもよく、こうした検証入力は、検証装置１１０により、ドメイン固有言語を使用したＤＡＧ検証クエリー６２０（例えば、図５のＤＡＧ５００のようなＤＡＧから関連情報を取得することが可能なクエリー）に変換されることができる。一部の実施形態において、ドメイン固有言語は、ビヘイビア駆動開発（ＢＤＤ: Behavior Driven Development）構文に類似している場合がある。
【００３５】
ＤＡＧ検証クエリー（例えば、ＤＡＧ検証クエリー６２０）は、検証レポジトリ１３０のような検証レポジトリに、検証として記憶される場合がある。検証レポジトリには複数の検証が記憶される場合があり、特定のテスト実行状態に対応するテスト実行に際し、記憶される検証の各々は、テスト実行よりも前、またはテスト実行よりも後の何れかにおいて定義される。例えば、検証（例えば、有向非巡回グラフ検証クエリー）は、ＡＵＴの第１の特定のテスト実行状態よりも後、かつＡＵＴの第２の特定のテスト実行状態よりも前に、記憶装置（例えば、検証レポジトリ１３０）に記憶される場合がある。もし第２の特定のテスト実行状態により、クエリーの結果が第１の特定のテスト実行状態後に得られるものから変化する場合、検証装置１１０は、表示装置により表示される警告を生成する場合がある。警告は、第１の特定のテスト実行状態後の検証と、第２の特定のテスト実行状態後の検証との間の差に関する情報を含む場合がある。別の例として、検証装置１１０は、特定の時点で検証を自動的に実行することにより、記憶装置（例えば、検証レポジトリ）における種々の検証のうちの１以上を自動的に実行する場合がある。一部の実施形態において、この特定の時点は、スケジュールに基づいている場合があり、検証装置１１０（例えば、検証装置１１０のテスト検証エンジン）は、検証の実行に関する報告を自動的に行う場合がある。
【００３６】
図７は、開示実施形態に合致する、テスト実行からテスト検証を分離するための一例によるプロセス７００を示すフロー図である。以下において、プロセス７００の実行は、図１のシステム１００、及び／又はシステム１０の種々の具体的構成要素を参照して説明されるが、プロセス７００の少なくとも１つのステップの実行には、他の適当なシステム、及び装置が使用されてもよい。例えば、検証装置１１０によって実施されるものとして以下で説明されるプロセスは、検証装置２１０、検証装置３１０、及び／又は任意の他の適当な装置によって実施されてもよい。プロセス７００は、機械読み取り可能な記憶媒体に記憶された実行可能命令の形で実施されてもよいし、及び／又は、電子回路の形で実施されてもよい。
【００３７】
プロセス７００は、ＡＵＴのテスト実行の開始時、または開始付近の時点で開始される場合がある（ステップＳ７０５）。プロセス７００は、プロセッサにより、ＡＵＴのテスト実行中にデータ点を取り込むことを含む場合がある（ステップＳ７１０）。上述のように、データ点は、テスト実行、ＡＵＴ、及びＡＵＴの環境に関連するメタデータを含む場合がある。プロセス７００は、プロセッサにより、コードの第１の部分から、データ点の各々を複数のタイプのうちの少なくとも１つに分類するための第１の要求を受信することをさらに含む場合がある（ステップＳ７２０）。一部の実施形態において、システム１００の構成要素（複数可）は、第１の要求を検証装置１１０へ送信することができる。例えば、コードの第１の部分がプロセッサによって実施されると、コードの第１の部分は、プロセッサに、第１の要求を検証装置１１０へ送信させる場合がある。第１の要求の受信に応答し、検証装置１１０は、プロセッサにより、データ点の各々を複数のタイプのうちの少なくとも１つに分類する場合がある（ステップＳ７３０）。例えば、検証装置１１０は、上記の方法のうちの１以上を使用して、データ点の各々を分類する場合がある。
【００３８】
プロセス７００は、プロセッサにより、コードの第２の部分から、取り込まれたデータ点の各々にＡＵＴのテスト実行を相関付けるための第２の要求を受信することをさらに含む場合がある（ステップＳ７４０）。一部の実施形態において、システム１００の構成要素（複数可）は、第２の要求を検証装置１１０検証装置１１０へ送信することができる。例えば、コードの第２の部分がプロセッサによって実施されると、コードの第２の部分は、プロセッサに、第２の要求を検証装置１１０へ送信させる場合がある。第２の要求の受信に応答し、検証装置１１０は、プロセッサにより、取り込まれたデータ点の各々をＡＵＴのテスト実行と相関付ける場合がある。例えば、データ点は、上記のように（例えば、ＤＡＧを生成することにより）相関付けられる場合がある。一部の例において、データ点の相関付けは、プロセッサにより、バックボーンを含むデータ構造を生成し、バックボーンが、複数のタイプのうちの第１のタイプとして分類された種々のデータ点を含み；プロセッサにより、残りのデータ点に関連するタイムスタンプに基づいて残りのデータ点を有向エッジにより接続し、残りのデータ点が、第１のタイプとして分類されなかったデータ点であり；及び、頂点間の関係のタイプを識別するためのタグを有向エッジに割り当てることによって行われる場合がある。データ点の相関付けが完了すると、プロセス７００は、終了する場合がある（ステップS７６５）。
【００３９】
ＡＵＴの実際の挙動は、相関付けされたデータ点に基づいて検証されることができる。例えば、一部の実施形態において、システム１００は、プロセッサにより、コードの第３の部分から、ＡＵＴの実際の挙動を検証するための第３の要求を受信する場合があり、第３の要求は、テスト実行を実施するテスト構成要素とは異なる検証構成要素から受信される。例えば、もしテスト実行がクライアント装置１２０において実施されている場合、第３の要求は、検証装置１１０の１以上の構成要素から受信される場合がある。言い換えれば、テスト実行を検証から分離して実施することができる。
【００４０】
第３の要求の受信に応答し、システム１００は、検証レポジトリ１３０のような検証レポジトリに対してクエリー（問い合わせ）を行い、取り込まれ、相関付けされたデータ点のうちのクエリーに対応する少なくとも一部を取得する場合がある。例えば、システム１００は、上で説明したプロセス、及び／又は構成要素のうちの１以上を使用して、検証レポジトリにクエリーを送り、取り込まれ、相関付けされたデータ点のうちのクエリーに対応する少なくとも一部を受信する場合がある。一部の例において、システム１００はさらに、取り込まれ、相関付けされたデータ点のうちのクエリーに対応する少なくとも一部の表示を表示装置上に生成する場合がある。例えば、上述のように、システム１００は、警告を生成する場合がある。警告は、クライアント装置１２０に関連する表示装置、及び／又は、任意の他の適当な装置上に表示される場合がある。警告は、クエリーに関連するデータ点を表示する場合がある。
【００４１】
図８は、開示実施形態に合致する、一例による機械読み取り可能な記憶媒体８００を示すブロック図である。特定の態様において、機械読み取り可能な記憶媒体８００は、システム１００に関連する記憶装置、検証装置２１０、検証装置３１０、及び／又は、任意の他の適当な記憶装置に対応する場合がある。機械読み取り可能な記憶媒体８００は、種々の実行可能命令を記憶する如何なる電気的、磁気的、光学的、または他の物理的記憶装置であってもよい。したがって、機械読み取り可能な記憶媒体８００は、例えば、メモリ、ストレージ・ドライブ、及び光学ディスク等である場合がある。一部の実施形態において、機械読み取り可能な記憶媒体８００は、非一時的（持続性）コンピュータ読み取り可能な記憶媒体である場合があり、ここで、「非一時的」という語は、一時的に伝搬する信号を包含しない。機械読み取り可能な記憶媒体８００は、種々の命令を有するようにエンコードされる場合があり、これらの命令は、プロセッサ８１０によって実行されたときに、開示実施形態に合致する種々の処理を実施する。例えば、機械読み取り可能な記憶媒体８００は、図４のステップＳ４６０におけるデータ構造の記憶のようなデータ構造の記憶を管理する処理を実施する種々の命令を含む場合がある。図８に示した例において、機械読み取り可能な記憶媒体８００は、管理命令８０２、及び更新命令８０４を含む場合がある。
【００４２】
管理命令８０２は、記憶装置に記憶されたＤＡＧ（例えば、データ構造）を管理する機能を果たす場合がある。例えば、管理命令８０２がプロセッサ８１０によって実行されると、管理命令８０２は、プロセッサ８１０に、ＡＵＴの第１のテスト実行に関する種々のテストステップを含むバックボーンを含むデータ構造を管理させる場合がある。一部の例において、バックボーンの各テストステップは、有向エッジにより、テスト実行中に取り込まれたデータ点に接続される場合がある。さらに、バックボーンの各ステップは、データ点に関連するタイムスタンプに基づいて接続される場合がある。一部の例において、データ構造は、バックボーンに接続された種々の頂点をさらに含む場合があり、頂点は、テスト実行に関連するメタデータによってモデル化される。さらに、一部の例において、データ構造は、有向エッジに関連するタグであって、頂点間の関係のタイプを識別するタグを含む場合がある。さらに、一部の例において、データ構造の管理は、データ構造をアクセスするためのクエリー（例えば、ＡＵＴの実際の挙動を検証するための検証情報を含むクエリー）の受信、及び、クエリーに対応する情報の送信を含む場合がある。
【００４３】
データ構造の管理は、様々な形で実施される場合がある。一部の例において、システム１００は、テストが実行されるたびにデータ構造を作成する場合がある。一部の例において、システム１００は、データ点間の相関を記憶するための一時データ構造を作成することにより、データ構造を一括処理の形で作成し、及び／又は更新する場合がある。一時データ構造は、データ構造と同じであってもよいし、類似していてもよいし、異なっていてもよい。
【００４４】
更新命令８０４は、ＡＵＴの更なるテスト実行に基づいて、データ構造を更新する機能を果たす場合がある。例えば、更新命令８０４がプロセッサ８１０によって実行されると、更新命令８０４は、プロセッサ８１０に、ＡＵＴ（及び／又は、異なるＡＵＴ）の更なるテスト実行に基づいて（例えば、第２のテスト実行に基づいて）生成された別のＤＡＧを含むようにデータ構造を更新させる場合がある。こうした追加的テスト実行は、当初のデータ構造の作成の後に実施される場合がある。
【００４５】
開示例は、テスト実行からテスト検証を切り離すためのシステム、装置、機械読み取り可能な記憶媒体、及び方法を含む場合がある。例示のために、図１〜図８に示した種々の構成要素を参照し、特定の例について説明した。しかしながら、例示した構成要素の機能は、重なり合っていてもよく、また、もっと少数または多数の要素、及び構成要素に存在していてもよい。さらに、例示した要素の機能の全部または一部は、共存していてもよいし、複数の地理的に分散された種々の場所に分散されていてもよい。さらに、開示例は、様々な環境で実施されることができ、図示した例に限定されない。
【００４６】
さらに、本明細書では、様々な要素を説明するために第１、第２などの語が使用されることがあるが、それらの要素が、この語によって制限されてはならない。むしろ、それらの語は、ある要素を他の要素から区別するためだけに使用されている。
【００４７】
さらに、図１〜図８に関係して説明された一連の処理は、制限となることを意図したものではない。さらに別の、またはより少数の処理、または処理の組み合わせが使用される場合があり、それらは、開示例の範囲を外れることなく、異なっていてもよい。さらに、開示例に合致する実施形態が、一連の処理を図１〜図８に関して説明したもののような何らかの特定の順序で実施する必要は、必ずしもない。したがって、本開示は、単に実施形態の可能な例を説明するものであり、説明した例に対し、種々の変更及び修正が施されてもよい。そのような変更、及び修正は全て、本開示の範囲内に含まれ、添付の特許請求の範囲により保護されることが意図されている。
【図１】
2017539031.tif 000003
【図２】
2017539031.tif 000004
【図３】
2017539031.tif 000005
【図４】
2017539031.tif 000006
【図５】
2017539031.tif 000007
【図６】
2017539031.tif 000008
【図７】
2017539031.tif 000009
【図８】
2017539031.tif 000010
【国際調査報告】
2017539031.tif 000011
2017539031.tif 000012