(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】特表2017-539031(P2017-539031A)
(43)【公表日】2017年12月28日
(54)【発明の名称】テスト実行からのテスト検証の分離
(51)【国際特許分類】
G06F 17/30 20060101AFI20171201BHJP
G06F 11/36 20060101ALI20171201BHJP
【FI】
G06F17/30 220Z
G06F17/30 419B
G06F17/30 210D
G06F11/36 188
【審査請求】有
【予備審査請求】未請求
【全頁数】20
(21)【出願番号】特願2017-530755(P2017-530755)
(86)(22)【出願日】2014年12月9日
(85)【翻訳文提出日】2017年7月21日
(86)【国際出願番号】US2014069290
(87)【国際公開番号】WO2016093803
(87)【国際公開日】20160616
(81)【指定国】
AP(BW,GH,GM,KE,LR,LS,MW,MZ,NA,RW,SD,SL,ST,SZ,TZ,UG,ZM,ZW),EA(AM,AZ,BY,KG,KZ,RU,TJ,TM),EP(AL,AT,BE,BG,CH,CY,CZ,DE,DK,EE,ES,FI,FR,GB,GR,HR,HU,IE,IS,IT,LT,LU,LV,MC,MK,MT,NL,NO,PL,PT,RO,RS,SE,SI,SK,SM,TR),OA(BF,BJ,CF,CG,CI,CM,GA,GN,GQ,GW,KM,ML,MR,NE,SN,TD,TG),AE,AG,AL,AM,AO,AT,AU,AZ,BA,BB,BG,BH,BN,BR,BW,BY,BZ,CA,CH,CL,CN,CO,CR,CU,CZ,DE,DK,DM,DO,DZ,EC,EE,EG,ES,FI,GB,GD,GE,GH,GM,GT,HN,HR,HU,ID,IL,IN,IR,IS,JP,KE,KG,KN,KP,KR,KZ,LA,LC,LK,LR,LS,LU,LY,MA,MD,ME,MG,MK,MN,MW,MX,MY,MZ,NA,NG,NI,NO,NZ,OM,PA,PE,PG,PH,PL,PT,QA,RO,RS,RU,RW,SA,SC,SD,SE,SG,SK,SL,SM,ST,SV,SY,TH,TJ,TM,TN,TR,TT,TZ,UA,UG,US
(71)【出願人】
【識別番号】317017140
【氏名又は名称】エントイット ソフトウェア エルエルシー
【氏名又は名称原語表記】ENTIT SOFTWARE LLC
(74)【代理人】
【識別番号】100087642
【弁理士】
【氏名又は名称】古谷 聡
(74)【代理人】
【識別番号】100082946
【弁理士】
【氏名又は名称】大西 昭広
(74)【代理人】
【識別番号】100121061
【弁理士】
【氏名又は名称】西山 清春
(74)【代理人】
【識別番号】100195693
【弁理士】
【氏名又は名称】細井 玲
(72)【発明者】
【氏名】シャニ,インバル
(72)【発明者】
【氏名】シュフェル,イラン
(72)【発明者】
【氏名】ニッツァン,アミチャイ
【テーマコード(参考)】
5B042
【Fターム(参考)】
5B042HH12
5B042HH49
(57)【要約】
【課題】アプリケーションの実際の挙動をテスト実行状態から分離して検証する手段の提供。
【解決手段】例示する種々の実施形態は、テスト実行から検証を分離することに関連するものである。一部の実施形態は、テスト対象アプリケーションのテスト実行中にデータ点を取り込むデータ取込みエンジンを含む場合がある。データ点は、例えば、アプリケーションデータ、テストデータ、及び環境データを含み得る。その他に、一部の実施形態は、特定のテスト実行状態の間に発生した一連のイベントに基づいて、データ点の各々をテスト対象アプリケーションの特定のテスト実行状態と相関付けるデータ相関付けエンジンを含む場合がある。さらに、一部の実施形態は、データ点の相関性に基づいて、テスト対象アプリケーションの実際の挙動を特定のテスト実行状態から分離して検証するテスト検証エンジンをさらに含む場合がある。
【選択図】
図2
【特許請求の範囲】
【請求項1】
テスト実行からテスト検証を分離するためのシステムであって、
テスト対象アプリケーションのテスト実行中にデータ点を取り込むデータ取込みエンジンであって、前記データ点が、アプリケーションデータ、テストデータ、及び環境データを含む、データ取込みエンジンと、
前記データ点の各々を前記テスト対象アプリケーションの特定のテスト実行状態と相関付けるデータ相関付けエンジンであって、前記データ点の各々が、前記特定のテスト実行状態の間に発生した一連のイベントに基づいて相関付けられる、データ相関付けエンジンと、
前記データ点の相関性に基づいて、前記テスト対象アプリケーションの実際の挙動を前記特定のテスト実行状態から分離して検証するテスト検証エンジンと
を含むシステム。
【請求項2】
前記アプリケーションデータは、前記テスト対象アプリケーションの様々なレベルに関連するデータを含み、前記レベルは、ユーザインタフェースレベル、コードレベル、ネットワーク通信レベル、及びデータベースレベルのうちの少なくとも1つを含み、
前記テストデータは、前記特定のテスト実行状態に関連するデータを含み、前記テストデータは、前記テスト対象アプリケーション、前記特定のテスト実行状態、及び、前記特定のテスト実行状態の間に実施されたテスト動作に関連するメタデータを含み、
前記環境データは、前記テスト対象アプリケーションの環境に関連するデータを含み、前記環境データは、前記テスト対象アプリケーションを実行するハードウェア、及びプログラムに関連するメタデータを含む、請求項1に記載のシステム。
【請求項3】
前記データ相関付けエンジンは、
テスト実行の種々のテストステップをデータ構造のバックボーンとして割り当て、
割り当てられたテストステップのうちの第1のテストステップから、有向エッジにより前記データ点を接続し、前記データ点が、特定のデータ点に関連するタイムスタンプと前記第1のテストステップに関連するタイムスタンプとの間の時間の長さに基づいて接続され、
前記アプリケーションデータ、前記テストデータ、及び前記環境データを、前記バックボーンに接続された頂点として割り当て、
前記頂点間の関係のタイプを識別するためのタグを前記有向エッジに割り当てること
によって、前記データ点の各々を相関付ける、請求項2に記載のシステム。
【請求項4】
前記テスト検証エンジンは、前記特定のテスト実行状態の後に受信した検証入力に基づいて、前記実際の挙動を検証する、請求項1に記載のシステム。
【請求項5】
前記データ相関付けエンジンは、有効非巡回グラフを生成することによって前記データ点の各々を相関付け、前記有効非巡回グラフは、前記データ点に関連するタイムスタンプに基づいて生成され、
前記テスト検証エンジンは、前記検証入力を有向非巡回グラフ検証クエリーに変換し、前記有向非巡回グラフ検証クエリーは、ドメイン固有言語を使用して変換され、
前記テスト検証エンジンは、前記有向非巡回グラフ検証クエリーを使用して、前記有向非巡回グラフを照会する、請求項4に記載のシステム。
【請求項6】
前記特定のテスト実行状態は、第1の特定のテスト実行状態であり、
前記有向非巡回グラフ検証クエリーは、第2の特定のテスト実行状態よりも前に記憶装置に記憶され、
前記第2の特定のテスト実行状態により、前記クエリーの結果が変化する場合、警告が生成される、請求項5に記載のシステム。
【請求項7】
検証が記憶された検証レポジトリをさらに含み、
前記テスト検証エンジンは、特定の時点で前記検証を自動的に実行することにより、前記テスト対象アプリケーションの前記実際の挙動を検証する、請求項1に記載のシステム。
【請求項8】
前記テスト検証エンジンは、前記検証の実行に関する報告を自動的に行い、
前記特定の時点が、スケジュールに基づいている、請求項7に記載のシステム。
【請求項9】
前記特定のテスト実行状態に対応するテスト実行に際し、前記記憶された検証の各々は、前記テスト実行よりも前、または前記テスト実行よりも後の何れかにおいて定義される、請求項7に記載のシステム。
【請求項10】
コンピュータで実施される方法であって、
プロセッサにより、テスト対象アプリケーションのテスト実行中にデータ点を取り込み、前記データ点が、前記テスト実行、前記テスト対象アプリケーション、及び前記テスト対象アプリケーションの環境に関連するメタデータを含み、
前記プロセッサにより、コードの第1の部分から、前記データ点の各々を複数のタイプのうちの少なくとも1つに分類するための第1の要求を受信し、
前記第1の要求の受信に応答し、前記プロセッサにより、前記データ点の各々を複数のタイプのうちの少なくとも1つに分類し、
前記プロセッサにより、コードの第2の部分から、前記取り込まれたデータ点の各々を前記テスト対象アプリケーションの前記テスト実行と相関付けるための第2の要求を受信し、
前記第2の要求の受信に応答し、前記プロセッサにより、前記取り込まれたデータ点の各々を前記テスト対象アプリケーションの前記テスト実行と相関付けることを含み、
前記取り込まれたデータ点の各々を相関付けることは、
前記プロセッサにより、バックボーンを含むデータ構造を生成し、前記バックボーンが、前記複数のタイプのうちの第1のタイプとして分類されたデータ点を含み、
前記プロセッサにより、残りのデータ点に関連するタイムスタンプに基づいて、前記残りのデータ点を有向エッジにより接続し、前記残りのデータ点が、前記第1のタイプとして分類されなかったデータ点であり、
頂点間の関係のタイプを識別するためのタグを前記有向エッジに割り当てること
を含む、コンピュータで実施される方法。
【請求項11】
前記プロセッサにより、コードの第3の部分から、前記テスト対象アプリケーションの実際の挙動を検証するための第3の要求を受信し、前記第3の要求が、前記テスト実行を実施するテスト構成要素とは異なる検証構成要素から受信され、
前記第3の要求の受信に応答し、検証レポジトリに対してクエリーを行い、前記クエリーに対応する前記相関付けられた取り込まれたデータ点の少なくとも一部を取得すること
を含む、請求項10に記載のコンピュータで実施される方法。
【請求項12】
前記クエリーに対応する前記相関付けられた取り込まれたデータ点の少なくとも一部を受信し、
前記クエリーに対応する前記相関付けられた取り込まれたデータ点の少なくとも一部の表示を表示装置上に生成すること
を含む、請求項11に記載のコンピュータで実施される方法。
【請求項13】
前記取り込まれたデータ点の各々を相関付けることは、有向非巡回グラフを生成することを含む、請求項11に記載のコンピュータで実施される方法。
【請求項14】
命令を含む非一時的コンピュータ読み取り可能な記憶媒体であって、前記命令が、プロセッサによって実行されたときに、前記プロセッサに、
記憶装置に記憶されたデータ構造を管理させ、前記データ構造が、
テスト対象アプリケーションの第1のテスト実行に関するテストステップを含むバックボーンであって、前記バックボーンの各テストステップが、有向エッジにより、前記テスト実行の間に取り込まれたデータ点に接続され、前記バックボーンの各テストステップが、前記データ点に関連する一連のイベントに基づいて接続されている、バックボーンと、
前記バックボーンに接続された頂点であって、前記頂点が、前記テスト実行に関連するメタデータによりモデル化されている、頂点と、
前記有向エッジに関連するタグであって、前記タグが、前記頂点間の関係のタイプを識別する、タグと
を含み、
前記データ構造を第2のテスト実行に基づいて更新させる、非一時的コンピュータ読み取り可能な記憶媒体。
【請求項15】
前記データ構造の管理は、
前記データ構造をアクセスするためのクエリーを受信し、
前記クエリーに対応する前記データ構造からの情報を送信すること
を含み、前記クエリーは、前記テスト対象アプリケーションの実際の挙動を検証するための検証情報を含む、請求項9に記載の非一時的コンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【背景技術】
【0001】
背景
アプリケーションテストは、テスト対象アプリケーション(「AUT」: Application Under Test)に関する情報を得るために実施されることがある。例えば、アプリケーションテストは、AUTが何らかのエラーその他の欠陥を含むか否かを判断するために実施されることがある。アプリケーションテストには、様々な技術を使用可能であるが、基本的アプリケーションテスト手順は、2つの主要なタイプのテストステップを含み得る。すなわち、(1)テスト対象アプリケーション(「AUT」)を操作し、駆動し、または照会する動作ステップ、及び(2)動作ステップに関連する期待される結果を検証する検証ステップである。
【図面の簡単な説明】
【0002】
下記の詳細な説明では、次の図面が参照される。
【0003】
【
図1】開示実施形態に合致する、テスト実行からテスト検証を分離するための一例によるシステムを示すブロック図である。
【
図2】開示実施形態に合致する、一例による検証装置を示すブロック図である。
【
図3】開示実施形態に合致する、一例による検証装置を示すブロック図である。
【
図4】開示実施形態に合致する、データ点を相関付けるための一例によるプロセスを示すフロー図である。
【
図5】開示実施形態に合致する、有向非巡回グラフの一例を示すブロック図である。
【
図6】開示実施形態に合致する、検証入力の有向非巡回グラフ検証クエリーへの変換の一例を示す図である。
【
図7】開示実施形態に合致する、テスト実行からテスト検証を分離するための一例によるプロセスを示すフロー図である。
【
図8】開示実施形態に合致する、一例による機械読み取り可能な記憶媒体を示すブロック図である。
【発明を実施するための形態】
【0004】
詳細な説明
下記の詳細な説明では、添付の図面が参照される。図面、及び下記の説明では、同じ部品または類似の部品を指し示すために、出来る限り、同じ参照符号が使用される。本文書では、複数の例が説明されるが、種々の修正、変更、及び他の実施形態が可能である。したがって、下記の詳細な説明は、開示例を制限しない。むしろ、開示例の適切な範囲は、添付の特許請求の範囲により規定されることがある。
【0005】
上記のように、基本的アプリケーションテスト手順は、2つの主要なタイプのテストステップを含み得る。すなわち、(1)テスト対象アプリケーション(AUT)を操作し、駆動し、または照会する動作ステップまたはテストステップ、及び(2)動作ステップに関連する期待される結果を検証する検証ステップである。従来、この基本的アプリケーションテスト手順によれば、動作と検証との間に依存関係が生じることがある。例えば、検証は、AUTのテストの実行中に実施されなければならないことがある。この依存関係は、様々な欠点をもたらすことがあり、欠点としては、例えば、検証が変化した場合(たとえ動作が変化していなくても)AUTのテスト実行をやり直す必要性、動作の対象物を検証するだけの傾向(例えば、動作がボタンをクリックすることである場合、ユーザは、ボタンがクリックされたことを検証することになる)、動作ステップの結果をAUTの他のレベルのイベント(例えば、サーバログ、データベースログ、アプリケーションログなど)に相関付けることの困難性、並びに、動作の変化、及び/又は検証の変化に基づく様々な管理上の課題が挙げられる。例えば、AUTがバンキングアプリケーションであり、テスト事例が、第1の口座(「口座A」)から第2の口座(「口座B」)へ資金が移動されたか否かを判断することである事例を考えて欲しい。テスト実施者は、テスト事例を実行することにより、資金移動を実施し、移動された額が口座Bに実際に加算されたか否かを検証する場合がある。テスト完了後、テスト実施者は、別の検証(すなわち、移動された額が口座Aから取り除かれたことの検証)が必要であると判断した。しかしながら、この新たな検証を実施するためには、テスト実施者は、たとえ動作ステップが依然と同じステップであっても、動作ステップの各々をやり直さなければならない。このように、一部の従来のテストの方法では、動作ステップが検証ステップと密接に結び付けられているため、テスト実行を検証から分離することができない。
【0006】
本明細書に開示される種々の例は、テスト実行からテスト検証を分離することにより、従来のアプリケーションテストを増強し、または置き換えることができる。この目的のために、一部の例は、AUTのテスト実行からデータ点を監視し、取り込むとともに、それらのデータ点のクエリーを定義し、永続化(persist)し、実行する場合がある。クエリーは、期待されるアプリケーション挙動を定義する新たな手段とみなされる場合があり、従来のスクリプトにおける検証ステップのような役割を果たすことができる。例えば、開示実施形態に合致する種々の例は、AUTのテスト実行中にデータ点を取り込み、データ点の各々をAUTの特定のテスト実行状態(例えば、特定の時点におけるシステムの状態)と相関付け、データ点の相関性に基づいて、AUTの実際の挙動を特定のテスト実行状態から分離して検証することができる。本明細書において、特定のテスト実行状態は、の状態である場合がある。
【0007】
次に図面を参照すると、
図1は、テスト実行からテスト検証を分離するための一例によるシステム100を示すブロック図である。システム100は、開示例の範囲から外れることなく、多数の異なる構成で実施されることができる。
図1に示した例では、システム100は、検証装置110、クライアント装置120、検証レポジトリ130、並びに、検証装置110をクライアント装置120及び/又は検証レポジトリ130と接続するためのネットワーク140を含む場合がある。
【0008】
検証装置110は、開示例に合致する種々の機能を実施する計算システムである場合がある。例えば、検証装置110は、サーバ、デスクトップ・コンピュータ、ラップトップ・コンピュータ、及び/又は、任意の他の適当なタイプの計算装置である場合がある。一部の例において、検証装置110は、クライアント装置120、及び/又は検証レポジトリ130から受信した情報を処理する場合がある。例えば、検証装置110は、クライアント装置120から取り込まれ、及び/又は検証レポジトリ130から受信されたデータに基づいて、AUTの実際の挙動を特定のテスト実行状態から分離して検証することができる。検証装置110の例、及び装置110により実施されることができる特定の機能については、例えば
図2及び
図3に関係して、後で詳細に説明される。
【0009】
クライアント装置120は、ユーザによって操作される計算システムである場合がある。例えば、クライアント装置120は、デスクトップ・コンピュータ、ラップトップ・コンピュータ、タブレット型計算装置、携帯電話、サーバ、及び/又は、任意の他のタイプの計算装置である場合がある。一部の例において、クライアント120は、開示実施形態に合致する種々の処理を実施するための計算装置である場合がある。例えば、クライアント装置120は、例えばアプリケーションテスト中に実施される動作ステップに関連するデータのようなAUTのテスト実行に関連するデータを検証装置110に送信するように構成される場合がある。
【0010】
クライアント装置120は、機械読み取り可能な記憶媒体に記憶された種々の命令を実行するためのプロセッサを含む場合がある。
図1に示した例において、クライアント装置120は、プロセッサ122、機械読み取り可能な記憶媒体124、表示装置126、及びインタフェース128を含む場合がある。クライアント装置120のプロセッサ122は、種々の処理を実施するための命令を実行するための少なくとも1つの処理ユニット(CPU)、マイクロプロセッサ、及び/又は、他のハードウェアデバイスであってよい。例えば、プロセッサ122は、機械読み取り可能な記憶媒体124に記憶された命令(テスト実行アプリケーション命令127、及びAUT命令129など)をフェッチし、デコードし、実行することにより、AUTをテストする場合がある。
図1に示した例では、AUTは、クライアント装置120上に置かれているが、テスト実行命令127、及び/又はAUT129は、異なる機械上に置かれてもよく、及び/又は、複数の計算装置若しくはシステムにわたって存在していてもよい。機械読み取り可能な記憶媒体124は、プロセッサ122によって実行される命令が記憶された任意の電気的、光学的、または他の非一時的(持続性)記憶装置であってよい。表示装置126は、AUTのユーザインタフェースのような情報を、クライアント装置120を操作しているユーザ(例えば、テスト実施者)に対して表示する任意のタイプの表示装置であってよい。インタフェース装置128は、クライアント装置120の内部構成要素と、ユーザ動作検証装置110のような外部構成要素との間のデータの交換を可能にするハードウェア、及び/又はプログラムの任意の組み合わせであってよい。一部の例において、インタフェース装置128は、クライアント装置120がネットワーク140を介して検証装置110のような種々の構成要素との間でデータの送受信を行うことを可能にするネットワークインタフェース装置を含む場合がある。
【0011】
検証レポジトリ130は、データの記憶が可能な、任意のタイプの記憶システム構成であってよい。例えば、検証レポジトリ130によれば、AUT(例えば、SaaS、SQL、Accessなど、データベース)のテスト実行中に取り込まれたデータ点の探索、アクセス、及び読み出しが可能になる場合がある。検証レポジトリ130には、様々な方法でデータが入力されることがある。例えば、検証装置110は、一組の検証を受信し、生成し、及び/又はアクセスし、一組の検証を検証レポジトリ130に記憶することにより、検証レポジトリ130にデータを入力する場合がある。別の例として、検証装置110は、検証装置110によって取り込まれ、相関付けられたデータ点を検証レポジトリ130に入力する場合があり、相関付けられたデータ点を検証レポジトリ130に記憶する場合がある。一部の実施形態において、データ点は、有向非巡回グラフ(「DAG」)として記憶される場合がある。従来、DAGは、頂点(例えば、グラフを形成する基本単位)の集合、及び有向エッジ(例えば、前記頂点の集合における第1の頂点から前記頂点の集合における第2の頂点を指し示すエッジ)によって形成された有向グラフである。本明細書において、DAGは、従来のDAGに含まれるデータのグラフィック表現を必ずしも意味していない。むしろ、本明細書におけるDAGは、システム100が従来のDAG(例えば、データ点の分類、特定のデータ点に関連する有向エッジ、及び/又はデータ点に関連する頂点)で表されたデータを決定することが可能な形でデータ点を記憶するグラフィック表現、及び/又はデータ構造を含み得る。一部の例において、データ構造は、アレイ、レコード、データベース・エントリ、ルックアップテーブル、ハッシュテーブル、マップ、ツリー、連結リスト、及び/又は、任意の他のタイプのデータ構造である場合がある。開示実施形態に合致するDAGの一例は、例えば
図5に関連して、後でより詳細に説明される。
【0012】
図1に示した例では、検証レポジトリ130は、構成要素110及び120の外部の単一構成要素であるが、検証レポジトリ130は、種々の独立した構成要素を含んでいてもよく、並びに/あるいは、装置110、120及び/又は他の装置の一部であってもよい。一部の実施形態において、検証レポジトリ130は、ネットワーク140を通して遠隔的にデータを取得し、作成し、制御し、及び/又は管理することが可能な装置110及び/又は他の装置の種々の構成要素によって管理される場合がある。
【0013】
ネットワーク140は、検証装置110とクライアント装置120のような遠隔構成要素間における通信を可能にする任意のタイプのネットワークであってよい。例えば、ネットワーク140は、ローカル・エリア・ネットワーク(LAN)、ワイド・エリア・ネットワーク(WAN)、仮想私設ネットワーク、専用イントラネット、インターネット、及び/又は無線ネットワークである場合がある。
【0014】
図1に示した配置は、単に一例であり、システム100は、多数の異なる構成で実施されてよい。例えば、
図1は、1つの検証装置110、クライアント装置120、検証レポジトリ130、及びネットワーク140を示しているが、システム100は、任意数の構成要素110、120、130、及び140、並びに
図1には示されていない他の構成要素を含み得る。例えば、システム100は、構成要素110、120、130、及び140のうちの何れかを省略する場合があり、及び/又は、構成要素110、120、130、及び140のうちの少なくとも1つの機能は、他の構成要素(例えば、構成要素110、120、130、140、及び/又は、
図1には示されていない構成要素)に組み込まれる場合がある。
【0015】
図2は、開示実施形態に合致する、一例による検証装置210を示すブロック図である。特定態様において、検証装置210は、
図1の検証装置110に対応する場合がある。検証装置210は、様々な形で実施されてよい。例えば、装置210は、特殊な目的のコンピュータ、サーバ、メインフレーム・コンピュータ、及び/又は任意の他のタイプの計算装置である場合がある。
図2に示した例において、関連装置210は、プロセッサ220、及び機械読み取り可能な記憶媒体230を含む場合がある。
【0016】
プロセッサ220は、種々の処理を実施するための命令を実行するための少なくとも1つの処理ユニット(CPU)、マイクロプロセッサ、及び/又は、他のハードウェアデバイスであってよい。例えば、プロセッサ220は、機械読み取り可能な記憶媒体230に記憶されたの検証命令240(例えば、命令242、244、及び/又は246)をフェッチし、デコードし、実行することにより、開示例に合致する種々の処理を実施する場合がある。
【0017】
機械読み取り可能な記憶媒体230は、実行可能命令が記憶された任意の電気的、磁気的、光学的、または他の物理的記憶装置であってよい。したがって、機械読み取り可能な記憶媒体230は、例えば、メモリ、ストレージ・ドライブ、及び光学ディスク等である場合がある。一部の実施形態において、機械読み取り可能な記憶媒体230は、非一時的(持続性)コンピュータ読み取り可能な記憶媒体である場合があり、ここで、「非一時的」という語は、一時的に伝搬する信号を包含しない。機械読み取り可能な記憶媒体230は、種々の命令を有するようにエンコードされる場合があり、これらの命令は、プロセッサ230によって実行されたときに、開示実施形態に合致する種々の処理を実施する。例えば、機械読み取り可能な記憶媒体240は、AUTのテスト実行中にデータ点を取り込み、データ点の各々をAUTの特定のテスト実行状態と相関付け、データ点の相関性に基づいてAUTの実際の挙動を検証することによって、テスト実行からテスト検証を分離する処理を実施する種々の命令を含む場合がある。
図2に示した例において、機械読み取り可能な記憶媒体230は、データ取込み命令242、データ相関付け命令244、及びテスト検証命令246を含む場合がある。
【0018】
データ取込み命令242は、AUTのテスト実行中にデータ点を取り込む機能を果たす場合がある。一部の実施形態において、データ取込み命令242がプロセッサ220によって実行されると、データ取込み命令242は、プロセッサ220、及び/又は他のプロセッサに、AUTのテスト実行中にデータ点を取り込ませる。データ点は、テスト実行、テスト実行中のAUT、及び、テスト実行中のAUTの環境に関連する場合がある。例えば、データ取込み命令242は、プロセッサ220、及び/又は他のプロセッサに、テストを実行し、及び/又はテスト実行中にAUTを実施している1以上の計算システムからデータ点をアクセス、受信、または取得させることができる。一部の例においては、特定の構成要素(複数可)がどのような働きをしているかを監視するとともに、データ点を検証装置110に関連する記憶装置のような記憶装置へ送信するエージェントを、様々な物理的または仮想的システム構成要素にインストールすることによって、データ点を取り込む場合がある。送信されたデータ点は、その後、検証装置110によって受信され、及び/又は取り込まれることができる。エージェントは、単純なもの(例えば、CPU使用レベルが何であるかをオペレーティング・システムに単に尋ねることができる、中央演算処理装置(「CPU」)を監視するエージェント)であってもよいし、複雑なもの(例えば、テスト手段と一体化され、AUTのテスト実行中に全てのテストステップを追跡するエージェント)であってもよい。代替的に(または、エージェントの使用と組み合わせて)、情報は、エージェントなしに監視されてもよい。例えば、監視サーバは、構成要素(複数可)のメモリ使用に関する情報を種々の構成要素(複数可)に質問する場合がある。
【0019】
一部の実施形態において、取り込まれたデータ点は、ユーザインタフェースレベル(例えば、UIスナップショット、UIオブジェクト抽出など)、コードレベル(例えば、UIの後ろで実行されるコード)、ネットワーク通信レベル(例えば、クライアント装置120と検証装置110の間のネットワーク通信)、及び、データベースレベル(例えば、テスト実行中にAUTによりアクセスされたデータベース)といった様々なレベルのAUTに関連するデータを含む場合がある。さらに、一部の例において、テストデータは、AUT(例えば、AUTバージョン)、特定のテスト実行状態(例えば、テスト日時、テスト実施者名など)、及び、特定のテスト実行状態の間に実施されたテスト動作及び/又はステップに関連するメタデータのような、特定のテスト実行状態に関連するデータを含む場合がある。さらに、一部の例において、環境データは、AUTの環境に関連するデータを含む場合があり、環境データは、AUTのテストの実行(例えば、サーバログ)、及び/又はAUT自体の実行(例えば、アプリケーションサーバエラー)に関連する、ハードウェア(例えば、デバイスビルド、CPU使用量、メモリ使用量、リソース使用量など)、及びプログラム(例えば、オペレーティングシステム、ブラウザなど)に関連するメタデータを含み得る。AUTのテスト実行中のデータ点の取込みの例については、
図2〜
図8に関連して、後でさらに詳しく説明される。
【0020】
データ相関付け命令244は、データ点を相関付ける機能を果たす場合がある。例えば、データ相関付け命令244がプロセッサ220により実行されると、データ相関付け命令244は、プロセッサ220に、データ点の各々を、AUTの特定のテスト実行状態と相関付けさせる。一部の実施形態において、データ点は、特定のテスト実行状態の間に発生した一連のイベントに基づいて相関付けられる場合がある。例えば、データ相関付け命令244は、プロセッサ220に、DAGを生成させ、及び/又は、データのコンテキスト・クエリーが可能となる形でデータを記憶させる場合がある。一部の実施形態において、DAG、及び/又は相関付けされたデータは、検証レポジトリ130のようなレポジトリに記憶される場合がある。データ点の相関付けの例については、例えば
図4、
図5及び
図7に関連して、後でさらに詳しく説明される。
【0021】
テスト検証命令246は、データ点の相関性に基づいて、AUTの実際の挙動を特定のテスト実行状態から分離して検証する機能を果たす場合がある。例えば、テスト検証命令246がプロセッサ220により実行されると、テスト検証命令246は、特定のテスト実行に際し、プロセッサ220に、特定のテスト実行よりも前、または特定のテスト実行よりも後の何れかにおいて受信した検証入力(例えば、自然言語クエリー)に基づいて、AUTの実際の挙動を検証させる場合がある。例えば、特定のテスト実行状態に対応するテスト実行に際し、検証データベース130は、テスト実行よりも前、またはテスト実行よりも後の何れかにおいて定義された、記憶された検証を含む場合がある。一部の実施形態において、検証入力は、ドメイン固有言語を使用して検証(例えば、有向非巡回グラフ検証クエリー)に変換され、及び/又は、検証レポジトリ130のような記憶システムに記憶される。AUTの実際の挙動を特定のテスト実行状態から分離して検証する例については、例えば
図5及び
図6に関連して、後で詳しく説明される。
【0022】
図3は、開示実施形態に合致する、一例による検証装置310を示すブロック図である。一部の態様において、検証装置310は、
図1の検証装置110、及び/又は、
図2の検証装置210に対応する場合がある。装置310は、様々な形で実施されてよい。例えば、装置310は、特殊な目的のコンピュータ、サーバ、メインフレーム・コンピュータ、及び/又は任意の他の適当なタイプの計算装置である場合がある。
図3に示した例では、装置310は、データ取込みエンジン320、データ相関付けエンジン330、及びデータ検証エンジン340を含む場合がある。
【0023】
エンジン320、330、及び340は、開示例に合致する機能を実施するための電子回路である場合がある。例えば、エンジン320、330、及び340は、開示実施形態に合致する機能を実施するための種々のハードウェアデバイス、及びプログラムの組み合わせを表している場合がある。一部の例において、エンジン320、330、及び/又は340の機能は、分離命令240がプロセッサ220によって実行されたときに実施される処理(
図2に関して上で説明したもの)のような、
図2の検証装置210により実施される種々の処理に対応する場合がある。
図3において、データ取込みエンジン320は、プロセッサ220がデータ取込み命令242を実行するときに実施されるものに類似した処理を実施するハードウェアとプログラムの組み合わせを表している場合がある。同様に、データ相関付けエンジン330は、プロセッサ220がデータ相関付け命令244を実行するときに実施されるものに類似した処理を実施するハードウェアとプログラムの組み合わせを表し、テスト検証エンジン340は、プロセッサ220がテスト検証命令246を実行するときに実施されるものに類似した処理を実施するハードウェアとプログラムの組み合わせを表している場合がある。
【0024】
図4は、開示実施形態に合致する、データ点を相関付けるための一例によるプロセス400を示すフロー図である。以下において、プロセス400の実行は、
図1のシステム100、及び/又はシステム100の具体的構成要素を参照して説明されるが、プロセス400の少なくとも1つのステップの実行のために、他の適当なシステム及び装置が使用されてもよい。例えば、検証装置110によって実施される場合があるものとして以下で説明されるプロセスは、検証装置210、検証装置310、及び/又は任意の他の適当な装置によって実施されてもよい。プロセス400は、機械読み取り可能な記憶媒体に記憶された実行可能命令の形で実施されてもよいし、及び/又は、電子回路の形で実施されてもよい。
【0025】
プロセス400は、AUTのテスト実行の際、データ点が取り込まれた後に開始される場合がある(ステップS405)。データ点が取り込まれた後、プロセス400は、DAGを生成する機能を果たす場合がある。例えば、プロセス400は、データ点を複数のタイプのうちの少なくとも1つに分類することを含む場合がある(ステップS410)。例えば、データ点は、テスト実行の種々のステップ、データタイプ(例えば、CPU、メモリ、UIオブジェクト、ユーザ動作、ネットワークパケットなど)、特定ユーザ(例えば、テストを開始したユーザの識別情報)、AUTビルド(データ点が取り込まれたときのAUTの具体的ビルドバージョン)、及び/又は、任意の他の適当な分類に基づいて分類される場合がある。プロセス400は、バックボーンを含むデータ構造を生成することをさらに含む場合がある。ここで、バックボーンは、複数のタイプのうちの第1のタイプとして分類されたデータ点を含む場合がある。例えば、システム100は、第1のタイプのデータ点(例えば、テスト実行のテストステップ)をデータ構造のバックボーンとして割り当てる場合がある(ステップS420)。
【0026】
プロセス400は、残りのデータ点(例えば、第1のタイプとして分類されなかったデータ点)に関連するタイムスタンプに基づいて、残りのデータ点を有向エッジにより接続すること(ステップS430)を含む場合がある。例えば、データ点は、第1のタイプの第1のデータ点(例えば、テストステップのうちの第1のステップ)から、有向エッジにより接続される場合がある。一部の例において、データ点は、取り込まれたデータ点のうちの特定のデータ点に関連するタイムスタンプと、第1のテストステップに関連するタイムスタンプとの間の時間の長さに基づいて接続される場合がある。例えば、システム100は、テストステップが何時実行されたかに基づいて、テストステップをバックボーンを成すように一列に整列させる場合がある。特定のテストステップに関連するイベントが追跡され、特定のテストステップに関連付けられる場合がある。例えば、システム100は、UIオブジェクトを追跡する場合がある。UIスキャナーは、定期的に作動し、UI上の構造化オブジェクト、それらの属性、及びそれらの値を自動的に識別する場合がある。別の例において、システム100は、スレッドイベントモニターを実施することにより、特定のテストステップに関連するシステムイベントを追跡する場合がある。スレッドイベントモニターは、オブジェクトの作成、オブジェクトの実行、及びオブジェクトの終了等のためのスレッドを監視し、スレッド識別子及びオブジェクト識別子に基づいて、オブジェクトの作成、実行、及び/又は終了を特定のテストイベントに関連付ける。
【0027】
プロセス400は、メタデータをバックボーンに接続された頂点として割り当てることをさらに含む場合がある(ステップS440)。例えば、システム100は、バックボーンの要素を決定する場合があり、追跡したメタデータを各特定の要素(例えば、各テストステップ)に割り当てる場合がある。例えば、システム100は、時間的関連性(例えば、特定のテストステップの後に発生したイベント)に基づいて、または、別の適当な方法論(例えば、サーバコードに対し、メタデータを追跡するためにネットワークパケットを着色すること等)に基づいて、メタデータを追跡する場合がある。さらに、プロセス400は、頂点間の関係のタイプを識別するためのタグを有向エッジに割り当てる場合がある(ステップS450)。一部の実施形態において、システム100は、物理的または仮想的システム構成要素にインストールされたエージェントから受信したデータに基づいて、有向エッジにタグを割り当てる場合がある。例えば、エージェントは、プロセッサにより実行されたときに、システムに発生したイベントをルールのリストと照合する命令を含む場合がある。イベントが特定のルールに適合しない場合、エージェントは、イベント間におけるタグ関連付けを記録する。例えば、ルールのリストが、テストステップがブラウザの使用を必要とする場合に有向エッジを「使用」としてタグ付けしなければならない使用タグ付けルールを含むものと仮定する。「ブラウザ」という名のオブジェクトを呼び出すテストステップが実行された場合、エージェントは、このオブジェクトの呼び出しをルールのリストと照合し、リスト上の前記使用タグ付けルールに基づいて、有向エッジを「使用」としてタグ付けする場合がある。
【0028】
プロセス400は、データ構造を記憶装置に記憶すること(ステップS460)をさらに含む場合がある。一部の実施形態において、構造化されたデータは、検証装置110における非一時的コンピュータ読み取り可能な記憶媒体、検証レポジトリ130、及び/又は他の装置のような記憶装置に記憶される場合がある。データ点が分類され(ステップS410)、データ構造のバックボーンが割り当てられ(ステップS420)、残りのデータ点が接続され(ステップS430)、メタデータが頂点として割り当てられ(ステップS440)、有向エッジにタグが割り当てられ(ステップS450)、及び、データ構造が記憶された後(ステップS460)、プロセス400は終了する場合がある(ステップS475)。
【0029】
図5は、開示実施形態に合致するDAG500のブロック図の一例である。例えば、DAG500は、特定のテスト実行状態の間に発生した一連のイベントに基づいて相関付けられた、AUTのテスト実行中に取り込まれたデータ点を表している場合がある。この例におけるDAG500は、
図1のシステム100、及び/又はシステム100の種々の具体的構成要素によって管理され、更新され、及び/又は使用されるものとして以下で説明されるが、DAG500を管理し、更新し、及び/又は使用するために、他の適当なシステム、及び装置が使用されてもよい。例えば、検証装置110によって実施されるものとして以下で説明されるプロセスは、検証装置210、検証装置310、及び/又は任意の他の適当な装置によって実施されてもよい。DAG500に関連して実施される種々のプロセスは、機械読み取り可能な記憶媒体に記憶された実行可能命令の形で実施されてもよいし、及び/又は、電子回路により実施されてもよい。
【0030】
図5に示されるように、DAG500は、AUTの1以上の特定のテスト実行に関連するデータを含む場合がある。
図5に示した例では、このデータは、アプリケーションデータ502a(例えば、ビルド番号)、テストデータ(例えば、テストの日付)502b、及び環境データ502c(例えば、オペレーティングシステム、及びブラウザタイプ)に関連するデータ点を含む。DAG500は、DAGにおける頂点の各々についてのアンカーとしての働きをするバックボーン(テストステップ510a、520a、530a、540a、及び550aの集合)をさらに含む。この例では、バックボーンは、AUTのテスト実行中に実施された種々のテストステップからなるが、開示実施形態に合致するDAGは、任意の適当な分類のデータ点をバックボーンとして使用することができる。例えば、バックボーンは、ユーザ動作、記録されたAUTウェブページ、UIオブジェクト、及び/又は任意の他の適当な分類にしたがって構成される場合がある。
【0031】
DAG500のバックボーンは、特定のテスト実行状態の間に発生した一連のイベントに基づいて相関付けられ、したがって、バックボーンは、テストステップ510a、520a、530a、540a、及び550aのうちの様々なものを1つに連結する。
図5に示した例では、テストステップ510aは、テストステップ520aよりも前に発生し、テストステップ520aは、テストステップ530aよりも発生し、テストステップ530aは、テストステップ540aよりも前に発生し、テストステップ540aは、テストステップ550aよりも前に発生した。この例におけるバックボーンの各部分(例えば、各テストステップ)は、テストステップのうちの最初のテストステップ510aからテストステップのうちの最後のテストステップ550aまで種々の有向エッジ(明確化のために有向エッジ660にのみラベルが付されている)によって接続され、有向エッジ(明確化のために有向エッジ560aにのみラベルが付されている)には、頂点間の関係のタイプを識別するタグ(明確化のためにタグ570aにのみラベルが付されている)が付されている。例えば、テストステップ510aは、種々の有向エッジによりテストステップ520a、530a、及び540aに直接連結され、連結の理由、及び/又は作用が、タグに示されている。例えば、テストステップ510aは、テストステップ520a、530a、及び540aから構成され、テストステップ520は、テストステップ530aに先行し、テストステップ530aは、テストステップ540aに先行し、テストステップ540aは、テストステップ550aに先行している。
【0032】
さらに、DAG500における各テストステップは、テスト、及び/又はアプリケーション環境から取り込まれ、特定のテストステップに相関付けられた追加情報をさらに有している。この追加情報は、バックボーンに接続された種々の頂点(明確化のために頂点520b、520c、520d、520e、及び520fのみにラベルが付されている)として割り当てられた。例えば、テストステップ520aは、ブラウザを開くことに関連する。この事例では、ブラウザを開くステップは、ブラウザ(オブジェクト)を使用することを含み、ブラウザは、特定の動作(この事例では、開く)により使用された。したがって、特定のテスト実行状態の間に、ブラウザは、ブラウザの開始関数を呼び出すことによって自動的に開始された。DAG500において、この情報は、AUT、及び環境の観点から種々のテストステップとその後に続くものを連結することによってのみならず、それらのステップの概念的意味を実質的に示すタグによっても、モデル化される。
【0033】
図6は、開示実施形態に合致する、検証入力610の有向非巡回グラフ検証クエリー620への変換の一例である。この例による変換は、
図1のシステム100、及び/又は、システム100の種々の具体的構成要素によって実施されるものとして以下で説明されるが、検証入力の変換には、他の適当なシステム及び装置が使用されてもよい。例えば、検証装置110によって実施されるものとして以下で説明されるプロセスは、検証装置210、検証装置310、及び/又は任意の他の適当な装置によって実施されてもよい。検証入力610の変換に関連して実施される種々のプロセスは、機械読み取り可能な記憶媒体に記憶された実行可能命令の形で実施されてもよいし、及び/又は、電子回路により実施されてもよい。
【0034】
検証装置110は、ユーザに対して表示されるユーザインタフェースを表示装置上に生成する場合がある。ユーザは、検証装置110がどのように問い合わせを受けるかを定義する検証入力を入力することができる。例えば、検証入力は、一連の条件文、質問、または任意の他の適当な入力である場合がある。
図6に示した例では、検証入力610は、単一または複数のAUTの複数回のテスト実行からデータ点を決定することに関連しており、データ点は、ブラウザの開始、"search.com"への移動、HPのタイプイン、searchのクリック、及びその後、サーチ結果リスト中に"HP.com"を得ることからなる種々のテストステップに対応している。さらに、検証入力(例えば、検証入力610)は、ドメイン固有言語(例えば、検証装置110に特化されたコンピュータ言語)を使用してユーザインタフェースに入力されてもよいし、及び/又は、任意の他の入力(例えば、自然言語)を使用してユーザインタフェースに入力されてもよく、こうした検証入力は、検証装置110により、ドメイン固有言語を使用したDAG検証クエリー620(例えば、
図5のDAG500のようなDAGから関連情報を取得することが可能なクエリー)に変換されることができる。一部の実施形態において、ドメイン固有言語は、ビヘイビア駆動開発(BDD: Behavior Driven Development)構文に類似している場合がある。
【0035】
DAG検証クエリー(例えば、DAG検証クエリー620)は、検証レポジトリ130のような検証レポジトリに、検証として記憶される場合がある。検証レポジトリには複数の検証が記憶される場合があり、特定のテスト実行状態に対応するテスト実行に際し、記憶される検証の各々は、テスト実行よりも前、またはテスト実行よりも後の何れかにおいて定義される。例えば、検証(例えば、有向非巡回グラフ検証クエリー)は、AUTの第1の特定のテスト実行状態よりも後、かつAUTの第2の特定のテスト実行状態よりも前に、記憶装置(例えば、検証レポジトリ130)に記憶される場合がある。もし第2の特定のテスト実行状態により、クエリーの結果が第1の特定のテスト実行状態後に得られるものから変化する場合、検証装置110は、表示装置により表示される警告を生成する場合がある。警告は、第1の特定のテスト実行状態後の検証と、第2の特定のテスト実行状態後の検証との間の差に関する情報を含む場合がある。別の例として、検証装置110は、特定の時点で検証を自動的に実行することにより、記憶装置(例えば、検証レポジトリ)における種々の検証のうちの1以上を自動的に実行する場合がある。一部の実施形態において、この特定の時点は、スケジュールに基づいている場合があり、検証装置110(例えば、検証装置110のテスト検証エンジン)は、検証の実行に関する報告を自動的に行う場合がある。
【0036】
図7は、開示実施形態に合致する、テスト実行からテスト検証を分離するための一例によるプロセス700を示すフロー図である。以下において、プロセス700の実行は、
図1のシステム100、及び/又はシステム10の種々の具体的構成要素を参照して説明されるが、プロセス700の少なくとも1つのステップの実行には、他の適当なシステム、及び装置が使用されてもよい。例えば、検証装置110によって実施されるものとして以下で説明されるプロセスは、検証装置210、検証装置310、及び/又は任意の他の適当な装置によって実施されてもよい。プロセス700は、機械読み取り可能な記憶媒体に記憶された実行可能命令の形で実施されてもよいし、及び/又は、電子回路の形で実施されてもよい。
【0037】
プロセス700は、AUTのテスト実行の開始時、または開始付近の時点で開始される場合がある(ステップS705)。プロセス700は、プロセッサにより、AUTのテスト実行中にデータ点を取り込むことを含む場合がある(ステップS710)。上述のように、データ点は、テスト実行、AUT、及びAUTの環境に関連するメタデータを含む場合がある。プロセス700は、プロセッサにより、コードの第1の部分から、データ点の各々を複数のタイプのうちの少なくとも1つに分類するための第1の要求を受信することをさらに含む場合がある(ステップS720)。一部の実施形態において、システム100の構成要素(複数可)は、第1の要求を検証装置110へ送信することができる。例えば、コードの第1の部分がプロセッサによって実施されると、コードの第1の部分は、プロセッサに、第1の要求を検証装置110へ送信させる場合がある。第1の要求の受信に応答し、検証装置110は、プロセッサにより、データ点の各々を複数のタイプのうちの少なくとも1つに分類する場合がある(ステップS730)。例えば、検証装置110は、上記の方法のうちの1以上を使用して、データ点の各々を分類する場合がある。
【0038】
プロセス700は、プロセッサにより、コードの第2の部分から、取り込まれたデータ点の各々にAUTのテスト実行を相関付けるための第2の要求を受信することをさらに含む場合がある(ステップS740)。一部の実施形態において、システム100の構成要素(複数可)は、第2の要求を検証装置110検証装置110へ送信することができる。例えば、コードの第2の部分がプロセッサによって実施されると、コードの第2の部分は、プロセッサに、第2の要求を検証装置110へ送信させる場合がある。第2の要求の受信に応答し、検証装置110は、プロセッサにより、取り込まれたデータ点の各々をAUTのテスト実行と相関付ける場合がある。例えば、データ点は、上記のように(例えば、DAGを生成することにより)相関付けられる場合がある。一部の例において、データ点の相関付けは、プロセッサにより、バックボーンを含むデータ構造を生成し、バックボーンが、複数のタイプのうちの第1のタイプとして分類された種々のデータ点を含み;プロセッサにより、残りのデータ点に関連するタイムスタンプに基づいて残りのデータ点を有向エッジにより接続し、残りのデータ点が、第1のタイプとして分類されなかったデータ点であり;及び、頂点間の関係のタイプを識別するためのタグを有向エッジに割り当てることによって行われる場合がある。データ点の相関付けが完了すると、プロセス700は、終了する場合がある(ステップS765)。
【0039】
AUTの実際の挙動は、相関付けされたデータ点に基づいて検証されることができる。例えば、一部の実施形態において、システム100は、プロセッサにより、コードの第3の部分から、AUTの実際の挙動を検証するための第3の要求を受信する場合があり、第3の要求は、テスト実行を実施するテスト構成要素とは異なる検証構成要素から受信される。例えば、もしテスト実行がクライアント装置120において実施されている場合、第3の要求は、検証装置110の1以上の構成要素から受信される場合がある。言い換えれば、テスト実行を検証から分離して実施することができる。
【0040】
第3の要求の受信に応答し、システム100は、検証レポジトリ130のような検証レポジトリに対してクエリー(問い合わせ)を行い、取り込まれ、相関付けされたデータ点のうちのクエリーに対応する少なくとも一部を取得する場合がある。例えば、システム100は、上で説明したプロセス、及び/又は構成要素のうちの1以上を使用して、検証レポジトリにクエリーを送り、取り込まれ、相関付けされたデータ点のうちのクエリーに対応する少なくとも一部を受信する場合がある。一部の例において、システム100はさらに、取り込まれ、相関付けされたデータ点のうちのクエリーに対応する少なくとも一部の表示を表示装置上に生成する場合がある。例えば、上述のように、システム100は、警告を生成する場合がある。警告は、クライアント装置120に関連する表示装置、及び/又は、任意の他の適当な装置上に表示される場合がある。警告は、クエリーに関連するデータ点を表示する場合がある。
【0041】
図8は、開示実施形態に合致する、一例による機械読み取り可能な記憶媒体800を示すブロック図である。特定の態様において、機械読み取り可能な記憶媒体800は、システム100に関連する記憶装置、検証装置210、検証装置310、及び/又は、任意の他の適当な記憶装置に対応する場合がある。機械読み取り可能な記憶媒体800は、種々の実行可能命令を記憶する如何なる電気的、磁気的、光学的、または他の物理的記憶装置であってもよい。したがって、機械読み取り可能な記憶媒体800は、例えば、メモリ、ストレージ・ドライブ、及び光学ディスク等である場合がある。一部の実施形態において、機械読み取り可能な記憶媒体800は、非一時的(持続性)コンピュータ読み取り可能な記憶媒体である場合があり、ここで、「非一時的」という語は、一時的に伝搬する信号を包含しない。機械読み取り可能な記憶媒体800は、種々の命令を有するようにエンコードされる場合があり、これらの命令は、プロセッサ810によって実行されたときに、開示実施形態に合致する種々の処理を実施する。例えば、機械読み取り可能な記憶媒体800は、
図4のステップS460におけるデータ構造の記憶のようなデータ構造の記憶を管理する処理を実施する種々の命令を含む場合がある。
図8に示した例において、機械読み取り可能な記憶媒体800は、管理命令802、及び更新命令804を含む場合がある。
【0042】
管理命令802は、記憶装置に記憶されたDAG(例えば、データ構造)を管理する機能を果たす場合がある。例えば、管理命令802がプロセッサ810によって実行されると、管理命令802は、プロセッサ810に、AUTの第1のテスト実行に関する種々のテストステップを含むバックボーンを含むデータ構造を管理させる場合がある。一部の例において、バックボーンの各テストステップは、有向エッジにより、テスト実行中に取り込まれたデータ点に接続される場合がある。さらに、バックボーンの各ステップは、データ点に関連するタイムスタンプに基づいて接続される場合がある。一部の例において、データ構造は、バックボーンに接続された種々の頂点をさらに含む場合があり、頂点は、テスト実行に関連するメタデータによってモデル化される。さらに、一部の例において、データ構造は、有向エッジに関連するタグであって、頂点間の関係のタイプを識別するタグを含む場合がある。さらに、一部の例において、データ構造の管理は、データ構造をアクセスするためのクエリー(例えば、AUTの実際の挙動を検証するための検証情報を含むクエリー)の受信、及び、クエリーに対応する情報の送信を含む場合がある。
【0043】
データ構造の管理は、様々な形で実施される場合がある。一部の例において、システム100は、テストが実行されるたびにデータ構造を作成する場合がある。一部の例において、システム100は、データ点間の相関を記憶するための一時データ構造を作成することにより、データ構造を一括処理の形で作成し、及び/又は更新する場合がある。一時データ構造は、データ構造と同じであってもよいし、類似していてもよいし、異なっていてもよい。
【0044】
更新命令804は、AUTの更なるテスト実行に基づいて、データ構造を更新する機能を果たす場合がある。例えば、更新命令804がプロセッサ810によって実行されると、更新命令804は、プロセッサ810に、AUT(及び/又は、異なるAUT)の更なるテスト実行に基づいて(例えば、第2のテスト実行に基づいて)生成された別のDAGを含むようにデータ構造を更新させる場合がある。こうした追加的テスト実行は、当初のデータ構造の作成の後に実施される場合がある。
【0045】
開示例は、テスト実行からテスト検証を切り離すためのシステム、装置、機械読み取り可能な記憶媒体、及び方法を含む場合がある。例示のために、
図1〜
図8に示した種々の構成要素を参照し、特定の例について説明した。しかしながら、例示した構成要素の機能は、重なり合っていてもよく、また、もっと少数または多数の要素、及び構成要素に存在していてもよい。さらに、例示した要素の機能の全部または一部は、共存していてもよいし、複数の地理的に分散された種々の場所に分散されていてもよい。さらに、開示例は、様々な環境で実施されることができ、図示した例に限定されない。
【0046】
さらに、本明細書では、様々な要素を説明するために第1、第2などの語が使用されることがあるが、それらの要素が、この語によって制限されてはならない。むしろ、それらの語は、ある要素を他の要素から区別するためだけに使用されている。
【0047】
さらに、
図1〜
図8に関係して説明された一連の処理は、制限となることを意図したものではない。さらに別の、またはより少数の処理、または処理の組み合わせが使用される場合があり、それらは、開示例の範囲を外れることなく、異なっていてもよい。さらに、開示例に合致する実施形態が、一連の処理を
図1〜
図8に関して説明したもののような何らかの特定の順序で実施する必要は、必ずしもない。したがって、本開示は、単に実施形態の可能な例を説明するものであり、説明した例に対し、種々の変更及び修正が施されてもよい。そのような変更、及び修正は全て、本開示の範囲内に含まれ、添付の特許請求の範囲により保護されることが意図されている。
【国際調査報告】