"方法であって、ウェブアプリケーションのユーザにより、データの入力のために1つ又は複数のフィールドを有するフォームを含むウェブアプリケーションの特定のページにアクセスする工程であって、前記ウェブページは、前記ウェブページのコードに基づいて前記ウェブアプリケーションによってレンダリングされる工程と、前記コードを解析する工程と、前記解析に基づいて前記少なくとも1つのフィールドに対する1つ又は複数の入力の組を生成する工程と、前記少なくとも1つのフィールドに、前記1つ又は複数の入力の組を自動的に入力する工程と、前記少なくとも1つのフィールドに前記1つ又は複数の入力の組を含む前記フォームを自動的に送出する工程とを含む方法。請求項1記載の方法であって、前記特定のページに複数回、アクセスし、アクセス毎に前記1つ又は複数の入力の組のうちの別の組を入力する工程を更に含む方法。請求項2記載の方法であって、前記ウェブアプリケーションのナビゲーションモデルを生成するよう前記ウェブアプリケーションにクローリングする工程を更に含む方法。請求項1記載の方法であって、前記コードを解析する工程は、前記少なくとも1つのフィールドについて要求されるデータのタイプを判定する工程を含み、前記少なくとも1つのフィールドに対する1つ又は複数の入力の組を生成する工程は、前記判定されたデータのタイプに基づいてデータを生成する工程を含む方法。請求項4記載の方法であって、前記少なくとも1つのフィールドについて要求されるデータのタイプを判定する工程は、前記ウェブページがディスプレイにレンダリングされる場合に前記少なくとも1つのフィールドに隣接して表示される静的配列を判定するよう前記コードを解析する工程を含む方法。実行されると、ウェブアプリケーションのユーザにより、データの入力のために1つ又は複数のフィールドを有するフォームを含むウェブアプリケーションの特定のページにアクセスする機能であって、前記ウェブページは、前記ウェブページのコードに基づいて前記ウェブアプリケーションによってレンダリングされる機能と、前記コードを解析する機能と、前記解析に基づいて前記少なくとも1つのフィールドに対する1つ又は複数の入力の組を生成する機能と、前記少なくとも1つのフィールドに、前記1つ又は複数の入力の組を自動的に入力する機能と、前記少なくとも1つのフィールドに前記1つ又は複数の入力の組を含む前記フォームを自動的に送出する機能とを行うよう動作可能なソフトウェアをコード化した1つ又は複数のコンピュータ読み取り可能な記憶媒体。ウェブアプリケーションをクローリングするシステムであって、前記ウェブアプリケーションのユーザにより、データの入力のために少なくとも1つのフィールドを有するフォームを含むウェブアプリケーションの特定のページにアクセスする機能であって、前記ウェブページは、前記ウェブページのコードに基づいて前記ウェブアプリケーションによってレンダリングされる機能と、前記コードを解析する機能と、前記解析に基づいて前記少なくとも1つのフィールドに対する1つ又は複数の入力の組を生成する機能と、前記少なくとも1つのフィールドに、前記1つ又は複数の入力の組を自動的に入力する機能と、前記少なくとも1つのフィールドに前記1つ又は複数の入力の組を含む前記フォームを自動的に送出する機能とを行うよう構成された1つ又は複数のコード解析を有するクローラを備える、ウェブアプリケーションをクローリングするシステム。本発明は、従来の方法及びシステムに関連した欠点及び課題の少なくとも一部をかなりなくすか、又は軽減する、ウェブアプリケーションの広範囲にわたるクローリングのための方法及びシステムを提供する。本発明の特定の実施例によれば、方法は、ウェブアプリケーションのユーザによる、データの入力のための少なくとも1つのフィールドを有するフォームを含むウェブアプリケーションの特定のページにアクセスする工程を含み得、ウェブページは、ウェブペ―ジのコードに基づいてウェブアプリケーションによってレンダリングされる。方法は、コードを解析する工程も含み得る。方法は、解析に基づいて少なくとも1つのフィールドに対する1つ又は複数の入力の組を生成する工程を更に含み得る。方法は更に、1つ又は複数の入力の組を少なくとも1つのフィールドに自動的に入力する工程を含み得る。方法は、更に、少なくとも1つのフィールドに1つ又は複数の入力の組を含むフォームを自動的に送出する工程を含み得る。本発明の特定の実施例の技術上の利点は、伝統的なクローラによって明るみに出すことができない振る舞いを明らかにするようウェブアプリケーションを広範囲にわたってクローリングし得る方法論を含む。他の技術上の利点は、図面、明細書、及び特許請求の範囲から、当業者に容易に明らかになるであろう。更に、特定の利点は上述しているが、種々の実施例は、上述された利点の全部、一部を含み得るか、又は、上述の利点の何れも含まないことがあり得る。特定の実施例は、ウェブアプリケーション特に、ウェブ2.0アプリケーションの検証に関する。ウェブ2.0アプリケーションは、一般に、インタラクティブ情報共有、相互運用性、ユーザ中心の設計、あるいは、コラボレーションをワールドワイドウェブ、又は他のふさわしい、若しくは適切なネットワーク環境を介して容易にする動的又はインタアクティブウェブアプリケーションを表し得る。ウェブアプリケーション特に、ウェブ2.0アプリケーションは多くの場合、いくつかのウィジェットの形態を呈するか、いくつかのウィジェットを利用するか、又はいくつかのウィジェットによって特徴付けられる。ウィジェットは一般に、別個のレンダリング可能な構造化された文書例えば、ハイパーテキストマークアップ言語HTMLベースのウェブページなど内にインストールし、実行し、又は、当該ユーザが著作者の権利を有するページ例えば、ウェブページ、ブログ、又はソーシャルメディアサイト上のプロファイル上に、ユーザにより、第三者サイトに、他のやり方で埋め込むことが可能なスタンドアロンのアプリケーション又はポータブルコードを表し得る。ウェブ2.0アプリケーションの例は、他の可能性の中でもとりわけ、ウェブベースのコミュニティ、ホスティングされたサービス、ソーシャルネットワーキングサイト、動画共有サイト、又はウィキwikiとともに動作し得る。特定の実施例は、ウェブアプリケーションのレンダリングされたページに関する下にあるコードを解析する工程であって、前述のレンダリングされたページが、ウェブアプリケーションのユーザによるデータ入力用フォームを含む工程例えば、静的解析手法を使用した解析と、前述の解析に基づいて、広範囲にわたるウェブクローリングを行おうとしてクローラがフォームに自動的に入力し得るフォームデータ入力の組を生成する工程とに関する。図1は、例示的な検証システム102の例示的な環境100を示す。検証システム102は、1つ若しくは複数のハードウェア構成部分、1つ若しくは複数のソフトウェア構成部分、又はハードウェア構成部分及びソフトウェア構成部分の組合せを含み得る。検証システム102の構成部分は、図6を参照して更に詳細に説明したものなどの1つ又は複数のコンピュータシステム内で実行又は動作し得る。検証システム102はウェブアプリケーション104にアクセスするよう構成される。特定の実施例では、ウェブアプリケーション104は、検証システム102と同じコンピュータシステムにおいて、少なくとも部分的に配備される。別の実施例では、ウェブアプリケーション104は、検証システム102をホスティングするコンピュータシステムと直接又は間接に接続若しくは結合される別個の1つ又は複数のコンピュータシステムで配備され得る。ウェブアプリケーション104は更に、1つ又は複数の外部、あるいは第三者サーバ、あるいはコンピュータシステムにおいて少なくとも部分的にホスティングし得る。一般に、ウェブアプリケーションは、ネットワークを介して、ウェブブラウザ例えば、マイクロソフトウィンドウズインターネット、エクスプローラ、モジラファイアフォックス、アップルサファリ、グーグルクロム、若しくはオペラ、又は他のクライアントアプリケーションを介してアクセスし得るアプリケーション、又は、ウェブブラウザによってサポートされる言語でコード化され、場合によっては、アプリケーションを実行可能にするようウェブブラウザに依存するコンピュータソフトウェアアプリケーションである。ウェブアプリケーションは、ウェブブラウザが遍在していること、クライアント場合によってはシンクライアントと呼ばれる遠隔コンピューティング装置において起動されるウェブブラウザを使用するという利便性、及び、遠隔クライアントへのソフトウェアを必ずしも配付及びインストールすることなく、ウェブアプリケーションを更新し、維持するための対応する機能の結果、多大な人気を得てきている。多くの場合、ウェブアプリケーションを実現するために、ウェブアプリケーションは、関連付けられたウェブサイトのバックエンドサーバにおいて提供される1つ又は複数のリソースへのアクセスを必要とする。更に、ウェブアプリケーションは多くの場合、他のアプリケーションに関連付けられた更なるリソースを必要とし得る。エンドユーザのマシンクライアント装置とともに、又は前述のマシンにおいて配備されるウェブアプリケーションは、ウェブページをエンドユーザのマシンのディスプレイ上にレンダリングし得る。ウェブブラウザに関し、又はウェブブラウザのコンテキストで実行するウェブアプリケーションは、ディスプレイ上にウェブページをウェブブラウザにレンダリングさせ得る。ウェブアプリケーションのウェブページは、通常、ウェブアプリケーションの他のウェブページ、及び、ウェブアプリケーションの外部のウェブページ及びウェブサイト、並びに、ウェブアプリケーションに関連付けられたウェブページ及びウェブサイトに対する埋込リンクを含む。動的ウェブアプリケーションは特に、多くの場合、ハイパーリンク、アイコン、又は他のクリック可能な機能として、現在表示されているウェブページ上でレンダリングし得る、埋め込まれた複数のリンクを含む。通常の動的ウェブアプリケーションは、ウェブアプリケーションをホスティングするサーバに配置されているか、又は外部の第三者サーバから取り出された複数のリソースを含み得る。埋め込まれた複数のリソースを含み得るウェブページをレンダリングするウェブページ又はリソースは、コンテンツ平文情報などのデータレコード、又は、ディジタル形式でコード化された、より複雑なマルチメディアコンテンツソフトウェアプログラムや他のコードオブジェクト、グラフィクス、画像、オーディオ信号、ビデオ等などを含み得る。ウェブページを作成するための、普及しているマークアップ言語の1つは、ハイパーテキストマークアップ言語HTMLである。ウェブブラウザによってサポートされた一般的な他の言語及び手法には、とりわけ、拡張可能なマークアップ言語XML、拡張可能なハイパーテキストマークアップ言語XHTML、ジャバスクリプト、カスケーディングスタイルシートCSS、及びジャバが含まれる。例として、HTMLは、ページ内で埋め込むことが可能な画像、ウェブアプリケーション及び他のオブジェクト例えば、フォームフィールド、並びにテキスト及びリンクの構造的意味論を表すことにより、構造化文書をアプリケーション又はウェブページ開発者が作成することを可能にする。一般に、ウェブページは、構造化された静的な文書としてクライアントに配信し得るが、しかし、ページに埋め込まれたウェブエレメントの使用により、インタアクティブな体験をページ又はページシーケンスによって達成し得る。クライアント装置におけるユーザセッション中、ウェブブラウザは、ウェブページをホスティングするウェブサイト又はウェブアプリケーションから受け取られるか、若しくは取り出されるページ及び関連付けられたリソース、並びに、場合によっては、他のウェブサイトからのリソースを解釈し、表示する。例として、ウェブブラウザによる、HTML構造化された文書を受け取ると、ウェブブラザは、ジャバスクリプトコードセグメントを含む埋め込まれたコードを実行し得、それにより、第三者のホスト又はウェブサイトからのリソースがコール又は要求される。特定の実施例では、検証システム102は、ネットワーク例えば、イントラネット、エクストラネット、仮想プライベートネットワークVPN、ローカルエリアネットワークLAN、無線LANWLAN、ワイドエリアネットワークWAN、メトロポリタンエリアネットワークMAN、ワールドワイドウェブインターネットの一部分、若しくは別のネットワーク、又は前述の2つ以上のネットワークの組合せなどを介してウェブアプリケーション104にアクセスするよう構成される。本開示は、ウェブアプリケーション104を検証システム102とともに配備し得る何れかの適切なネットワークを想定している。特定の実施例では、検証システム102は、例えば、HTTP要求の形式などで、前述のホスティングサービスに向けて、ウェブアプリケーション104に対する要求を送信することにより、ウェブアプリケーション104をホスティングしている1つ又は複数のサーバとのセッションを開始する。特定の実施例では、要求の受信に応じて、ウェブアプリケーション104をホスティングしているサーバは、HTML又は他の構造化文書検証システム102による、又は検証システム102におけるウェブページのレンダリングのために、何れかの埋め込まれたリソース、又は前記リソースに対する埋め込まれたコード及び識別子、並びに、表示する対象のコンテンツ、及び構造化文書コードを含むの形式でのウェブアプリケーション104のレンダリング可能な実現形態の生成に進む。多くの場合、ウェブブラウザは、インタアクティブフォームフィールドの表示に関する1つ又は複数の言語で記述されるコードセグメントを読み取り、前述のコードセグメントに基づいてインタアクティブフォームフィールドをレンダリングし、表示し得る。ウェブブラウザウィンドウに表示される前述のインタアクティブフォームの例を図2に表す。図2に示すように、ウェブブラウザウィンドウ200は、静的配列202、フィールド204、及び送出ボタン206を含むフォームを表示し得る。静的配列202は、ユーザが隣接フィールド204に入力するデータのタイプを示すために、ウェブブラウザのユーザに向けて表示されるテキストを含み得る。各フィールド204は、例えば、キーボードの使用により、前述のフィールド204にデータをウェブブラウザのユーザが入力することを可能にするユーザインタフェースエレメントであり得る。データをフィールド204に入力した後、ユーザは、送出ボタン206をクリックし、又は、ユーザがデータを送出したい旨を示す別の動作を行い得、ウェブブラウザは次いで、前述のデータをサーバ例えば、ウェブアプリケーションをホスティングしているサーバに通信し得る。一部の場合には、インタアクティブフォームコードは、フィールド204に入力されるデータに対して制約を課すクライアントサイド検証コードも含み得る。例えば、制約は、ユーザ名に関連付けられたフィールドの最小長及び最大長に対する限度を設け、かつ/又は、フィールドに入力し得る文字のタイプに対する限度を設け得る。特定の実施例では、検証システム102は、更に、ウェブアプリケーション104を検証するうえで使用するためのユーザレベルの検証要件106に対するアクセスを有する。特定の実施例では、ユーザレベルの検証要件106は、前述のウェブアーチファクトの実現形態レベルの詳細でなく、ウェブアプリケーション104の種々のウェブアーチファクトに対する自然言語リファレンスを含む。特定の実施例では、検証要件106はウェブアプリケーション104のテストケースであり得る。テストケースは、ウェブアプリケーション104を動かす通常のシナリオウェブアプリケーションのユーザによって行われる特定の工程シーケンスなど、及び通常のシナリオの下でのウェブアプリケーションの正しいか、又は有効な振る舞いを構成するものが何であるかの特定の明示的な、又は暗黙的な規定を含み得る。単純に言えば、テストケースは、正確性検査例えば、期待された結果と組合せたユースケースであり得る。他の実施例では、検証要件106は、ウェブアプリケーション104の期待された振る舞いのより表出的な振る舞いの表現であり、例えば、時相論理などのフォーマリズムで記述し得る。検証結果108は、ウェブアプリケーション104に対する1つ又は複数の検証要件106又は他の検査若しくはユースケースを検証した結果として検証システム102から出力される。より具体的には図3に示すように、検証システム102は、誘導エンジン210、ウェブアプリケーションクローラ212、要件生成器216、及び検証ツールキット220を含み得る。特定の実施例では、誘導エンジン210の支援により、クローラ212は、ウェブアプリケーション104にアクセスし、ウェブアプリケーション104をクローリングし、ナビゲーションモデル214を出力する。特定の実施例では、要件生成器216は、少なくとも部分的にユーザレベル検証要件106に基づいて実現形態レベルの検証要件218を生成する。すなわち、要件生成器216は、本明細書及び特許請求の範囲記載の自然言語表現で表現された特性又はテストケース表現を入力として使用し、コンピュータ読み取り可能な検証要件218を読み取るよう構成された検証ツールキット220に入力されるコンピュータ又はマシン読み取り可能な命令実現形態レベルの検証要件218を生成し得る。特定の実施例では、検証ツールキット220は、実現形態レベル検証要件218とともにナビゲーションモデル214を使用してウェブアプリケーション104を検証し、その後、検証結果108を出力するよう構成される。特に、検証ツールキット220は、ナビゲーションモデル214及び実現形態レベルの検証要件218を入力として得て、ウェブアプリケーション104を検証するためにナビゲーションモデル214に対して検証要件218を検査する。例えば、検証結果108は、検証システム102のメモリ又は別の場所に記憶され、ウェブアプリケーション104の客観的な評価を提供する、検証要件218それぞれが満たされたか否か、又は、一般的には、1つ又は複数のナビゲーション若しくはビジネスロジック特性又は要件が満たされたか否かを含む1つ又は複数の結果、テーブル、又はグラフを含み得る。更に、一部の実施例では、要件生成器216は、本明細書及び特許請求の範囲記載のウェブアーチファクトの自然言語マッピングを入力として取得し、ウェブアーチファクトのマッピングを使用して本明細書及び特許請求の範囲記載の自然言語表現の表記の形式でユースケース又はテストケースを生成し、次いで、生成された表記に基づいて実現形態レベルの検証要件218を生成し得る。図4は、本開示による、ウェブアプリケーションクローラ212の選択された構成部分を示す。図4に示すように、ウェブアプリケーションクローラ212は、1つ又は複数の解析エンジン例えば、HTML解析エンジン402、CSS解析エンジン404、ジャバスクリプト解析エンジン406、及びジャバ解析エンジン408を含み得る。各解析エンジンは、フォームを含むレンダリングされたウェブページに関する特定の言語の下にあるコードを解析するよう構成し得る例えば、HTML解析エンジン402はHTMLを解析し得、CSS解析エンジン404はCSSを解析し得る等である。前述の解析に基づいて、解析エンジンは個々に又は協調して、ウェブアプリケーションクローラ212が自動的にフォームフィールドに入力し得る入力の組412を生成し得る。入力の組412は、何れかの適切なやり方で生成し得る。例えば、下にあるコードの解析に基づいて、解析エンジンは個々に、又は協調して、1つ又は複数のフォームフィールドに対して要求される入力のタイプを判定し得る。例証するに、図2を参照すれば、解析エンジンは、ウェブアプリケーションのユーザに向けて表示されるように、特定のフィールド204が特定の静的配列202に隣接している例えば、静的配列Name:が特定のフィールド204に隣接している旨を解析に基づいて判定し得る。前述の、静的配列202に隣接していることは、フィールド204に入力する対象のデータのタイプを示し得るName:に隣接していることは、特定のフィールド204において名前が要求されている旨を示し得る。Zip:に隣接していることは、特定のフィールド204において郵便番号が要求されている旨を示し得る。よって、1つ又は複数のフォームフィールドについて要求される入力のタイプに基づいて、解析エンジンは、前述のタイプの入力と一致して入力412の組を、個々に、又は協調して、生成例えば、Nameに隣接しているフィールドに対して複数の名前を生成、zipに隣接しているフィールドに対して複数の郵便番号コードを生成し得る。入力412の各組は、フォームの1つ又は複数のフィールドに対する入力を含むデータの組を含み得る。例えば、図2に表すフォームに対する単一の入力412の組は、名前、住所、都市、州、郵便番号、ユーザ名、及びパスワードを含み得る。一部の場合には、ウェブアプリケーションの振る舞いは、フォームに入力される変数に依存し得る。よって、ウェブアプリケーションの振る舞いをできる限り、露出する広範囲にわたるクローリングができるためには、異なるデータを備えた別々の多くの入力の組412を生成し得る。特定の実施例では、生成された入力の組412の1つ又は複数は、ウェブアプリケーションのエラー処理の振る舞いを露出するために、不整合なデータを含み得る。例えば、特定の入力の組412は、特定の組からの郵便番号と不整合な都市/州の組合せを含み、例えば、カリフォルニア州サンノゼという都市/州の組合せを含むが、テキサス州オースチンの郵便番号も含み、よって、前述の不整合を処理するためにウェブアプリケーションの振る舞いを存在する場合に露出し得る。入力の組412は、何れかの適切なやり方で生成し得る。一部の実施例では、入力の組412は、ウェブアプリケーションクローラ212にアクセス可能なデータベースに含まれるデータを含み得る。例えば、前述のデータベースは、名前、住所及び他のデータのインデクスを含み得、その入力タイプとしての名前により、フィールドの名前を取り出し得、その入力タイプとしての住所により、フィールドの住所を取り出し得る等である。以上に加えて、解析エンジンは、更に、フォームフィールド上に配置された制約例えば、クライアントサイド検証コードによって確立される制約に基づいてデータを生成し得る。前述の制約は、種々のフィールドに入力されるデータを制限し得る。例えば、制約は、特定の列の長さに、特定のフィールドに入力されるデータを制限し、かつ/又は特定の文字を可能にし得る例えば、郵便番号を入力する対象のフィールドの場合、制約はフィールド入力を5つの数字に制限し得る。よって、一部の入力の組412は、前述の制約に準拠したデータを含み得、他の入力の組は、制約に準拠した入力列及び制約に準拠していない入力列を処理するうえでウェブアプリケーションの振る舞いを露出するために、前述の制約に準拠していないデータを含み得る。図5は、本開示による、ウェブアプリケーションを検証するための例示的な方法500のフローチャートを示す。方法500は一般に、502で始まり、502ではウェブアプリケーションクローラ212はウェブアプリケーション104にアクセスし得る。ウェブアプリケーションクローラ212は、ウェブアプリケーションのコード例えば、ジャバスクリプト、HTML等を読み取ることにより、ウェブアプリケーション104にアクセスし得る。工程504では、フォームを含むウェブアプリケーション104の特定のページ毎に、クローラ212は前述のページの下にあるコードを解析し得る。工程404後に、工程504と同時に、方法500は工程506に進み得、工程506では、クローラ212は、フォーム毎の下にあるコードの解析に基づいて、前述のフォームへの入力及び送出のために1つ又は複数の入力の組412を生成し得る。上述の通り、一部の実施例では、前述の入力の組412は、フォームに入力されるデータに対応する制約、及び/又はフォームによって要求されるデータのタイプに基づいて作成し得る。工程504及び506の後又は前述の工程504及び506と同時に、方法500は工程508に進み得、クローラ212は、フォームに対する入力データとして、生成された入力412の組を使用してウェブアプリケーション104をクローリングする。例えば、ウェブアプリケーション104をクローリングするうえで、クローラ212は、フォームを有する特定のページに複数回、アクセスし、アクセス毎に、別々の入力の組412を入力し得る、クローリングに基づいて、クローラ212は、工程510で、ナビゲーション振る舞いモデル214を生成し得る。図2に示すように、クローラ212は、ウェブアプリケーション104をクローリングするうえで、クローラ212によって使用するために誘導エンジン210からの誘導命令、パラメータ、及び他の情報などの入力を受け取り得る。上記工程の前、上記工程の後、又は上記工程と同時に、検証ツールキット220は工程512で、ユーザレベル検証要件にアクセスし得る。一部の実施例では、要件生成器216は、それ自体が、ウェブアプリケーション104、又はクローリングされたウェブアプリケーション104にアクセスし、ウェブアプリケーション104の種々のウェブアーチファクトに対する自然言語マッピングを含むユーザレベルの検証要件例えば、ウェブアーチファクトの自然言語表現を備えたテストケース又は特性を自動的に生成する。特定の実施例では、ナビゲーションモデル214は、ウェブアプリケーション104の振る舞いのコンパクトな数理モデル又は表現であり、特定の実施例では、ウェブアプリケーション104のクライアント層である。一実施例では、ナビゲーションモデル214は、XMLでフォーマッティングされ、その後、検証ツールキット220により、XML文書又はファイルとして記憶される。検証ツールキット220は次いで、ナビゲーションモデル214及び検証要件218を使用して、自動的に、かつ、ランタイムユーザ入力なしでウェブアプリケーション104を、例えば、工程514で、ナビゲーションモデル214に対して検証要件218を検査することによって検証し得る。検証ツールキット220は次いで、516で、出力検証結果を出力し得る。検証結果108は、例えば、検証システム102のメモリ、又は他の場所に記憶され、検証要件218それぞれが満たされたか、又は、一般に、1つ又は複数のナビゲーション若しくはビジネスロジックの特性若しくは要件が満たされたかを含む、ウェブアプリケーション104の客観的な評価を提供する1つ又は複数の結果、テーブル、若しくはグラフを含み得る。効果的には、上記方法及びシステムは、ウェブアプリケーションの検証システムが、フォームデータを自動的に入力し、よって、フォームデータを入力するための人間の介入の必要性を軽減することを可能にする。図6は、本開示の実施例による例示的なコンピュータシステム600を示す。特定の実施例では、1つ又は複数のコンピュータシステム600は、本明細書及び特許請求の範囲に記載又は例証された1つ又は複数の方法のうちの1つ又は複数の工程を行う。特定の実施例では、1つ又は複数のコンピュータシステム600は、本明細書及び特許請求の範囲に記載又は例証された機能を提供する。特定の実施例では、1つ又は複数のコンピュータシステム600上で実行されるソフトウェアは、本明細書及び特許請求の範囲に記載又は例証された1つ又は複数の方法のうちの1つ又は複数の工程を行うか、又は、本明細書及び特許請求の範囲記載の機能を提供する。特定の実施例は、1つ又は複数のコンピュータシステム600の1つ又は複数の部分を含む。本開示は、何れかの適切な数のコンピュータシステム600を想定している。本開示は、何れかの適切な物理的形式を呈するコンピュータシステム600を想定している。限定でなく、例として、コンピュータシステム600は、組み込み型コンピュータシステム、システムオンチップSOC、シングルボードコンピュータシステムSBC例えば、コンピュータオンモジュールCOM又はシステムオンモジュールSOM、デスクトップ型コンピュータシステム、ラップトップ型又はノートブック型コンピュータシステム、インタアクティブキオスク、汎用コンピュータ、コンピュータシステムのメッシュ、携帯電話機、携帯情報端末PDA、サ―バ、又は、前述の2つ以上の組合せであり得る。コンピュータシステム600は、適宜、1つ又は複数のコンピュータシステム600を含み、ユニタリー型であっても分散型であってもよく、複数の場所にまたがってもよく、複数のマシンにまたがってもよく、クラウド1つ又は複数のネットワーク内の1つ又は複数のクラウド構成部分を含み得るに常駐していてもよい。1つ又は複数のコンピュータシステム600は、適宜、本明細書及び特許請求の範囲に記載されたか又は例証された1つ又は複数の方法のうちの1つ又は複数の工程を、実質的な空間制約又は時間制約なしで行い得る。限定でなく、例として、1つ又は複数のコンピュータシステム600は、本明細書及び特許請求の範囲記載の1つ又は複数の方法のうちの1つ又は複数の工程をリアルタイムで又はバッチモードで行い得る。1つ又は複数のコンピュータシステム600は、適宜、本明細書及び特許請求の範囲に記載又は例証された1つ又は複数の方法のうちの1つ又は複数の工程を別々の時点で、又は別々の場所で行い得る。特定の実施例では、コンピュータシステム600は、プロセッサ602、メモリ604、記憶装置606、入出力I/Oインタフェース608、通信インタフェース610、及びバス612を含む。本開示は、特定の構成において特定数の特定の構成部分を有する特定のコンピュータシステムを記載し、例証しているが、本開示は、何れかの適切な構成における何れかの適切な数の何れかの適切な構成部分を有する何れかの適切なコンピュ―タシステムを想定している。特定の実施例では、プロセッサ602は、コンピュータプログラムを構成するものなどの、命令を実行するためのハードウェアを含む。限定でなく例として、プロセッサ602は、命令を実行するために、内部レジスタ、内部キャッシュ、メモリ604、又は記憶装置606から命令を取り出し又はフェッチし、デコードし、実行し、次いで、1つ又は複数の結果を内部レジスタ、内部キャッシュ、メモリ604,又は記憶装置606に書き込み得る。特定の実施例では、プロセッサ602は、データ、命令、又はアドレスのために1つ又は複数の内部キャッシュを含み得る。本開示は、適宜、何れかの適切な数の何れかの適切な内部キャッシュを含むプロセッサ602を想定している。限定でなく、例として、プロセッサ602は、1つ又は複数の命令キャッシュ、1つ又は複数のデータキャッシュ、及び1つ又は複数のトランスレーションルックアサイドバッファTLBを含み得る。命令キャッシュ内の命令は、メモリ604内又は記憶装置606内の命令の複製であり得、命令キャッシュはプロセッサ602による前述の命令の取り出しを高速化し得る。データキャッシュ内のデータは、プロセッサ602で命令が処理する対象の、メモリ604内又は記憶装置606内のデータの複製、プロセッサ602で実行するその後の命令によるアクセスのための、又は、メモリ604若しくは記憶装置606への書き込みのための、プロセッサ602で実行される先行する命令の結果、又は、他の適切なデータであり得る。データキャッシュは、プロセッサ602による読み出し又は書き込みの動作を高速化し得る。TLBは、プロセッサ602のための仮想アドレス変換を高速化し得る。特定の実施例では、プロセッサ602は、データ、命令、又はアドレスの1つ若しくは複数の内部レジスタを含み得る。本開示は、何れかの適切な数の何れかの適切な内部レジスタを適宜含むプロセッサ602を想定している。プロセッサ602は、適宜、1つ又は複数の論理演算装置ALUを含むか、マルチコアプロセッサであるか、又は1つ又は複数のプロセッサ602を含み得る。本開示は特定のプロセッサを記載し、例証するが、本開示は何れかの適切なプロセッサを想定している。特定の実施例では、メモリ604は、プロセッサ602が実行するための命令、又はプロセッサ602が処理するためのデータを記憶する主メモリを含む。限定でなく例として、コンピュータシステム600は、記憶装置606、又は例えば、別のコンピュータシステム600などの別のソースからメモリ604に命令をロードし得る。プロセッサ602は次いで、メモリ604から内部レジスタ又は内部キャッシュに命令をロードし得る。命令を実行するために、プロセッサ602は、内部レジスタ又は内部キャッシュから命令を取り出し、デコードし得る。命令の実行中又は実行後、プロセッサ602は、中間結果又は最終結果であり得る1つ若しくは複数の結果を内部レジスタ又は内部キャッシュに書き込み得る。プロセッサ602は、前述の結果のうちの1つ又は複数をメモリ604に書き込み得る。特定の実施例では、プロセッサ602は、1つ又は複数の内部レジスタ内若しくは内部キャッシュ内、又はメモリ604内の命令のみを実行し、記憶装置606内又はそれ以外の場所内の命令は実行せず、1つ又は複数の内部レジスタ内若しくは内部キャッシュ内、又はメモリ604内のデータのみを処理する記憶装置606内又はそれ以外の場所内の命令は実行しない。アドレスバス及びデータバスをそれぞれが含み得る1つ又は複数のメモリバスは、プロセッサ602をメモリ604に結合し得る。バス612は、以下に説明するように、1つ又は複数のメモリバスを含み得る。特定の実施例では、1つ又は複数のメモリ管理装置MMUはプロセッサ602とメモリ604との間に常駐し、プロセッサ602によって要求されるメモリ604に対するアクセスを容易にする。特定の実施例では、メモリ604はランダムアクセスメモリRAMを含む。このRAMは、揮発性メモリであり得る。このRAMは、適宜、ダイナミックRAMDRAM又はスタティックRAMSRAMであり得る。更に、このRAMは、適宜、単一ポートのRAM又はマルチポートのRAMであり得る。本明細書及び特許請求の範囲は、何れかの適切なRAMを想定している。メモリ604は、適宜、1つ又は複数のメモリ604を含み得る。本開示は特定のメモリを記載し、例証しているが、本開示は何れかの適切なメモリを想定している。特定の実施例では、記憶装置606は、データ又は命令用の大容量記憶装置を含む。限定でなく、例として、記憶装置606は、HDD、フロッピー登録商標ディスクドライブ、フラッシュメモリ、光ディスク、光磁気ディスク、磁気テープ、若しくは、ユニバーサルシリアルバスUSBドライブ、又は前述の2つ以上の組合せを含み得る。記憶装置606は、適宜、取り外し可能な媒体、又は取り外し可能でない若しくは固定の媒体を含み得る。記憶装置606は、適宜、コンピュータシステム600の内部にあっても外部にあってもよい。特定の実施例では、記憶装置606は、不揮発性のソリッドステートメモリである。特定の実施例では、記憶装置606はリードオンリメモリROMを含む。このROMは、適宜、マスクプログラムされたROM、プログラム可能なROMPROM、消去可能なPROMEPROM、電気的に消去可能なPROMEEPROM、電気的に改変可能なROMEAROM、若しくは、フラッシュメモリ、又は、前述の2つ以上の組合せであり得る。本開示は、何れかの適切な物理的形式を呈する大容量記憶装置606を想定している。記憶装置606は、適宜、プロセッサ602と記憶装置606との間の通信を容易にする1つ又は複数の記憶制御装置を含み得る。記憶装置606は、適宜、1つ又は複数の記憶装置606を含み得る。本開示は特定の記憶装置を記載し、例証しているが、本開示は何れかの適切な記憶装置を想定している。特定の実施例では、I/Oインタフェース608は、コンピュータシステム600と、1つ又は複数のI/O装置との間の通信のための1つ又は複数のインタフェースを提供するハードウェア、ソフトウェア、又は両方を含む。コンピュータシステム600は、適宜、前述のI/O装置のうちの1つ又は複数を含み得る。前述のI/O装置の1つ又は複数は、個人とコンピュータシステム600との間の通信を可能にし得る。限定でなく、例として、I/O装置は、キーボード、キーパッド、マイクロフォン、モニタ、プリンタ、スキャナ、スピーカ、スチルカメラ、スタイラス、タブレット、タッチスクリーン、トラックボール、ビデオカメラ、別の適切なI/O装置、又は前述の2つ以上の組合せを含み得る。I/O装置は1つ又は複数のセンサを含み得る。本開示は、何れかの適切なI/O装置、及び上記何れかの適切なI/O装置との何れかの適切なI/Oインタフェース608を想定している。I/Oインタフェース608は、適宜、プロセッサ602が前述のI/O装置のうちの1つ又は複数を駆動させることを可能にする1つ又は複数の装置若しくはソフトウェアドライバを含み得る。I/Oインタフェース608は、適宜、1つ又は複数のI/Oインタフェース608を含み得る。本開示は特定のI/Oインタフェースを記載し、例証しているが、本開示は何れかの適切なI/Oインタフェースを想定している。特定の実施例では、通信インタフェース610は、コンピュータシステム600と、1つ若しくは複数の他のコンピュータシステム600、又は1つ若しくは複数のネットワークとの間の例えば、パケットベースの通信などの通信のための1つ又は複数のインタフェースを提供するハードウェア、ソフトウェア、又は両方を含む。限定でなく例として、通信インタフェース610は、イーサネット登録商標若しくは他の有線ベースのネットワークと通信するためのネットワークインタフェースコントローラNIC若しくはネットワークアダプタ、又は、ワイファイネットワークなどの無線ネットワークと通信するための無線アダプタ若しくは無線NICWNICを含み得る。この開示は、何れかの適切なネットワーク、及び上記何れかの適切なネットワークとの何れかの適切な通信インタフェース610を想定している。限定でなく例として、コンピュータシステム600は、アドホックネットワーク、パーソナルエリアネットワークPAN、ローカルエリアネットワークLAN、ワイドエリアネットワークWAN、メトロポリタンエリアネットワークMAN、若しくは、インターネットの1つ若しくは複数の部分、又は、前述の2つ以上の組合せと通信し得る。前述の1つ又は複数のネットワークの1つ又は複数の部分は有線であっても無線であってもよい。例として、コンピュータシステム600は、例えば、ブルートゥースWPANなどの無線PANWPAN、ワイファイネットワーク、ワイマックスネットワーク、例えば、ジーエスエムGSMネットワークなどの携帯電話ネットワーク、若しくは他の適切な無線ネットワーク、又は前述のうちの2つ以上の組合せと通信し得る。コンピュータシステム600は、適宜、前述のネットワークの何れかのための、何れかの適切な通信インタフェース610を含み得る。通信インタフェース610は、適宜、1つ又は複数の通信インタフェース610を含み得る。本開示は特定の通信インタフェースを記載し、例証しているが、本開示は何れかの適切な通信インタフェースを想定している。特定の実施例では、バス612は、コンピュータシステム600の構成部分を互いに結合するハードウェア、ソフトウェア、又は両方を含む。限定でなく、例として、バス612は、アクセラレーテッドグラフィクスポートAGP若しくは他のグラフィクスバス、拡張業界標準アーキテクチャEISAバス、フロントサイドバスFSB、ハイパートランスポートHT相互接続、業界標準アーキテクチャISAバス、インフィニバンド相互接続、低ピンカウントLPCバス、メモリバス、マイクロチャネルアーキテクチャMCAバス、周辺装置相互接続PCIバス、PCIエクスプレスPCI-Xバス、シリアル高度技術アタッチメントSATAバス、ビデオ電子標準協会局所VLBバス、若しくは、別の適切なバス、又は、前述の2つ以上の組合せを含み得る。バス612は、適宜、1つ又は複数のメモリ612を含み得る。本開示は特定のバスを記載し、例証しているが、本開示は何れかの適切なバス又は相互接続を想定している。本明細書及び特許請求の範囲では、コンピュータ読み取り可能な記憶媒体への参照は、1つ又は複数の有形のコンピュータ読み取り可能な記憶媒体を有する構造を含む。限定でなく、例として、コンピュータ読み取り可能な記憶媒体は、適宜、例えば、フィールドプログラマブルゲートアレイFPGA又は特定用途向ICASICなどの半導体ベース又は他の集積回路IC、ハードディスク、HDD、ハイブリッドハードドライブHHD、光ディスク、光ディスクドライブODD、光磁気ディスク、光磁気ドライブ、フロッピー登録商標ディスク、フロッピー登録商標ディスクドライブFDD、磁気テープ、ホログラフィック記憶媒体、ソリッドステートドライブSSD、RAMドライブ、セキュアなディジタルカード、セキュアなディジタルドライブ、若しくは、別の適切なコンピュータ読み取り可能な媒体、又は、前述のうちの2つ以上の組合せを含み得る。本明細書及び特許請求の範囲では、コンピュータ読み取り可能な記憶媒体への言及は、米国特許法第101条の特許の保護の対象でない何れかの媒体である。本明細書及び特許請求の範囲では、コンピュータ読み取り可能な記憶媒体への言及は、米国特許法第101条の下で特許の保護の対象でない範囲で本来的には、伝搬する電気信号又は電磁気信号などの信号伝送の一時的な形態を除く。本開示は、何れかの適切な記憶装置を実現する1つ又は複数のコンピュータ読み取り可能な記憶媒体を想定している。特定の実施例では、コンピュータ読み取り可能な記憶媒体は、適宜、例えば、1つ若しくは複数の内部レジスタ又はキャッシュなどの、プロセッサ602の1つ若しくは複数の部分、メモリ604の1つ若しくは複数の部分、記憶装置606の1つ若しくは複数の部分、又は、前述の組合せを実現する。特定の実施例では、コンピュータ読み取り可能な記憶媒体はRAM又はROMを実現する。特定の実施例では、コンピュータ読み取り可能な記憶媒体は揮発性メモリ又はパーシスタントメモリを実現する。特定の実施例では、1つ又は複数のコンピュータ読み取り可能な記憶媒体はソフトウェアを実施する。本明細書及び特許請求の範囲では、ソフトウェアへの言及は、適宜、1つ若しくは複数のアプリケーション、バイトコード、1つ若しくは複数のコンピュータプログラム、1つ若しくは複数の実行可能形式、1つ若しくは複数の命令、ロジック、マシンコード、1つ若しくは複数のスクリプト、又はソースコード等を包含し得る。特定の実施例では、ソフトウェアは、1つ又は複数のアプリケーションプログラミングインタフェースAPIを含む。本明細書及び特許請求の範囲は、何れかの適切なプログラミング言語、又はプログラミング言語の組合せで記述されたか、又はその他のやり方で表現された何れかの適切なソフトウェアを想定している。特定の実施例では、ソフトウェアは、ソースコード又はオブジェクトコードとして表現される。特定の実施例では、ソフトウェアは、例えば、C、パール、又はその適切な拡張などの高水準プログラミング言語で表現される。特定の実施例では、ソフトウェアは、アセンブラ言語又はマシンコードなどの低水準プログラミング言語で表現される。特定の実施例では、ソフトウェアはJAVAで表現される。特定の実施例では、ソフトウェアは、ハイパーテキストマークアップ言語HTML、拡張マークアップ言語XML、又は他の適切なマークアップ言語で表現される。本開示は、当業者が理解するであろう、例示的な実施例に対する変更、置換、変形、改変、及び修正全てを包含する。同様に、特許請求の範囲は、当業者が理解するであろう、例示的な実施例に対する変更、置換、変形、改変、及び修正全てを包含する。付記1ウェブアプリケーションのユーザにより、データの入力のために1つ又は複数のフィールドを有するフォームを含むウェブアプリケーションの特定のページにアクセスする工程であって、前記ウェブページは、前記ウェブページのコードに基づいて前記ウェブアプリケーションによってレンダリングされる工程と、前記コードを解析する工程と、前記解析に基づいて前記少なくとも1つのフィールドに対する1つ又は複数の入力の組を生成する工程と、前記少なくとも1つのフィールドに、前記1つ又は複数の入力の組を自動的に入力する工程と、前記少なくとも1つのフィールドに前記1つ又は複数の入力の組を含む前記フォームを自動的に送出する工程とを含むことを特徴とする方法。付記2前記特定のページに複数回、アクセスし、アクセス毎に前記1つ又は複数の入力の組のうちの別の組を入力する工程を更に含むことを特徴とする付記1記載の方法。付記3前記ウェブアプリケーションのナビゲーションモデルを生成するよう前記ウェブアプリケーションにクローリングする工程を更に含むことを特徴とする付記2記載の方法。付記4前記コードを解析する工程は、前記少なくとも1つのフィールドについて要求されるデータのタイプを判定する工程を含み、前記少なくとも1つのフィールドに対する1つ又は複数の入力の組を生成する工程は、前記判定されたデータのタイプに基づいてデータを生成する工程を含むことを特徴とする付記1記載の方法。付記5前記少なくとも1つのフィールドについて要求されるデータのタイプを判定する工程は、前記ウェブページがディスプレイにレンダリングされる場合に前記少なくとも1つのフィールドに隣接して表示される静的配列を判定するよう前記コードを解析する工程を含むことを特徴とする付記4記載の方法。付記6前記コードを解析する工程は、前記少なくとも1つのフィールドに入力されるデータに対する入力制約を解析する工程を含み、前記少なくとも1つのフィールドに対する1つ又は複数の入力の組を生成する工程は、前記入力制約に基づいてデータを生成する工程を含むことを特徴とする付記1記載の方法。付記7実行されると、ウェブアプリケーションのユーザにより、データの入力のために1つ又は複数のフィールドを有するフォームを含むウェブアプリケーションの特定のページにアクセスする機能であって、前記ウェブページは、前記ウェブページのコードに基づいて前記ウェブアプリケーションによってレンダリングされる機能と、前記コードを解析する機能と、前記解析に基づいて前記少なくとも1つのフィールドに対する1つ又は複数の入力の組を生成する機能と、前記少なくとも1つのフィールドに、前記1つ又は複数の入力の組を自動的に入力する機能と、前記少なくとも1つのフィールドに前記1つ又は複数の入力の組を含む前記フォームを自動的に送出する機能とを行うよう動作可能なソフトウェアをコード化したことを特徴とする1つ又は複数のコンピュータ読み取り可能な記憶媒体。付記8前記ソフトウェアは、実行されると、前記特定のページに複数回、アクセスし、アクセス毎に前記1つ又は複数の入力の組のうちの別の組を入力するよう更に動作可能であることを特徴とする付記7記載の媒体。付記9前記ソフトウェアは、実行されると、前記ウェブアプリケーションをクローリングして前記ウェブアプリケーションのナビゲーションモデルを生成するよう更に動作可能であることを特徴とする付記8記載の媒体。付記10前記コードを解析する機能は、前記少なくとも1つのフィールドについて要求されるデータのタイプを判定する機能を含み、前記少なくとも1つのフィールドに対する1つ又は複数の入力の組を生成する機能は、前記判定されたデータのタイプに基づいてデータを生成する機能を含むことを特徴とする付記7記載の媒体。付記11前記ソフトウェアは、実行されると、前記少なくとも1つのフィールドについて要求されるデータのタイプを判定するために、前記ウェブページがディスプレイにレンダリングされると、前記少なくとも1つのフィールドに隣接して表示する静的配列を判定するよう前記コードを解析するよう更に動作可能であることを特徴とする付記10記載の媒体。付記12前記コードを解析する機能は、前記少なくとも1つのフィールドに入力されるデータに対する入力制約を解析する機能を含み、前記少なくとも1つのフィールドに対する1つ又は複数の入力の組を生成する機能は、前記入力制約に基づいてデータを生成する機能を含むことを特徴とする付記7記載の媒体。付記13前記コードを解析する機能は、ハイパーテキストマークアップ言語で記述された前記コードの部分を解析する機能、ハイパーテキストマークアップ言語で記述された前記コードの部分を解析する機能、カスケーディングスタイルシートに記述された前記コードの部分を解析する機能、ジャバスクリプトで記述された前記コードの部分を解析する機能、及びジャバで記述された前記コードの部分を解析する機能のうちの少なくとも1つを含むことを特徴とする付記7記載の媒体。付記14ウェブアプリケーションをクローリングするシステムであって、前記ウェブアプリケーションのユーザにより、データの入力のために少なくとも1つのフィールドを有するフォームを含むウェブアプリケーションの特定のページにアクセスする機能であって、前記ウェブページは、前記ウェブページのコードに基づいて前記ウェブアプリケーションによってレンダリングされる機能と、前記コードを解析する機能と、前記解析に基づいて前記少なくとも1つのフィールドに対する1つ又は複数の入力の組を生成する機能と、前記少なくとも1つのフィールドに、前記1つ又は複数の入力の組を自動的に入力する機能と、前記少なくとも1つのフィールドに前記1つ又は複数の入力の組を含む前記フォームを自動的に送出する機能とを行うよう構成された1つ又は複数のコード解析を有するクローラを備えることを特徴とする、ウェブアプリケーションをクローリングするシステム。付記15前記1つ又は複数のコード解析エンジンは、実行されると、前記特定のページに複数回、アクセスし、アクセス毎に前記1つ又は複数の入力の組のうちの別の組を入力するよう構成されることを特徴とする付記14記載のシステム。付記16前記1つ又は複数のコード解析エンジンは、前記ウェブアプリケーションのナビゲーションモデルを生成するよう前記ウェブアプリケーションをクローリングするよう構成されることを特徴とする付記15記載のシステム。付記17前記コードを解析する機能は、前記少なくとも1つのフィールドについて要求されるデータのタイプを判定する機能を含み、前記少なくとも1つのフィールドに対する1つ又は複数の入力の組を生成する機能は、前記判定されたデータのタイプに基づいてデータを生成する機能を含むことを特徴とする付記14記載のシステム。付記18前記1つ又は複数のコード解析エンジンは、前記少なくとも1つのフィールドについて要求されるデータのタイプを判定するために、前記ウェブページがディスプレイにレンダリングされると、前記少なくとも1つのフィールドに隣接して表示する静的配列を判定するよう前記コードを解析するよう構成されることを特徴とする付記17記載のシステム。付記19前記コードを解析する機能は、前記少なくとも1つのフィールドに入力されるデータに対する入力制約を解析する機能を含み、前記少なくとも1つのフィールドに対する1つ又は複数の入力の組を生成する機能は、前記入力制約に基づいてデータを生成する機能を含むことを特徴とする付記14記載のシステム。付記20前記1つ又は複数のコード解析エンジンは、ハイパーテキストマークアップ言語で記述された部分を解析するためのハイパーテキストマークアップ言語解析エンジン、カスケーディングスタイルシートで記述された前記コードの部分を解析するためのカスケーディングスタイルシート解析エンジン、ジャバスクリプトで記述された前記コードの部分を解析するためのジャバスクリプト解析エンジン、及びジャバで記述された前記コードの部分を解析するためのジャバ解析エンジンのうちの少なくとも1つを含むことを特徴とする付記14記載のシステム。"