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

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

▶ アーク - ファイ、エルエルシーの特許一覧

特表2023-537728アプリケーション・クラッシュ・テスト・プラットフォーム
<>
  • 特表-アプリケーション・クラッシュ・テスト・プラットフォーム 図1
  • 特表-アプリケーション・クラッシュ・テスト・プラットフォーム 図2
  • 特表-アプリケーション・クラッシュ・テスト・プラットフォーム 図3
  • 特表-アプリケーション・クラッシュ・テスト・プラットフォーム 図4
  • 特表-アプリケーション・クラッシュ・テスト・プラットフォーム 図5
  • 特表-アプリケーション・クラッシュ・テスト・プラットフォーム 図6
  • 特表-アプリケーション・クラッシュ・テスト・プラットフォーム 図7
  • 特表-アプリケーション・クラッシュ・テスト・プラットフォーム 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-09-05
(54)【発明の名称】アプリケーション・クラッシュ・テスト・プラットフォーム
(51)【国際特許分類】
   G06F 11/36 20060101AFI20230829BHJP
   G06N 20/00 20190101ALI20230829BHJP
【FI】
G06F11/36 188
G06F11/36 184
G06N20/00 130
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023507983
(86)(22)【出願日】2022-04-26
(85)【翻訳文提出日】2023-02-03
(86)【国際出願番号】 US2022026339
(87)【国際公開番号】W WO2022232139
(87)【国際公開日】2022-11-03
(31)【優先権主張番号】63/180,866
(32)【優先日】2021-04-28
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】523039662
【氏名又は名称】アーク - ファイ、エルエルシー
(74)【代理人】
【識別番号】110000855
【氏名又は名称】弁理士法人浅村特許事務所
(72)【発明者】
【氏名】ファン、デニス
【テーマコード(参考)】
5B042
【Fターム(参考)】
5B042HH17
5B042HH49
(57)【要約】
本明細書に記載する例示の実装形態は、提供されるアプリケーションを機械学習アルゴリズムを通してテストするアプリケーション・クラッシュ・テスト・プラットフォームに向けられている。アプリケーションの複数のインスタンスがクラウド・ベースのプラットフォーム上でスポーンされ、機械学習アルゴリズムは、アプリケーションを動作不能にさせるインシデントに到達するまで、インスタンスの各々に入力を提供する。
【特許請求の範囲】
【請求項1】
機械学習アルゴリズムを用いてアプリケーションをテストするための方法であって、
アプリケーションの1つ又は複数のインスタンスを実行することであり、前記1つ又は複数のインスタンスは前記アプリケーションにインシデントを引き起こすための入力を提供するように構成されている前記機械学習アルゴリズムから入力を受け取るように構成されている、実行することと、
前記入力を前記1つ又は複数の実行されたインスタンスに提供するために前記機械学習アルゴリズムを実行することと、
前記1つ又は複数のインスタンスのうちのあるインスタンス中で検出されたインシデントであり、前記1つ又は複数のインスタンスのうちの前記インスタンス中の前記アプリケーションを動作不能にさせたインシデントについて、前記アプリケーションを動作不能にさせた前記インシデントを示す出力を生成することと、を含む、方法。
【請求項2】
前記インシデントはフォールト画面である、請求項1に記載の方法。
【請求項3】
前記出力は前記1つ又は複数のインスタンスのうちの前記インスタンスのビデオを含む、請求項1に記載の方法。
【請求項4】
前記出力は前記1つ又は複数のインスタンスのうちの前記インスタンス中の前記アプリケーションのオーディオを含む、請求項1に記載の方法。
【請求項5】
前記出力は前記1つ又は複数のインスタンスのうちの前記インスタンス中の前記アプリケーションからの触覚フィードバックを含む、請求項1に記載の方法。
【請求項6】
前記出力は前記アプリケーションに関する入力ログを含む、請求項1に記載の方法。
【請求項7】
前記入力は前記アプリケーション上でのテストのために選択されたデバイスに基づいて制限される、請求項1に記載の方法。
【請求項8】
前記入力は前記アプリケーションに送信されたネットワーク・データを含む、請求項1に記載の方法。
【請求項9】
前記インシデントは動作のフリーズである、請求項1に記載の方法。
【請求項10】
前記インシデントは前記アプリケーションのアプリケーション・ログから決定される、請求項1に記載の方法。
【請求項11】
前記インシデントはデバッグ・フックから決定される、請求項1に記載の方法。
【請求項12】
1つ又は複数のプロセッサによって実行されると請求項1から11までのいずれか一項に記載の方法を実行させる命令を格納している、コンピュータ・プログラム。
【請求項13】
請求項1から11までのいずれか一項に記載の方法を実行するように構成されているプロセッサを備える、装置。
【発明の詳細な説明】
【技術分野】
【0001】
この米国特許出願は2021年4月28日に出願された米国特許仮出願第63/180,866号に基づくものであり、その米国特許法第119条(e)に基づく国内優先権の利益を主張し、その開示の全体が参照によって本明細書に組み込まれる。
【0002】
本開示は一般にソフトウェア・アズ・ア・サービス(SaaS:software as a service)・プラットフォームに関し、より詳細には、機械学習を使用してアプリケーション・クラッシュ・テスト用のプラットフォームを支援することに関する。
【背景技術】
【0003】
関連技術において、開発者は多くの場合、バグ、メモリ・フォールト、及びクラッシュがないかアプリケーションをテストするために、品質保証テスターを採用する。そのような品質保証テスターは多くの場合、アプリケーションが特定の条件下でクラッシュするかどうかをテストするために、アプリケーションへの様々な入力を試みて、多くの工数を費やす。
【発明の概要】
【課題を解決するための手段】
【0004】
本明細書に記載する例示の実装形態は、特定の定義可能なクラッシュ又はフォールトがないかアプリケーションをテストするためのアプリケーション・クラッシュ・テスト・プラットフォームを支援するために、機械学習及びクラウド・プラットフォームの進歩を利用する。本明細書に記載する例示の実装形態によって、品質保証テスターはこのプラットフォームを利用して、特定のタイプのクラッシュ、フォールト、又はアプリケーションを動作不能にする他の定義可能なインシデントがないか、アプリケーションをテストすることができる。そのようなインシデントが定義可能であり機械学習アルゴリズムの勝利条件として設定される場合、機械学習アルゴリズムは勝利条件に到達するための試行において仮想環境における入力を支援することができ、このことによってそれらの入力を入力ログに投入して精査することができる。そのような入力としては、限定するものではないが、所望の実装形態に応じて、画面の特定の画素上でのマウスのクリック、キーストローク、ジョイスティックのボタンの押下又はスティックの動き、仮想現実ヘッドセットのヘッド位置座標、などを含み得る。他の例示の実装形態では、品質保証テスターが精査するためにビデオ・リプレイが生成され得る。更に、ビデオ・ゲーム・コンソールなどの特定のタイプのハードウェアの場合、入力及びハードウェアを仮想プラットフォームに関して定義することができ、このことによって品質保証テスターが特定の環境条件下でテストを行うことが可能になる。本明細書に記載する例示の実装形態はクラウド・ベースのプラットフォームに向けられているが、それら例示の実装形態は、所望の実装形態を支援するために、必要であれば論理デバイス又は任意の他のデバイス上で実行することも可能である。
【0005】
本開示の態様は、機械学習アルゴリズムを用いてアプリケーションをテストするための方法であって、アプリケーションの1つ又は複数のインスタンスを(例えばクラウド・ベースのシステム上で)実行することであり、1つ又は複数のインスタンスはアプリケーションにインシデントを引き起こすための入力を提供するように構成されている機械学習アルゴリズムから入力を受けるように構成されている、実行することと、入力を1つ又は複数の実行されたインスタンスに提供するために機械学習アルゴリズムを実行することと、1つ又は複数のインスタンスのうちのあるインスタンス中で(例えば、クラウド・ベースのシステムによって)検出されたインシデントであって、1つ又は複数のインスタンスのうちの上記インスタンス中のアプリケーションを動作不能にさせたインシデントについて、アプリケーションを動作不能にさせた上記インシデントを示す出力を生成することと、を含む方法、を含み得る。
【0006】
本開示の態様は、機械学習アルゴリズムを用いてアプリケーションをテストするためのコンピュータ・プログラムであって、アプリケーションの1つ又は複数のインスタンスを(例えばクラウド・ベースのシステム上で)実行することであり、1つ又は複数のインスタンスはアプリケーションにインシデントを引き起こすための入力を提供するように構成されている機械学習アルゴリズムから入力を受けるように構成されている、実行することと、入力を1つ又は複数の実行されたインスタンスに提供するために機械学習アルゴリズムを実行することと、1つ又は複数のインスタンスのうちのあるインスタンス中で(例えば、クラウド・ベースのシステムによって)検出されたインシデントであって、1つ又は複数のインスタンスのうちの上記インスタンス中のアプリケーションを動作不能にさせたインシデントについて、アプリケーションを動作不能にさせた上記インシデントを示す出力を生成することと、を含む命令を有する、コンピュータ・プログラム、を含み得る。コンピュータ・プログラムは、1つ又は複数のプロセッサによって実行されるように非一時的コンピュータ可読媒体に格納され得る。
【0007】
本開示の態様は、機械学習アルゴリズムを用いてアプリケーションをテストするための装置であって、アプリケーションの1つ又は複数のインスタンスを(例えばクラウド・ベースのシステム上で)実行することであり、1つ又は複数のインスタンスはアプリケーションにインシデントを引き起こすための入力を提供するように構成されている機械学習アルゴリズムから入力を受けるように構成されている、実行することと、入力を1つ又は複数の実行されたインスタンスに提供するために機械学習アルゴリズムを実行することと、1つ又は複数のインスタンスのうちのあるインスタンス中で(例えば、クラウド・ベースのシステムによって)検出されたインシデントであって、1つ又は複数のインスタンスのうちの上記インスタンス中のアプリケーションを動作不能にさせたインシデントについて、アプリケーションを動作不能にさせた上記インシデントを示す出力を生成することと、を含む命令を実行するように構成されているプロセッサを有する、装置、を含み得る。プロセッサは、中央処理装置(CPU:central processing unit)などの当技術分野で知られている任意のプロセッサ、又は、フィールド・プログラマブル・ゲート・アレイ(FPGA:Field Programmable Gate Array)、グラフィック処理ユニット(GPU:graphical processing unit)、テンソル・ユニットなどの、所望の実装形態に従う専用ハードウェアであり得る。
【0008】
本開示の態様は、機械学習アルゴリズムを用いてアプリケーションをテストするためのシステムであって、アプリケーションの1つ又は複数のインスタンスを(例えばクラウド・ベースのシステム上で)実行するための手段であり、1つ又は複数のインスタンスはアプリケーションにインシデントを引き起こすための入力を提供するように構成されている機械学習アルゴリズムから入力を受けるように構成されている、実行するための手段と、入力を1つ又は複数の実行されたインスタンスに提供するために機械学習アルゴリズムを実行するための手段と、1つ又は複数のインスタンスのうちのあるインスタンス中で(例えば、クラウド・ベースのシステムによって)検出されたインシデントであって、1つ又は複数のインスタンスのうちの上記インスタンス中のアプリケーションを動作不能にさせたインシデントについて、アプリケーションを動作不能にさせた上記インシデントを示す出力を生成するための手段と、を含むシステム、を含み得る。
【図面の簡単な説明】
【0009】
図1】本明細書に記載する例示の実装形態が実装され得る例示のシステムを示す図である。
図2】例示の実装形態に係る、クラウド用の例示のサーバ/ストレージ・システムのアーキテクチャを示す図である。
図3】例示の実装形態に係る、アプリケーションに対する受け入れ可能な入力を定義するための例示の入力デバイスのテーブルを示す図である。
図4】例示の実装形態に係る例示のインシデントのテーブルを示す図である。
図5】例示の実装形態に係る、クラウド・ベースのシステムに関する管理情報の実例を示す図である。
図6】例示の実装形態に係る、クラウド・ベースのシステムの例示のフロー図を示す図である。
図7】例示の実装形態に係る、インシデントの出力用の例示のユーザ・インターフェースを示す図である。
図8】例示の実装形態に係る、アプリケーション及びインシデント・テスト用のパラメータを提示するための、例示のユーザ・インターフェースを示す図である。
【発明を実施するための形態】
【0010】
以下の詳細な説明は本願の図及び例示の実装形態の更なる詳細を提供する。図面間で重複する要素の参照符号及び説明は明確にするために省略してある。明細書の全体を通して使用される用語は例として提供されており、限定を行うようには意図されていない。例えば、用語「自動的な」の使用は、本願の実装形態を実施する当業者の所望の実装形態に応じて、実装形態の特定の態様に対するユーザ又は管理者の制御を含む全自動的又は半自動的な実装形態を含み得る。
【0011】
図1は、本明細書に記載する例示の実装形態が実装され得る例示のシステムを示す。例示のシステムにおいて、テスト用アプリケーションをクラウド・プラットフォーム102に送信する、1つ又は複数のクライアント・デバイス101が存在する。クラウド・プラットフォーム102は、アプリケーションを受信し、アプリケーションの複数のインスタンスをスポーンするための仮想マシン又は仮想プラットフォームを生成し、機械学習アルゴリズムによって提供される入力を通して各インスタンス中のアプリケーションを制御するように構成されている、1つ又は複数のサーバ及びストレージ・システムを含み得る。クライアント・デバイス101及びクラウド・プラットフォーム102は、ネットワーク103によって相互接続され得る。ネットワーク103はワイヤレス又は有線接続とすることができ、ローカル・エリア・ネットワーク(LAN:local area network)として又はインターネットを介して支援され得る。
【0012】
図2は、例示の実装形態に係る、クラウド102用の例示のサーバ/ストレージ・システムのアーキテクチャを示す。クラウド102は、1つ又は複数の内部ネットワーク210を通して1つ又は複数のストレージ・システム220を管理する1つ又は複数のサーバ200から構成され得る。内部ネットワーク210は、所望の実装形態に応じて、ストレージ・エリア・ネットワーク(SAN:Storage Area Network)、ワイド・エリア・ネットワーク(WAN:Wide Area Network)、又は他のネットワークなどのネットワークであり得る。
【0013】
1つ又は複数のサーバ200の各々は、I/Oデバイス201と、本明細書に記載するような中央処理装置(CPU)その他などの1つ又は複数の物理的プロセッサの形態をとり得るプロセッサ202と、メモリ203と、ネットワーク・インターフェース204と、を含み得る。メモリ203は、ストリーム・ブロードキャスト・システムからリアル・タイムで処理されるライブ・ブロードキャスト・ストリーミング・データを取り込むキャッシュ・メモリと、プロセッサ202にサーバ200に関するアルゴリズムを実行するための命令をロードするための他の非一時的メモリと、を含み得る。例示の実装形態では、メモリ203はソリッド・ステート・デバイス(SSD:solid state device)などのフラッシュ・メモリの形態であり得るが、所望の実装形態に応じて、ハード・ディスク・ドライブ(HDD:hard disk drive)又は安価なディスクによる冗長アレイ(RAID:redundant array of inexpensive disks)などの、他の実装形態を利用してもよい。サーバ200は1つ又は複数のストレージ・システム220と対話することもでき、それらの各々は、I/Oデバイス221と、1つ又は複数の物理的プロセッサの形態をとり得るストレージ制御装置222と、ストレージ・デバイス223と、ネットワーク・インターフェース224と、を含み得る。例示の実装形態では、ストリーム・ブロードキャスト・システムから送信されメモリ203において管理されるデータは、機械学習アルゴリズム用のデータベースにおいて使用されることになる1つ又は複数のストレージ・システム220にデステージされ得る。
【0014】
1つ又は複数のストレージ・システム220は、機械学習アルゴリズム用のデータベースの役割を果たすプールとして構成され得る。ストレージ制御装置222は、プール内で使用されるように又は論理ボリューム内で使用されるようにストレージ・デバイス223からのデータを提供することによって、ストレージ・システム220内のデータを管理するように構成されている。
【0015】
所望の実装形態に応じて、プロセッサ202は、1つ若しくは複数の、グラフィック処理ユニットによる汎用コンピューティング(GPGPU:general purpose computing on graphical processing unit)、テンソル・ユニット、ストリーミング・プロセッサ、又は、例示の実装形態に従いデータに対して機械学習アルゴリズム処理を実行するように特定的に構成されている任意の他の種類の専用ハードウェア・プロセッサの形態である。そのような専用ハードウェア・プロセッサはまた、機械学習アルゴリズムが本明細書に記載する例示の実装形態のレイテンシ又はリアル・タイム要件を満たすために必要な処理能力を支援するために、クラスターとして構成されてもよい。そのような例示の実装形態では、例示の実装形態の特定の機械学習アルゴリズムを実行するように構成されている専用ハードウェアを利用することによって、プラットフォームがクライアント・デバイスに所望の時間枠の中でリプレイ又は入力ログを提供することを保証するのを助けることができる。他の例示の実装形態では、プロセッサ202は、所望の実装形態に従って、中央処理装置(CPU)などの汎用ハードウェア・プロセッサ又はクラウド環境から割り当てられたCPUのプールの形態であり得る。
【0016】
例示の実装形態では、プロセッサ202は、アプリケーションの1つ又は複数のインスタンスを実行することであって、1つ又は複数のインスタンスは機械学習アルゴリズムから入力を受けるように構成されている、実行することと、アプリケーションの1つ又は複数のインスタンスを実行することであって、1つ又は複数のインスタンスは機械学習アルゴリズムから入力を受けるように構成されている、実行することと、入力を1つ又は複数の実行されたインスタンスに提供するために機械学習アルゴリズムを実行することと、1つ又は複数のインスタンスのうちのあるインスタンス中で検出されたインシデントであって、1つ又は複数のインスタンスのうちの上記インスタンス中のアプリケーションを動作不能にさせたインシデントについて、アプリケーションを動作不能にさせた上記インシデントを示す出力を生成することと、を含む、機械学習アルゴリズムを用いてアプリケーションをテストするための方法又は命令を実行し得る。
【0017】
所望の実装形態に応じて、そのようなインシデントはフォールト画面であり得る。フォールト画面は、システム又はアプリケーションのエラーが生じた場合に基礎となるオペレーティング・システム又はアプリケーションによって表示される、任意の種類のエラー画面であり得る。そのようなフォールト画面は、当技術分野で知られているように、ハードウェアの不具合、プロセスの予期しない終了、システムのクラッシュなどが生じたときに生成される。そのようなフォールト画面は形態が一貫していることが当技術分野ではよく知られており、したがって任意のオブジェクト検出機械学習アルゴリズムを介するスクリーンショットの特徴抽出によって(例えば、閾値時間期間が過ぎても変化しない一貫した背景色及び重ねられたテキストと関連付けられる特徴を検出することによって)、又は、インスタンスのスクリーンショット/ビデオから特定のフォールト画面を検出し機械学習アルゴリズムにフィードバックを提供するカスタムの検出アルゴリズムを介して、容易に検出することができる。当業者は、所望の実装形態に従う所望のフォールト画面を検出するように機械学習アルゴリズムを構成するために、機械学習アルゴリズムを検出されるべき所望のフォールト画面に対して訓練することができる。フォールト画面の実例としては、限定するものではないが、ブルー・スクリーン(blue screen of death)、ブラック・スクリーン(black screen of death)、他の同様のスクリーン(screen of death)、ゲーム・アプリケーションのキル・スクリーン、ハードウェアのエラー画面、などを挙げることができる。
【0018】
所望の実装形態に応じて、出力は、1つ又は複数のインスタンスのうちの上記インスタンスのビデオを含み得る。そのようなビデオは、当技術分野で知られているような任意の所望の実装形態に従って生成され得る。例えば、インスタンスは、ある閾値時間期間の間の又は特定の量のメモリが消費されるまでの、インシデントの直近の時間期間をキャッシュするように構成されている、当技術分野で知られているような画面/ビデオ記録アプリケーションと共に実行され得る。ビデオはまた蓄積されたスクリーンショットから編集することもでき、その場合スクリーンショットは、所望の実装形態に従う任意の所望のフレームレートで取得される。更に、専用のリソースが必要な場合、スクリーンショット/ビデオを所望の実装形態に従う専用の機械又は他のものによって(例えば、ビデオ・スプリッタを介してあるサーバからスクリーンショット/ビデオ処理専用の別のサーバに)記録又は処理することができる。
【0019】
所望の実装形態に応じて、出力は、1つ又は複数のインスタンスのうちの上記インスタンスのオーディオを含み得る。そのようなオーディオは、当技術分野で知られているような任意の所望の実装形態に従って生成され得る。例えば、インスタンスは、ある閾値時間期間の間の又は特定の量のメモリが消費されるまでの、インシデントの直近の時間期間のオーディオを記録するように構成されている、当技術分野で知られているようなオーディオ記録アプリケーションと共に実行され得る。
【0020】
所望の実装形態に応じて、出力は、1つ又は複数のインスタンスのうちの上記インスタンス中のアプリケーションからの触覚フィードバックを含み得る。そのような触覚は、当技術分野で知られているような任意の所望の実装形態に従って生成され得る。例えば、アプリケーションを触覚フィードバックを与えるように構成されているデバイス(例えば、手袋、椅子、等)と関連付けることができ、そのようなデバイスに宛てられているアプリケーションからの制御信号を、記録及び所望の閾値に照らして分析することができる。
【0021】
所望の実装形態に応じて、出力は、アプリケーションに関する入力ログを含み得る。例えば、インスタンスを、所望の実装形態に従って、例えばキーストローク・ロガー、マウス・ロギング・アプリケーション、入力レコーダなどの、入力ログを出力するように構成可能な検出アプリケーションと並行して実行することができる。別の例示の実装形態では、任意の所望の実装形態を通して、機械学習アルゴリズムによって提供される入力を、所望のフォーマットでログ・ファイルに格納することができる。
【0022】
所望の実装形態に応じて、入力は、アプリケーション上でテストされるように選択されたデバイスに基づいて制限され得る。例えば、入力デバイスがジョイスティック又はゲーム・コントローラである場合、特定の入力(例えば同時の左右方向)は物理的に可能でない場合があり、したがって制限される。入力の制限を使用して、異なるタイプの入力デバイス(例えば、2ボタン・マウス対3ボタン・マウス)を区別して、あるデバイスからの入力を別のデバイスが入力を提供中であるときに拒絶すること(例えば、ボタン入力に対する声の優先)、利用可能なデバイス接続に基づいて複数のデバイスからの複数の入力をテストすること、などが可能である。更なる詳細が図3に関連して提供される。
【0023】
所望の実装形態に応じて、入力は、アプリケーションに送信されるネットワーク・データを含み得る。ネットワーク・データは、ネットワーク(例えば、インターネット、ローカル・エリア・ネットワーク、セルラー、等)を介してアプリケーションに送信される任意のデータを含み得る。そのような例示の実装形態では、アプリケーションは例えば、所望の実装形態に従って、インターネットから入力を受け取るように構成されているモバイル・デバイス・アプリケーション、複数のデバイスから入力を受けるように構成可能なルータ・アプリケーション、サーバから命令を受信するように構成されているエッジ・デバイス用のアプリケーション、コンピュータ・アプリケーションへのサーバ入力、などであり得る。そのようなネットワーク・データは、アプリケーションとのネットワーク通信をシミュレートするために任意の所望のプロトコル(例えば、TCP/IP、UDP、等)に従って送信されるパケットを含み得る。そのような例示の実装形態では、機械学習アルゴリズムは、所望の実装形態に従って、そのようなネットワーク・データを入力としてシミュレートするように構成され得る。
【0024】
所望の実装形態に応じて、インシデントは動作のフリーズであり得る。インシデントを検出するために、任意の動作のフリーズを使用することができる。動作のフリーズは、所望の実装形態に従って、例えば限定するものではないが無限ループ、画面のフリーズなどの、アプリケーションをロックさせ応答不能にするインシデントを含む。そのようなインシデントは、機械学習アルゴリズムによって特徴抽出若しくは任意の所望の実装形態に従う他の方法を介して、又は、機械学習アルゴリズムへのフィードバックを提供するように構成されている別個の検出アプリケーションを介して、検出され得る。例えば、画面のフリーズは、スクリーンショット検出機能が閾値時間期間を超えて入力が提供されているにも関わらず同じスクリーンショットを検出した場合に検出することができ、このことは、機械学習アルゴリズムによって又は別個のスクリーンショット検出アプリケーションによって検出され得る。無限ループは、同様の実装形態に基づいて、機械学習アルゴリズム又は別個のアプリケーションのいずれかによって、入力に対して応答のないことに基づいて同様に検出可能である。
【0025】
所望の実装形態に応じて、インシデントはアプリケーションのアプリケーション・ログから決定され得る。基礎となるアプリケーションに応じて、アプリケーションによっては、機械学習アルゴリズムの勝利条件として使用可能な、エラー・ハンドラ、例外ハンドラなどのためのそれら自体のアプリケーション・ログを生成し得る。例えば、アプリケーションがエラー又は例外に応答してアプリケーション・ログの生成だけを行う場合、そのようなアプリケーション・ログの生成は、あるインシデントが発生したという機械学習アルゴリズムへのフィードバックとして使用され得る。別の例示の実装形態では、アプリケーションは、アプリケーションと関連付けられる特定のメトリックを記録及び出力するために、一貫したアプリケーション・ログを生成する。そのような例示の実装形態では、機械学習アルゴリズムによってそのようなアプリケーション・ログを読み込んで、インシデントを示すと考えられるアプリケーション・ログ内の(例えば、ユーザが指定した)特定のメトリックに基づいて、インシデントが発生したかどうかを判定することができる。例えば、CPU使用量が閾値を上回った場合、CPU使用量を記録するアプリケーション・ログを使用して、インシデントが発生したことを示すことができる。
【0026】
所望の実装形態に応じて、インシデントはデバッグ・フックから決定され得る。いくつかの例示の実装形態では、ユーザが、アプリケーションの特定のランタイム・ラインにおいてコード若しくは実行を挿入すること、又は、変数値を読み取るための分析のためにアプリケーションに関する動作をインターセプトすることを望む場合がある。デバッグ・フック(例えば、変数値、エラー・ハンドラ、等)の出力は、所望の実装形態に従って定義されるようなインシデントを検出するためのフィードバックとして使用され得る。
【0027】
インシデントは機械学習アルゴリズムによって検出されるものとして記載されているが、他の検出アプリケーションを使用することができ、そのような検出アプリケーションは、所望の実装形態に従って、インシデントが発生したことを機械学習アルゴリズムに単に知らせることが可能である。例えば、検出アプリケーションは、機械学習アルゴリズムの負担が軽減されるようにアプリケーションの複数のインスタンスにわたって実行することができ、所望のインシデントを検出するようにプログラムすることができる。
【0028】
本明細書に記載する例示の実装形態はクラウド・ベースの実装形態に向けられているが、それらはまた、ユーザのユーザ・デバイス又はマイクロサービスにも拡張可能である。ユーザは例えば、本明細書中の例示の実装形態を、専用ハードウェアと図2に示すようなコンピュータ環境とを有するマイクロサービス上にローカルに実装してもよく、これらのモデルはクラウド配信を介してマイクロサービスにロードされる。他の例示の実装形態では、それは携帯電話又はラップトップなどのローカルのユーザ・デバイスへも容易に搭載され得る。
【0029】
図3は、例示の実装形態に係る、アプリケーションに対する受け入れ可能な入力を定義するための例示の入力デバイスのテーブルを示す。例示の実装形態では、いくつかのアプリケーションは、特定のタイプの入力だけが許可されている環境で動作し得る。例えば、ドキュメント・ビューワ・アプリケーションは、キーボード入力、タッチ入力、及びマウス入力を許可する場合があるが、必ずしも音声入力には対応していない場合がある。別の実例では、ビデオ・ゲーム・コンソールは、特定の周辺デバイス(例えば、ジョイスティック、コントローラ、ヒットボックス、等)からの入力しか受け付けない場合があり、その設定によって、特定のタイプの入力が元々無効にされている場合がある(例えば、ジョイスティックでは同時の左/右入力はできない、コンソールは特定の方向入力及びボタン入力しか許可しない、等)。この入力デバイス・テーブルは、環境又はアプリケーション構成をシミュレートするために、アプリケーションが利用できる入力のタイプを制限するように機械学習アルゴリズムを構成するために使用される。入力は所望の実装形態に従い任意の方法で提供され得る。例えば、所望の実装形態に従い、入力をシミュレートするためのソフトウェア・フックを使用することによって、入力を提供するためのエミュレータによって、又はドライバ入力を介して、ソフトウェア内で入力をシミュレートすることができる。所望であれば、ロボット、又はハードウェア上で物理的入力を提供するための特別なハードウェアなどの、物理的な入力の実装形態を利用することができる。例示の実装形態では、特定の入力/GUI要素と直接対話するために、画面上を視覚的にだけでなくコードにわたっても移動する(例えば階層ビューなど)、仮想デバッグ・フックを使用することができる。そのような例示の実装形態では、デバッグ・フックは、アプリケーションのコード又は実行の分析及び挿入のためにその動作をインターセプト可能なプログラムを含み得る。1つの実例は、デバッグ・フックを、コードを実行するための特定のラインで停止するように、変数の値を読み取るためのラインで停止するように、又はエラー・ハンドラなどの特定のラインの実行を待機するように、定義することである。
【0030】
テスト中の基礎となるアプリケーションのデバイスの接続ポートに適合させるために、入力デバイスを、あるタイプの入力と関連付けることもできる。例えば、ゲーム・コンソールは、2つのUSBポート及び2つのジョイスティック入力ポートしか有さない場合がある。この場合、テストのためにデバイスを選択するとき、テスト用のユーザ・インターフェースを介して、最大で2つのUSB入力デバイス及び2つのジョイスティック・デバイスが選択できる。
【0031】
別の例示の実装形態では、オーディオ記録を利用するのとは対照的に、テキスト入力(例えば「照明を点ける」というテキスト入力)が使用されるような、音声認識への直接的なフックが存在し得る。別の例示の実装形態では、オーディオ記録はまた、(例えば、騒音の多い環境又は特定の周波数をテストするために)まだテキストに翻訳されていないオーディオを入力するためにも使用され得る。入力はまた、所望の実装形態に従って、例えば全地球測位衛星(GPS:global positioning satellite)、ジャイロスコープ測定値、位置情報などの、センサのデータも含み得る。
【0032】
図4は、例示の実装形態に係る例示のインシデントのテーブルを示す。インシデント・テーブルには、アプリケーションを動作不能にするインシデントのタイプ及びそのようなインシデントを定義する条件が定義されている。例えば、フォールト画面が出現するとフォールト・インシデントが検出される。機械学習アルゴリズムはそのような定義を使用して、そのようなインシデントを発生させるための勝利又は標的条件を決定することができる。検出はスクリーンショット・ベースであってもよく、その場合、特定のフレーム又は画面に到達すると、次いで図4に示すように機械学習アルゴリズムが満たすべき条件が決定される。しかしながら、利用可能であればスクリーンショット以外の他の入力も使用することができ、本開示はこれらに限定されない。例えば、ログ、テキスト、及びコードも入力として検出可能である。例示の実装形態では、(例えば、変数の値がヌルであるかどうかを検出する)検出用の入力として、デバッグ・フックを使用することもできる。アプリケーションの実行と並行してコードが分析に利用できる場合、コード追跡を利用することもできる。更に、動作不能になっているアプリケーションを示す特定の勝利条件を検出するために、アプリケーション自体によって又はアプリケーションのコンパイラによって出力されるログも、リアル・タイムで利用することができる。
【0033】
例えば、ゲームなどのいくつかのアプリケーションは、それら自体の定義可能なインシデントを有し得る。プラットフォーム・ゲームのある実例では、壁の中で動けなくなっており可能な全ての入力に関わらず移動することのできないプレイヤーのキャラクターを、可能な全ての入力に関わらず、同じフレームのセットの観察から繰り返し検出することができる。コード追跡に基づいて勝利条件を設定する別の手法は、限定するものではないが、プレイヤーのキャラクター座標が壁の座標と重なるかどうか、キャラクター座標が何らかの限界をトリガする又は上回る(例えば、ゲーム画面の境界線を越える)かどうかを検出することを含み得る。別の例示の実装形態では、キャラクター座標に関する例外を返すデバッグ・フックを利用することもできる。
【0034】
所望の実装形態に応じて、画面ベースではない他の条件も利用され得る。例えば、別のタイプのインシデントは、所望の実装形態に従って、アプリケーションが環境が許容するよりも多くのランダム・アクセス・メモリ(RAM:random access memory)を消費するかどうか、基礎となる中央処理装置(CPU)においてデッドロックが発生するかどうか、電力消費が閾値を上回るかどうか、レイテンシ又は入力レイテンシが閾値を上回るかどうか、などであり得る。
【0035】
インシデントは様々な要素に基づいて、例えば、出力ログ、スタック・トレース、エラー・コード、例外、特定的に定義されたエラー、及び/又は、内部ログ中にエラー若しくは例外がないかアプリケーションをリッスンするように構成されているデバッグ・フックから、定義され得る。所望の実装形態に応じて、そのような要素は、ストレージ・システム、ハード・ディスク・ドライブ、又は他の媒体格納されたファイルなどの、別個のエンティティであり得る。そのような要素はまた、所望の実装形態に応じて、アプリケーション自体によってだけでなくサード・パーティのアプリケーション(例えば、オペレーティング・システム固有のイベント・ログ)によっても作成される、コンピレーションであり得る。
【0036】
勝利又は標的条件として他のインシデントを利用することもでき、及び本開示はそれらに特に限定されない。1つの実例はデバイスのリブートの検出を含み得るが、その理由は、デバイスによってはフォールト画面を有さず、カーネル違反に応答して単にリブートを実行する場合があるからである。別の実例は、特定のオーディオ・フィードバック(例えば、音声認識アプリケーションの場合の「すみません理解できませんでした」)、又は、カーネルのクラッシュに起因してオーディオ出力がその直前のバイトを無限にループするときを含み得る。他のインシデントはまた、限定するものではないが、連続的なCPU使用、電力変動、電力引き込みのレベル、及び応答のないコントロールも含み得る。所望の実装形態に応じて、インシデント検出は、インシデント検出に関する所望のメトリックの測定を行う別個のスタンドアロンのプログラム(例えば、CPU使用量をモニタし機械学習アルゴリズムに測定値を供給するモニタリング・アプリケーション)であり得る。
【0037】
本明細書に記載する例示の実装形態はまた、所望の実装形態に従って、機械間の相互運用性をテストするように拡張され得る。そのような実例は、所望の実装形態に従って、レジリエンシーを判定するために1つの機械に対して複数の機械を使用して分散型サービス拒否(DDoS:distributed denial of service)攻撃を実行すること、テキスト・メッセージを介してあるモバイル・デバイスから単一のモバイル・デバイスへと、その標的となる単一のモバイル・デバイスを動作不能にさせるためのコードを送ること、パケット・リレー・アタックをシミュレートすること、などを含み得る。そのような例示の実装形態では、入力システム及びモニタリング・システムは、所望の実装形態に従って、スイッチ、ネットワーク、又は何らかの他のハブを介して通信する、異なる機械上に存在する別個のエンティティとしてインスタンス化され得る。
【0038】
アプリケーションの基礎となるプラットフォーム/物理的ハードウェアに応じて、物理的状態もまた勝利又は標的条件となり得る。例えば、解消されずにいつまでも振動しているスマートフォンの検出を条件として使用することができる。ハード・ディスク・ドライブ・プラッタのヘッド、又は任意の他のロボット・アーム、又は機械的部品を有する他のエッジ・デバイス(例えば、ガレージ扉、センサ、等)の位置がずれることもまた、別のインシデントとなり得る。ホログラフ実装形態を含む別の実例では、ホログラフへの出力に基づいて設定される条件も利用することができる。所望の実装形態を支援するために、インシデント状態の非画面ハードウェア表現(例えば、自動車又はエレベータ内でトリガされる特定のLED)を利用してもよい。不正確なクロック、リズムのある様式で明滅するLED、モールス符号などのインシデントを示すために、タイミング・ベースの表現を使用することもできる。更に、想定されていた状態又は出力の欠落もまた、インシデントと見なされ得る(例えば、想定されるオーディオ出力を生成しないスピーカ)。
【0039】
勝利又は標的条件として使用されることになるインシデントを、特定のメモリ消費レベル(例えば、アプリケーションがRAMを1GB超又はCPUを100%消費する)に向けることもできる。
【0040】
無限ループもインシデントとして使用され得る。実例は、閾値を超えて繰り返される同じ出力フレームの繰り返しを含み得る。そのような実装形態は、所望の実装形態を支援するように修正することができる。例えばゲームにおいて、プレイヤーのキャラクターが発生させる、連続的にループする無限コンボが存在し得る。別の実例では、ポップアップ・ダイアログに対して「Ok」をクリックした結果同じポップアップ・ダイアログが再び現れることがインシデントとなり得る。他の例示の実装形態では、基礎となるアプリケーションに応じて、例えば無限オーディオ・ループ、無限デバイス状態ループなどの他の無限ループが、他の方法を介して検出され得る。
【0041】
他のインシデントは、セグメンテーション違反若しくはスタック・オーバーフローなどのテスト中のアプリケーションによって生成される例外、ブルー・スクリーン若しくは任意の他のカーネルのクラッシュ、入力の誤解釈/喪失(例えば、マウスがカーソルを画面の下半分でしか移動させることができない、若しくは入力が全く機能していない)、又は、サード・パーティのアプリケーション(例えばエラー・レポーター)からか若しくはアプリケーション内のダイアログ・ボックスを介するかのいずれかである、アプリケーション固有のエラー・ボックス/メッセージを更に含み得る。インシデントはまた、想定される要素と対話できないこと、又はプログラムを終了できないことも含み得る。更に、そのようなアプリケーションはまた、所望の実装形態に従って、仮想マシン又はカーネルを介してもテストされ得る。
【0042】
図5は、例示の実装形態に係る、クラウド・ベースのシステムに関する管理情報の実例を示す。そのような管理情報は、特定のアプリケーションと関連付けられたアプリケーション識別子(ID:identifier)、アプリケーションをテストするためにユーザが選択したインシデントのタイプ、アプリケーションのハードウェア/ソフトウェア/入力環境の構成設定、及びリプレイ入力の出力が宛てられているユーザのユーザIDを含み得る。
【0043】
図6は、例示の実装形態に係る、クラウド・ベースのシステムの例示のフロー図を示す。まず、クラウド・ベースのシステムは、601においてユーザから、テストすべきインシデントのタイプ、環境定義、入力デバイス制限などといった特定のパラメータと共に、テスト用アプリケーションを受信する。602において、指定されたパラメータに従ってアプリケーションの複数のインスタンスがスポーンされる。
【0044】
603において、パラメータにおいて指定されたタイプのインシデントに到達する目的で、機械学習アルゴリズムによって複数のインスタンスの各々に入力を提供する。例示の実装形態では、畳み込みニューラル・ネットワーク(CNN:Convolutional Neural Network)などのニューラル・ネットワーク又は教師なし学習などの他の機械学習実装形態を使用して、スクリーンショット、メトリック、ログ、オーディオ、及び/又はアプリケーションの他の入力を、提供される入力に基づいてフレーム単位又は時間ステップの様式で分析することができるが、これはそのような機械学習アルゴリズムが、フォールト画面などの特定の画面、並びに/又は、付随するメトリック、ログ、オーディオ、及び/若しくは他の入力を理解するのに適していることによる。しかしながら、所望の実装形態に従って他の機械学習アルゴリズムを利用することができ、本開示はこれらに限定されない。
【0045】
604において、機械学習アルゴリズムは、インシデントが検出されるまでインスタンスへの入力の提供を継続することになる。その場合(はい)、次いで605においてアプリケーション状態及び入力をログとして出力することができ、この結果ユーザは、インシデントを再現するために使用された入力を見ることができる。所望の実装形態に応じて、出力は、限定するものではないが、蓄積されたスクリーンショットに基づくビデオ、ユーザ・デバイス又はユーザ・アプリケーション上でのリプレイのために実行され得る入力ログ、オーディオ、GPS、ジャイロスコープの測定値、機械又はインシデントの結果としてのプロセスの状態を記述した出力ログなどの、任意の所望の形態であり得る。更なる実例が図7に関連して提供される。ログには入力の他にインスタンスの任意の他の態様も含めることができ、本開示はこれらに限定されない。
【0046】
機械学習アルゴリズムを構築及び訓練するためのいくつかの手法が存在する。例示の実装形態では、テスト中のアプリケーション上で教師なし学習を利用することができる。教師なし学習アルゴリズムは、アプリケーションに入力を提供するように構成することができ、テストの所望のインシデント(例えば、フォールト画面、入力の喪失、例外、エラー・コード、等)を発生させることに対して報酬が与えられる。別の例示の実装形態では教師あり学習を利用することもでき、その場合教師あり学習アルゴリズムは、アプリケーション開発者が知っている既知のインシデントを発生させる入力に対して訓練される。スクリーンショット・ベースの実装形態の場合、テスト中のインスタンスのスクリーンショットをモニタするためにCNNを適用することができ、このCNNは、スクリーンショットから抽出された特徴に基づいてインシデントを引き起こすための適切な入力を決定するように訓練され得る。所望の実装形態に従って、テストされるアプリケーションの既知のインシデントに関する対応する入力ログを用いて又はそれ以外で、インシデントの以前のスクリーンショットに対してCNNを訓練することができる。別の例示の実装形態では、機械学習アルゴリズムを敵対的生成ネットワーク(GAN:Generative adversarial network)を介して構築することができ、この敵対的ネットワークは、入力ネットワークから提供される入力に応答したインシデントがないかのチェックを試みる。
【0047】
図7は、例示の実装形態に係る、インシデントの出力用の例示のユーザ・インターフェースを示す。ある実例では、ユーザは、クラウド・ベースのシステムによって提供されるものとして提供されたアプリケーションに関する、インシデントのリプレイを見ることができる。そのような出力は、インターフェース702に示されているような、インシデントの最終スクリーンショット、検出されたインシデントのタイプ、アプリケーション及び環境のパラメータ、入力及び出力ログ、並びにアプリケーションのビデオ・リプレイを含み得る。所望の実装形態に応じて、出力を、音声認識ソフトウェアなどのオーディオ・ベースのアプリケーションに関する又は単にオーディオ出力を提供するアプリケーションに関する、オーディオ・フィードバックの形態とすることもできる。更なる情報のために、CPU、メモリ、GPU、温度、電力消費、ネットワーク利用、レイテンシなどと関連付けられたメトリックなどの、プロセス/機械のメトリックも提供され得る。所望の実装形態及びアプリケーションの基礎となるプラットフォームに従って他の出力を利用することができ、本開示はこれらに限定されない。例えば、触覚システムに向けられているアプリケーションは基礎となる触覚出力のリプレイも含むことができ、タイプの異なる音声、触覚、嗅覚、味覚、又は光の出力を含むシステムに向けられているアプリケーションもまた、対応する出力を提供するように構成することができる。リプレイに関する他の出力はまた、(例えば、カメラ、深度カメラ、等からの検出に基づく)位置ベースの入力も含むことができ、GPS測定値、高度計測定値、位置測定値なども利用することができる。更に、本明細書に記載する例示の実装形態はまた、所望の実装形態に従って、基礎となる入力信号を、又は、アプリケーションをその基礎となるプラットフォーム上で支援するための複数のタイプの入力の任意の組合せ、例えば、電磁信号、光信号、コンピュータ視覚アプリケーション用のLiDAR又は無線信号、レーダ・ベースのアプリケーション用の無線信号、ソナー、偏光/光配向などの任意の組合せを、取り込むようにも構成され得る。入力のそのような組合せは、テストされるべき基礎となるアプリケーション及びプラットフォームに基づいて決定され得る。ネットワーク化された/ネットワーク・ベースのアプリケーションの場合、シミュレートされたネットワーク・データ(例えば、パケット、トラフィック・データ、等)も、入力として使用することができる。
【0048】
図8は、例示の実装形態に係る、アプリケーション及びインシデント・テスト用の対応するパラメータを提示するための、例示のユーザ・インターフェースを示す。インターフェースは、ユーザ・デバイス又はユーザ・アカウントから提示されることになるアプリケーションの選択1702、アプリケーションに関して指定すべき任意の初期設定又は環境条件1703、アプリケーションについて許可される入力デバイスのセット1705、及びテストすべきインシデントのタイプ1706を含み得る。情報が選択されると、ユーザはアプリケーション及びパラメータを、1707で示すようなクラウド・システムに登録することができる。所望の実装形態に従って、限定するものではないが動作のフリーズ、例外、エラー・コード、及びスタック・トレースなどの、事前に定義されたインシデントを含めることもできる。
【0049】
詳細な説明のいくつかの部分は、コンピュータ内の動作のアルゴリズム及びシンボル表現の観点から提示されている。これらのアルゴリズム記述及びシンボル表現は、データ処理技術の当業者が自身の新技術の本質を他の当業者に伝えるために使用する手段である。アルゴリズムは所望の最終状態又は結果をもたらす一連の定義されたステップである。例示の実装形態では、実行されるステップは、具体的な結果を達成するために具体的な量の物理的操作を必要とする。
【0050】
そうではないと明確に述べられていない限り、本考察から明らかなように、説明の全体を通して、「処理する」、「演算する」、「計算する」、「決定する」、「表示する」などといった用語を利用する考察は、コンピュータ・システムのレジスタ及びメモリ内の物理(電子)量として表現されるデータ及びメモリを、コンピュータ・システムのメモリ又はレジスタ又は他の情報記憶、伝送、若しくは表示デバイス内の物流量として同様に表現される他のデータへと操作及び変換する、コンピュータ・システム又は他の情報処理デバイスの動作及び処理を含み得ることが諒解される。
【0051】
例示の実装形態はまた、本明細書中の動作を実行するための装置にも関する。この装置は要求される目的のために特別に構築され得るか、又は、1つ若しくは複数のコンピュータ・プログラムによって選択的に起動若しくは再構成される、1つ若しくは複数の汎用コンピュータを含み得る。そのようなコンピュータ・プログラムは、コンピュータ可読ストレージ媒体又はコンピュータ可読信号媒体などのコンピュータ可読媒体に格納され得る。コンピュータ可読ストレージ媒体は、限定するものではないが、光学ディスク、磁気ディスク、読み出し専用メモリ、ランダム・アクセス・メモリ、ソリッド・ステート・デバイス及びドライブ、又は電子情報の格納に適した任意の他のタイプの有形若しくは非一時的媒体などの、有形媒体を含み得る。コンピュータ可読信号媒体は搬送波などの媒体を含み得る。本明細書に提示するアルゴリズム及びディスプレイは、どのような特定のコンピュータ又は他の装置とも本来的な関連を有さない。コンピュータ・プログラムは、所望の実装形態の動作を実行する命令を含む、純粋なソフトウェア実装形態を含み得る。
【0052】
本明細書の実例に従って様々な汎用システムをプログラム及びモジュールと一緒に使用してもよく、又は、所望の方法のステップの実行により特化した装置を構築するのが便利な場合もある。更に、例示の実装形態は、記載にあたってどのような特定のプログラミング言語も参照していない。本明細書に記載する例示の実装形態の教示を実装するために、様々なプログラム言語を使用できることが諒解されるであろう。プログラミング言語の命令は、1つ又は複数の処理デバイス、例えば、中央処理装置(CPU)、プロセッサ、又は制御装置によって実行され得る。
【0053】
当技術分野で知られているように、上記した動作は、ハードウェア、ソフトウェア、又はソフトウェアとハードウェアの何らかの組合せによって実行され得る。例示の実装形態の様々な態様は回路及び論理デバイス(ハードウェア)を使用して実装され得るが、一方で、機械可読媒体(ソフトウェア)に格納された命令を使用して他の態様を実装することができ、この命令はプロセッサによって実行された場合、プロセッサに本願の実装形態を実施するための方法を実行させることになる。更に、本願のいくつかの例示の実装形態はハードウェアにおいてのみ実行され得るが、他の例示の実装形態はソフトウェアにおいてのみ実行され得る。また更に、記載されている様々な機能は、単一のユニットにおいて実行することができるか、又は、任意の数の手法でいくつかの構成要素にわたって分散させることができる。ソフトウェアによって実行される場合、方法は、汎用コンピュータなどのプロセッサによって、コンピュータ可読媒体に格納されている命令に基づいて実行され得る。所望であれば、命令を媒体に圧縮及び/暗号化したフォーマットで格納することができる。
【0054】
また更に、当業者には、明細書の検討及び本願の教示の実施によって、本願の他の実装形態が明らかになるであろう。記載されている例示の実装形態の様々な態様及び/又は構成要素は、単独で使用されても任意の組合せで使用されてもよい。明細書及び例示の実装形態が単なる実例と見なされることが意図されており、本願の真の範囲及び精神は以下の特許請求の範囲によって示されている。
図1
図2
図3
図4
図5
図6
図7
図8
【手続補正書】
【提出日】2023-03-13
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
機械学習アルゴリズムを用いてアプリケーションをテストするための方法であって、
アプリケーションの1つ又は複数のインスタンスを実行することであり、前記1つ又は複数のインスタンスは前記アプリケーションに、前記アプリケーションの複数の定義されたインシデントから選択された1つ又は複数のインシデントを引き起こすための入力を提供するように構成されている前記機械学習アルゴリズムから入力を受け取るように構成されている、実行することと、
前記入力を前記1つ又は複数の実行されたインスタンスに提供するために前記機械学習アルゴリズムを実行することであって、前記機械学習アルゴリズムによって提供された許可される入力が、複数の入力デバイスから前記アプリケーション上でのテストのために選択された1つ又は複数の入力デバイスに基づいて制限される、前記実行することと、
前記1つ又は複数のインスタンスのうちのあるインスタンス中で検出された、選択された前記1つ又は複数のインシデントのうちのインシデントであり、前記1つ又は複数のインスタンスのうちの前記インスタンス中の前記アプリケーションを動作不能にさせたインシデントについて、前記アプリケーションを動作不能にさせた前記インシデントを示す出力を生成することと、を含む、方法。
【請求項2】
前記インシデントはフォールト画面である、請求項1に記載の方法。
【請求項3】
前記出力は前記1つ又は複数のインスタンスのうちの前記インスタンスのビデオを含む、請求項1に記載の方法。
【請求項4】
前記出力は前記1つ又は複数のインスタンスのうちの前記インスタンス中の前記アプリケーションのオーディオを含む、請求項1に記載の方法。
【請求項5】
前記出力は前記1つ又は複数のインスタンスのうちの前記インスタンス中の前記アプリケーションからの触覚フィードバックを含む、請求項1に記載の方法。
【請求項6】
前記出力は前記アプリケーションに関する入力ログを含む、請求項1に記載の方法。
【請求項7】
前記複数の入力デバイスの各々は、前記許可される入力を定義するために除外された入力及び入力の接続のタイプに関連付けられている、請求項1に記載の方法。
【請求項8】
前記入力は前記アプリケーションに送信されたネットワーク・データを含む、請求項1に記載の方法。
【請求項9】
前記インシデントは動作のフリーズである、請求項1に記載の方法。
【請求項10】
前記インシデントは前記アプリケーションのアプリケーション・ログから決定される、請求項1に記載の方法。
【請求項11】
前記インシデントはデバッグ・フックから決定される、請求項1に記載の方法。
【請求項12】
1つ又は複数のプロセッサによって実行されると請求項1から11までのいずれか一項に記載の方法を実行させる命令を格納している、コンピュータ・プログラム。
【請求項13】
請求項1から11までのいずれか一項に記載の方法を実行するように構成されているプロセッサを備える、装置。
【国際調査報告】