(57)【要約】  対話式音声応答システム・クローリングのためのシステムに関する。このシステムはＩＶＲクローラを備え、ＩＶＲクローラは、性質の点でＶＸＭＬ、設計仕様、ＤＴＭＦ、又はＡＳＲ／ＮＬＳＲスピーチベースであってよく、ＩＶＲメニューを辿って可能な対話パスを発見し、これらのパスに基づいてテスト・ケースを作成する。このシステムはまた、動作中にＩＶＲクローラによって作成されたテスト・ケースを記憶するデータベースも備える。本発明は、ＩＶＲクローラを利用する対話式音声応答システム・クローリングのための方法にも関する。【特許請求の範囲】
【請求項１】
対話式音声応答システム・クローリングのためのシステムにおいて、
ネットワーク接続されたコンピューティング・デバイス上で記憶され動作するＩＶＲクローラと、
ネットワーク接続されたコンピューティング・デバイス上で記憶され動作するデータベースとからなり、
前記ＩＶＲクローラが対話式音声応答システム中のメニュー・パスを辿り、
前記ＩＶＲクローラが、辿られた前記メニュー・パスに少なくとも部分的に基づいてテスト・ケースを生成し、
前記ＩＶＲクローラが前記テスト・ケースを前記データベースに送り、
前記データベースが、前記ＩＶＲクローラから受け取られた前記テスト・ケースを記憶する、システム。
【請求項２】
前記ＩＶＲクローラがＶＸＭＬベースのクローラである、請求項１に記載のシステム。
【請求項３】
ＶＸＭＬブラウザをさらに備え、前記ＶＸＭＬブラウザがネットワークを介してＶＸＭＬファイルを与える、請求項２に記載のシステム。
【請求項４】
前記ＶＸＭＬベースのクローラがＶＸＭＬファイルを前記ＶＸＭＬブラウザから受け取る、請求項３に記載のシステム。
【請求項５】
前記ＩＶＲクローラが設計ベースのクローラである、請求項１に記載のシステム。
【請求項６】
前記設計ベースのクローラがＩＶＲについての設計仕様を処理する、請求項５に記載のシステム。
【請求項７】
前記ＩＶＲクローラがＤＴＭＦベースのクローラである、請求項１に記載のシステム。
【請求項８】
前記ＤＴＭＦベースのクローラがＩＶＲシステムに電話をかける、請求項７に記載のシステム。
【請求項９】
前記ＤＴＭＦベースのクローラがＤＴＭＦトーン入力を介して前記ＩＶＲシステムと対話する、請求項８に記載のシステム。
【請求項１０】
前記ＩＶＲクローラがＡＳＲ／ＮＬＳＲスピーチベースのクローラである、請求項１に記載のシステム。
【請求項１１】
前記ＡＳＲ／ＮＬＳＲスピーチベースのクローラがＩＶＲシステムに電話をかける、請求項７に記載のシステム。
【請求項１２】
前記ＡＳＲ／ＮＬＳＲスピーチベースのクローラが、自動生成されたスピーチ発話入力を介して前記ＩＶＲシステムと対話する、請求項８に記載のシステム。
【請求項１３】
ネットワーク接続されたコンピューティング・デバイス上で記憶され動作する自動スピーチ認識エンジンをさらに備え、前記自動化スピーチ認識エンジンが、前記ＤＴＭＦ又はＡＳＲ／ＮＬＳＲスピーチベースのクローラに代わって前記ＩＶＲからのオーディオ・プロンプトを解釈する、請求項９に記載のシステム。
【請求項１４】
テスト・ケース実行エンジンをさらに備え、前記テスト・ケース実行エンジンが、前記
ＩＶＲクローラによって作成されたテスト・ケースを実行する、請求項１に記載のシステム。
【請求項１５】
前記テスト・ケースが、作成されるのに伴って前記ＩＶＲクローラから直接に取り出される、請求項１１に記載のシステム。
【請求項１６】
記憶されたテスト・ケースがデータベースから取り出される、請求項１１に記載のシステム。
【請求項１７】
ネットワーク接続されたコンピューティング・デバイス上で記憶され動作するテスト結果アナライザをさらに備え、前記テスト結果アナライザが前記テスト実行エンジンからのテスト・ケース実行の結果を分析する、請求項１１に記載のシステム。
【請求項１８】
分析結果が将来の参照のために記憶される、請求項１４に記載のシステム。
【請求項１９】
結果が即座の検討のために提供される、請求項１４に記載のシステム。
【請求項２０】
対話式音声応答システムのクローリング方法において、
ＩＶＲクローラを介してＩＶＲシステムにアクセスする工程と、
前記ＩＶＲシステムのメニュー・パスをリバース・エンジニアリングする工程と、
発見された前記メニュー・パスに少なくとも部分的に基づいてテスト・ケースを作成する工程と、
前記テスト・ケースを将来の参照のためにデータベースに記憶する工程とを備える、方法。
【請求項２１】
テスト・ケース実行エンジンを介して前記テスト・ケースを実行する工程と、
テスト結果アナライザを介してテスト・ケース実行の結果を分析する工程と、
分析結果を提供する工程と、
をさらに備える、請求項１７に記載の方法。
【請求項２２】
前記分析結果を将来の参照のためにデータベースに記憶する工程をさらに備える、請求項１８に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンタクト・センタ運用の分野に関し、より詳細には、対話式音声応答システム及びアプリケーションの分野に関する。
【背景技術】
【０００２】
対話式音声応答（ＩＶＲ）システムの分野では、「そのままで」ドキュメント化するシステム、すなわち、顧客がシステムをナビゲートする間に選ぶことが可能な音声応答及び対話パスをドキュメント化するなどのために、その現状態でドキュメント化するシステムは、非常に時間がかかる可能性があり、往々にして、単一のシステムを完全にドキュメント化するために３〜９か月も要することがある。したがって、ドキュメンテーションはしばしば、必要とされる時間及びリソースのせいで生産システムと同期せず、ドキュメンテーションの有効性を減少させる。ドキュメンテーション・スクリプトを手動で生成することもまた、時間がかかる可能性があり、手順を経済的にするのを困難にする。これらの要因の結果として、機敏さが損なわれ、タイム・トゥ・バリュー（ｔｉｍｅ−ｔｏ−ｖａｌｕｅ）が１年にわたる可能性がある。
【０００３】
生産ＩＶＲシステムのドキュメンテーションと、生産ＩＶＲシステムのためのテスト・ケースとを迅速かつ確実に生成する手段であって、システム性能に対する悪影響と、人間による対話の必要性又はリソース確保の必要性との技術的問題を解決するそのような手段が必要とされている。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
したがって、発明者は、本発明の好適な一実施形態で、生産ＩＶＲシステムを迅速にナビゲートしドキュメント化するなどのために、生ＩＶＲシステム・クローリングのための様々なシステム及び方法を構想し実施化した。
【課題を解決するための手段】
【０００５】
本発明の好適な一実施形態によれば、ＩＶＲクローリングのためのシステムが開示される。このシステムは：ネットワーク接続されたコンピューティング・デバイス（サーバ又はデスクトップ・ワークステーションなど）上で記憶され動作する、ＶｏｉｃｅＸＭＬ（ＶＸＭＬ）ベースのクローラであってよいスピーチ・クローラと；タッチトーン又はスピーカ・シミュレーション・ベースの対話プログラムであってよいデュアルトーン多重周波数（ＤＴＭＦ）又は自動化スピーチ認識／自然言語スピーチ認識（ＡＳＲ／ＮＬＳＲ）クローラと；スプレッドシートベースのソフトウェア・クローラであってよい設計クローラと；本発明のクローラによって生成されたものなどのコール・フロー・ドキュメンテーション又はレコードを記憶及び提供できるコール・フロー・データベースと；既知のコール・フロー・レコードに従ってコール・フロー・テスティングを実施できるテスト実行エンジンと；ＩＶＲの性能を決定したりコール・フロー・ドキュメンテーション・レコードの精度を決定したりするために、実施されたコール・フロー・テストの結果の分析を実施できるテスト結果アナライザと；を備える。この実施形態によれば、スピーチ・クローラ（ＳＣ）は：ターゲットＶＸＭＬブラウザに問い合わせること；ＶＸＭＬアプリケーションの各ブランチを解析する（すべての可能なレイヤにおけるすべての可能な入力を提供することなどにより）ことによっていずれかの発見されたコール・フローをリバース・エンジニアリングすること；及び、問い合わされたＩＶＲを通るすべての可能なパスを網羅的にテストするために自動化テスティング・ソリューションによって使用できる完全なテスト・ケース・ライブラリを構築すること；を行うアプリケーションであってよい。入力は、
ターゲットＶＸＭＬブラウザのＵＲＬであってよく、出力は、データベースへの記憶又はドキュメンテーション・ファイルへの追加などのための、テスト・ケースをＸＭＬフォーマットで含むファイルであってよい。
【０００６】
ＤＴＭＦクローラ（ＤＣ）は、クローラ・プラットフォームからＩＶＲに実際の電話をかけることによって、ＶＸＭＬに準拠しないか又はそのＶＸＭＬインタフェースが直接にアクセス可能でないターゲット・タッチ・トーンＩＶＲに問い合わせるアプリケーションであってよい。次いで、クローラは、前述のように、すべての可能なレイヤにおけるすべての可能なＤＴＭＦ入力を提供することによってアプリケーションのあらゆるブランチを解析することなどによって、いずれかの発見されたコール・フローをリバース・エンジニアリングすることができ、次いで、完全なテスト・ケース・ライブラリを構築することができる。このソリューションは、自動化音声認識を例えば使用することによってオーディオをテスト・ケース用のテキストに変換するための転写の使用を含み、それにより、ソフトウェアベースのクローラは、電話を介したＩＶＲからの聞こえた音声プロンプトを解析してそれに応答することができる。入力は、電話番号、又は複数の番号（内部ＩＶＲアプリケーションをテストすること、もしくは内部電話ネットワークの外部からの外部ＩＶＲをリモートにテストすることなどのための、内的もしくは外的な番号）であってよく、出力は、ドキュメンテーションへの追加又はデータベースへの記憶に適した、テスト・ケースのライブラリであってよい。
【０００７】
自動化又は自然言語スピーチ認識（ＡＳＲ／ＮＬＳＲ）クローラ（ＡＳＣ）は、クローラ・プラットフォームからＩＶＲに実際の電話をかけることによって、ＶＸＭＬに準拠しないか又はそのＶＸＭＬインタフェースが直接にアクセス可能でないターゲット・スピーチ認識ＩＶＲに問い合わせるアプリケーションであってよい。次いで、クローラは、前述のように、すべての可能なレイヤにおけるすべての可能なスピーチ入力を提供することによってアプリケーションのあらゆるブランチを解析することなどによって、いずれかの発見されたコール・フローをリバース・エンジニアリングすることができ、次いで、完全なテスト・ケース・ライブラリを構築することができる。このソリューションは、自動化音声認識を例えば使用してオーディオをテスト・ケース用のテキストに変換するための転写の使用を含み、それにより、ソフトウェアベースのクローラは、電話を介したＩＶＲからの聞こえた音声プロンプトを解析してそれに応答することかできる。入力は、電話番号、又は複数の番号（内部ＩＶＲアプリケーションをテストすること、もしくは内部電話ネットワークの外部からの外部ＩＶＲをリモートにテストすることなどのための、内的もしくは外的な番号）であってよく、出力は、ドキュメンテーションへの追加又はデータベースへの記憶に適した、テスト・ケースのライブラリであってよい。
【０００８】
設計クローラは、当技術分野で一般的に使用される任意の標準的なスピーチ・アプリケーション設計テンプレートに問い合わせて、スピーチ／ＤＴＭＦアプリケーションのためのテスト・ケースの完全なライブラリを構築するアプリケーションであってよい。このような構成では、クローラは、スプレッドシートなどの設計ドキュメントを辿ることができ、前述のように、ドキュメントからのいずれかの発見されたフローをリバース・エンジニアリングし、データベースとＩＶＲドキュメンテーションとのいずれか又は両方に組み込むのに適したテスト・ケース・ライブラリを出力することができる。
【０００９】
本発明のシステムは、特定の構成又は応用に対して望ましいであろうように、前述のような複数のクローラ及びクローラ・タイプを交換可能に又は同時に組み込むことができることを理解されたい。
【００１０】
前述のクローラに関する２つの例示的な使用事例は、次のとおりである。
使用事例１：スピーチ・クローラを使用する。ユーザが、コマンド・ライン・インタフ
ェースを使用してアプリケーションを立ち上げる。
【００１１】
・  入力：ユーザが、リバース・エンジニアリングされるべきＶＸＭＬブラウザのＵＲＬと、Ｔｅｓｔ  Ｃａｓｅライブラリの親フォルダ名とを入力し、「Ｅｎｔｅｒ」キーを押す。
【００１２】
・  ＜アプリケーションが稼働する＞
・  出力：親フォルダの名前を有するＸＭＬファイル。必要に応じて、サブ・フォルダ、及び各フォルダ内のテスト・ケース。
【００１３】
使用事例２：Ｔｅｓｔ  Ｃａｓｅｓ  ＸＭＬをインポートする。通常のインポート・プロシージャに従うが、ただし、Ｔｅｓｔ  Ｃａｓｅｓのライブラリ全体が、ディレクトリ構造はそのままでインポートされる。
【００１４】
本発明の別の好適な一実施形態によれば、前述のような複数のＩＶＲクローリング・ソフトウェア・アプリケーションを使用してＩＶＲをリバース・エンジニアリングする方法が開示される。この実施形態によれば、この方法は、上記の本発明のシステムにおいて述べたような様々なＩＶＲクローラ、例えば、性質又は動作の点でＶＸＭＬ、ＤＴＭＦ、スピーチ、又は設計ベースのものである場合のあるクローラを利用することができる。最初の工程で、クローラが、その具体的な性質に従ってＩＶＲ情報にアクセスすることができ、これは、ＶＸＭＬベースのクローラがＵＲＬもしくは記憶済みファイルなどからＶＸＭＬスクリプトをロードすること、又は、ＤＴＭＦ／スピーチベースのクローラがＩＶＲシステムに電話を直接かけること、などである。次の工程で、クローラは、会話パスを反復的もしくは再帰的に辿ることによって、又はデータ・ファイル中のあらゆる潜在的なパスを探索する（ＶＸＭＬベースのクローラの場合など）ことによって、ＩＶＲ情報を「クロール」又はリバース・エンジニアリングすることができる。次の工程で、次いでクローラは、新しいコール・テスト・ケースをテスティング・データベースに追加することができ、次の工程で、記憶されたテスト・ケースがテスト・ケース実行エンジンによって取り出されてよく、次いでテスト・ケース実行エンジンは、次の工程でテスト・ケースを実行することができる。次の工程で、テスト・ケース実行の結果が分析されてよく、次いでこれらのテスト結果は、次の工程で、さらに参照されるためにデータベースに記憶されてよい。任意選択の最後の工程で、テスト結果は、人間の分析者などによる手動の検討のために提示されてよく、この分析者は、テストを手動で実施するか又は前のテストの結果を検討して、動作を検討する。
【００１５】
添付の図面は、本発明のいくつかの実施形態を例証するものであり、本記述と共に、実施形態により本発明の原理を説明する働きをする。図面で例証される特定の実施形態は例に過ぎず、本明細書における発明又は請求項の範囲を限定すると考えるべきでは決してないことは、当業者には理解されるであろう。
【図面の簡単な説明】
【００１６】
【図１】本発明の一実施形態で使用されるコンピューティング・デバイスの例示的なハードウェア・アーキテクチャを例証するブロック図。
【図２】本発明の一実施形態による、クライアント・デバイスに関する例示的な論理アーキテクチャを例証するブロック図。
【図３】本発明の一実施形態による、クライアント、サーバ、及び外部サービスの例示的なアーキテクチャ構成を示すブロック図。
【図４】本発明の様々な実施形態で使用されるコンピューティング・デバイスの例示的なハードウェア・アーキテクチャを例証する別のブロック図。
【図５】本発明の好適な一実施形態による、ＩＶＲクローリングのための例示的なシステム・アーキテクチャを例証するブロック図。
【図６】本発明の好適な一実施形態による、ＩＶＲクローリングのための例示的な概観方法の概観を例証する方法流れ図。
【図７】本発明による、ＶＸＭＬクローラを使用してＶＸＭＬドキュメントをリバース・エンジニアリングするための例示的な詳細な方法を例証する方法流れ図。
【図８】本発明による、適切なクローラを使用してＤＴＭＦ又はスピーチベースのオーディオによってＩＶＲと対話するための例示的な詳細な方法を例証する方法流れ図。
【発明を実施するための形態】
【００１７】
発明者は、本発明の好適な一実施形態で、生産ＩＶＲシステムを迅速にナビゲートしドキュメント化するなどのために、生ＩＶＲシステム・クローリングのための様々なシステム及び方法を構想し実施化した。
【００１８】
本出願では、１つ又は複数の異なる発明が記述される場合がある。さらに、本明細書に記載の発明の１つ又は複数について、多くの代替実施形態が記述される場合がある。これらは、例証の目的のみで提示されるものであり、本明細書に含まれる発明又は本明細書で提示される特許請求の範囲の限定では決してないことを理解されたい。本開示からすぐに明らかであろうが、本発明の１つ又は複数は、多くの実施形態に広く適用可能とすることができる。一般に、実施形態は、当業者が本発明の１つ又は複数を実践できるようにするのに十分なほど詳細に記述され、特定の発明の範囲を逸脱することなく、他の実施形態が利用されてもよいこと、ならびに、構造上の、論理的な、ソフトウェアの、電気的な、及び他の変更が加えられてもよいことを理解されたい。したがって、本発明の１つ又は複数は様々な修正及び改変と共に実践されてもよいことを、当業者なら認識するであろう。本明細書に記載の発明の１つ又は複数の、特定の特徴は、本開示の一部をなす１つ又は複数の特定の実施形態又は図に関して記述される場合があり、これらの実施形態又は図では、本発明の１つ又は複数の、具体的な実施形態が例証によって示される。しかし、そのような特徴は、それらが記述される際に参照される１つ又は複数の特定の実施形態又は図における使用に限定されないことを理解されたい。本開示は、本発明の１つ又は複数の、すべての実施形態についての文字どおりの記述でもなければ、すべての実施形態に存在しなければならない本発明の１つ又は複数の特徴の列挙でもない。
【００１９】
本特許出願で提供されるセクションの見出し、及び本特許出願の名称は、便宜上に過ぎず、本開示を限定すると解釈されるべきでは決してない。
相互と通信するデバイスは、別段の明白な指示がない限り、相互と継続的に通信する必要はない。加えて、相互と通信するデバイスは、直接に通信してもよく、又は、論理的もしくは物理的な１つもしくは複数の通信手段もしくは媒介を介して間接的に通信してもよい。
【００２０】
相互と通信するいくつかのコンポーネントを含む実施形態についての記述は、そのようなすべてのコンポーネントが必要とされることを含意しない。反対に、本発明の１つ又は複数の、あり得る多様な実施形態を例証するために、かつ本発明の１つ又は複数の態様をより完全に例証するために、様々な任意選択のコンポーネントが記述される場合がある。同様に、手順工程、方法工程、アルゴリズムなどが逐次的な順序で記述される場合があるが、そのような手順、方法、及びアルゴリズムは一般に、特に反対の記載がない限り、代替の順序で機能するように構成されてもよい。言い換えれば、本特許出願で記述される場合のある工程のどんな連続又は順序も、本来的にそれ自体では、工程がその順序で実施される必要があることを示すものではない。記述される手順の工程は、実際的な任意の順序で実施されてよい。さらに、いくつかの工程は、非同時的に行われるように記述又は含意される（例えば、一方の工程が他方の工程の後に記載されているので）にもかかわらず、同時に実施されてもよい。さらに、手順が図面におけるその描写によって例証される場合
、これは、例証される手順がそれに対する他の変形及び修正を除外することを含意せず、また、例証される手順又はそのいずれかの工程が本発明の１つ又は複数に必要であることを含意せず、また、例証される工程が好適であるということを含意しない。また、工程は一般に、１つの実施形態につき１回記述されるが、これは、工程が１回行われなければならないことを意味するものではなく、また、手順、方法、又はアルゴリズムが遂行又は実行されるたびに工程が１回だけ行われてよいことを意味するものでもない。いくつかの工程は、いくつかの実施形態もしくはいくつかの発生では省略されてもよく、又は、いくつかの工程は、所与の実施形態もしくは発生では２回以上実行されてもよい。
【００２１】
単一のデバイス又は物品が本明細書に記載されているとき、単一のデバイス又は物品の代わりに２つ以上のデバイス又は物品が使用されてもよいことはすぐに明らかであろう。同様に、２つ以上のデバイス又は物品が本明細書に記載されているとき、２つ以上のデバイス又は物品の代わりに単一のデバイス又は物品が使用されてもよいことはすぐに明らかであろう。
【００２２】
デバイスの機能又は特徴は、別法として、そのような機能又は特徴を有すると明示的に記述されない１つ又は複数の他のデバイスによって具現化されてもよい。したがって、本発明の１つ又は複数の、他の実施形態は、そのデバイス自体を含む必要はない。
【００２３】
本明細書で記述又は参照される技法又はメカニズムは、明確にするために単数形で記述されることがあるであろう。しかし、特定の実施形態は、別段に記載がない限り、技法の複数の反復、又はメカニズムの複数のインスタンス化を含む場合があることを理解されたい。図中の手順記述又はブロックは、手順中の具体的な論理機能又は工程を実装するための１つ又は複数の実行可能命令を含む、モジュール、セグメント、又はコード部分を表すと理解されたい。代替実装形態も本発明の実施形態の範囲内に含まれ、これらの代替実施形態では、例えば、当業者には理解されるであろうが、関連する機能に応じて、機能は、ほぼ同時に又は逆の順序で実行されることを含めて、図示又は考察される順序以外の順序で実行される場合がある。
ハードウェア・アーキテクチャ
一般に、本明細書で開示される技法は、ハードウェア上で、又はソフトウェアとハードウェアの組合せ上で実装されることが可能である。例えば、これらの技法は、オペレーティング・システム・カーネル中で、別個のユーザ・プロセス中で、ネットワーク・アプリケーションにバインドされたライブラリ・パッケージ中で、特別に構築されたマシン上で、特定要素向け集積回路（ＡＳＩＣ）上で、又はネットワーク・インタフェース・カード上で、実装されることが可能である。
【００２４】
本明細書で開示される実施形態の少なくともいくつかの、ソフトウェア／ハードウェア・ハイブリッド実装形態は、メモリに記憶されたコンピュータ・プログラムによって選択的に作動又は再構成されるプログラム可能なネットワーク常駐マシン（これは、断続的に接続されるネットワークアウェアなマシンを含むと理解されたい）上で実装されることが可能である。このようなネットワーク・デバイスは、種々のタイプのネットワーク通信プロトコルを利用するように構成又は設計される場合のある複数のネットワーク・インタフェースを有することができる。機能の所与のユニットが実装され得るための１つ又は複数の例示的な手段を例証するために、これらのマシンのいくつかに関する一般的なアーキテクチャが本明細書で記述される場合がある。具体的な実施形態によれば、本明細書で開示される様々な実施形態の特徴又は機能の少なくともいくつかは、１つ又は複数のネットワークに関連付けられた１つ又は複数の汎用コンピュータ上で実装されることが可能であり、これらの汎用コンピュータは、例えば、エンドユーザ・コンピュータ・システム、クライアント・コンピュータ、ネットワーク・サーバもしくは他のサーバ・システム、モバイル・コンピューティング・デバイス（例えば、タブレット・コンピューティング・デバイ
ス、モバイル・フォン、スマートフォン、ラップトップ、もしくは他の適切なコンピューティング・デバイス）、消費者電子デバイス、音楽プレーヤ、もしくは他の任意の適切な電子デバイス、ルータ、スイッチ、もしくは他の適切なデバイス、又はこれらの任意の組合せなどである。少なくともいくつかの実施形態では、本明細書で開示される様々な実施形態の特徴又は機能の少なくともいくつかは、１つ又は複数の仮想化コンピューティング環境（例えば、ネットワーク・コンピューティング・クラウド、１つもしくは複数の物理コンピューティング・マシン上でホストされるバーチャル・マシン、又は他の適切な仮想環境）で実装されることが可能である。
【００２５】
次に図１を参照すると、本明細書で開示される特徴又は機能の少なくとも一部を実装するのに適した例示的なコンピューティング・デバイス１００を描くブロック図が示されている。コンピューティング・デバイス１００は、例えば、前の段落で列挙されたコンピューティング・マシンのいずれか１つであってよく、又は実際、メモリに記憶された１つもしくは複数のプログラムに従ってソフトウェアもしくはハードウェアベースの命令を実行できる他のどんな電子デバイスであってもよい。コンピューティング・デバイス１００は、ワイド・エリア・ネットワーク、メトロポリタン・エリア・ネットワーク、ローカル・エリア・ネットワーク、ワイヤレス・ネットワーク、インターネット、又は他の任意のネットワークなどの通信ネットワークを介して、クライアント又はサーバなど他の複数のコンピューティング・デバイスと通信するように適合されてよく、これは、ワイヤレスであろうと有線であろうと、そのような通信のための知られているプロトコルを使用して行われてよい。
【００２６】
一実施形態では、コンピューティング・デバイス１００は、１つ又は複数の中央処理装置（ＣＰＵ）１０２と、１つ又は複数のインタフェース１１０と、１つ又は複数のバス１０６（ペリフェラル・コンポーネント・インターコネクト（ＰＣＩ）バスなど）とを備える。ＣＰＵ１０２は、適切なソフトウェア又はファームウェアの制御下で作用するとき、具体的に構成されたコンピューティング・デバイス又はマシンの機能に関連する具体的な機能を実装することを担うことができる。例えば、少なくとも１つの実施形態では、コンピューティング・デバイス１００は、ＣＰＵ１０２、ローカル・メモリ１０１、及び／又はリモート・メモリ１２０、ならびにインタフェース１１０を利用して、サーバ・システムとして機能するように構成又は設計されてよい。少なくとも１つの実施形態では、ＣＰＵ１０２は、オペレーティング・システム及び任意の適切なアプリケーション・ソフトウェアやドライバなどを例えば含む場合のある、ソフトウェア・モジュール又はコンポーネントの制御下で、種々のタイプの機能及び／又は動作のうちの１つ又は複数を実施するようになされてよい。
【００２７】
ＣＰＵ１０２は、例えば、Ｉｎｔｅｌ、ＡＲＭ、Ｑｕａｌｃｏｍｍ、及びＡＭＤファミリのマイクロプロセッサのうちの１つからのプロセッサなど、１つ又は複数のプロセッサ１０３を含むことができる。いくつかの実施形態では、プロセッサ１０３は、特定用途向け集積回路（ＡＳＩＣ）、電気的に消去可能プログラム可能な読取専用メモリ（ＥＥＰＲＯＭ）、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）など、コンピューティング・デバイス１００の動作を制御するための特別設計されたハードウェアを含むことができる。具体的な一実施形態では、ローカル・メモリ１０１（１つ又は複数のレベルのキャッシュ・メモリを例えば含めた、不揮発性ランダム・アクセス・メモリ（ＲＡＭ）及び／又は読取専用メモリ（ＲＯＭ）など）もまた、ＣＰＵ１０２の一部を形成することができる。しかし、メモリをシステム１００に結合できる方式には、多くの異なる方式がある。メモリ１０１は、例えば、データやプログラミング命令をキャッシュ及び／又は記憶するなど、様々な目的に使用されることがある。さらに、ＣＰＵ１０２は、Ｑｕａｌｃｏｍｍ  ＳＮＡＰＤＲＡＧＯＮ（商標）やＳａｍｓｕｎｇ  ＥＸＹＮＯＳ（商標）ＣＰＵなど、モバイル・デバイス中や統合デバイス中での使用などのために当技術分野でますます
普及しつつあるような、メモリやグラフィックス処理チップなど追加のハードウェアを含む場合のある様々なシステムオンチップ（ＳＯＣ）タイプのハードウェアの１つであってもよいことを理解されたい。
【００２８】
本明細書において、用語「プロセッサ」は、当技術分野でプロセッサ、モバイル・プロセッサ、又はマイクロプロセッサと呼ばれる集積回路のみに限定されず、広くマイクロコントローラ、マイクロコンピュータ、プログラマブル・ロジック・コントローラ、特定用途向け集積回路、及び他の任意のプログラマブル回路を指す。
【００２９】
一実施形態では、インタフェース１１０は、ネットワーク・インタフェース・カード（ＮＩＣ）として設けられる。一般に、ＮＩＣは、コンピュータ・ネットワークを介したデータ・パケットの送受信を制御し、他のタイプのインタフェース１１０は、例えば、コンピューティング・デバイス１００と共に使用される他の周辺機器をサポートすることができる。設けられる可能性のあるインタフェースとしては、イーサネット・インタフェース、フレーム・リレー・インタフェース、ケーブル・インタフェース、ＤＳＬインタフェース、トークン・リング・インタフェース、グラフィックス・インタフェースなどがある。加えて、例えば、ユニバーサル・シリアル・バス（ＵＳＢ）、シリアル、イーサネット、ＦＩＲＥＷＩＲＥ（商標）、ＴＨＵＮＤＥＲＢＯＬＴ（商標）、ＰＣＩ、パラレル、無線周波数（ＲＦ）、ＢＬＵＥＴＯＯＴＨ（商標）、近接場通信（例えば近接場磁気学を使用する）、８０２．１１（ＷｉＦｉ）、フレーム・リレー、ＴＣＰ／ＩＰ、ＩＳＤＮ、高速イーサネット・インタフェース、ギガビット・イーサネット・インタフェース、シリアルＡＴＡ（ＳＡＴＡ）又は外部ＳＡＴＡ（ＥＳＡＴＡ）インタフェース、高精細度マルチメディア・インタフェース（ＨＤＭＩ）、ディジタル・ビジュアル・インタフェース（ＤＶＩ）、アナログ又はディジタル・オーディオ・インタフェース、非同期転送モード（ＡＴＭ）インタフェース、高速シリアル・インタフェース（ＨＳＳＩ）インタフェース、販売時点情報管理（ＰＯＳ）インタフェース、ファイバ・データ分配インタフェース（ＦＤＤＩ）など、様々なタイプのインタフェースが設けられてよい。一般に、このようなインタフェース１１０は、適切な媒体との通信に適した物理ポートを備えることができる。場合によっては、これらは、独立したプロセッサ（高忠実度Ａ／Ｖハードウェア・インタフェースに対して当技術分野で一般的であるような、専用オーディオ又はビデオ・プロセッサなど）を備えることもあり、場合によっては、揮発性及び／又は不揮発性メモリ（例えばＲＡＭ）を備えることもある。
【００３０】
図１に示すシステムは、本明細書に記載の発明の１つ又は複数を実装するためのコンピューティング・デバイス１００に関する１つの具体的なアーキテクチャを例証するが、これは、本明細書に記載の特徴及び技法の少なくとも一部が実装され得る唯一のデバイス・アーキテクチャでは決してない。例えば、１つ又は任意の数のプロセッサ１０３を有するアーキテクチャが使用されてよく、そのようなプロセッサ１０３は、単一のデバイス中にあるか又は任意の数のデバイス間で分散されてよい。一実施形態では、単一のプロセッサ１０３が通信ならびにルーティング計算を扱い、他の実施形態では、別個の専用の通信プロセッサが設けられてよい。様々な実施形態で、クライアント・デバイス（クライアント・ソフトウェアを実行するタブレット・デバイス又はスマートフォンなど）及びサーバ・システム（後でより詳細に記述されるサーバ・システムなど）を含む本発明によるシステム中で、種々のタイプの特徴又は機能が実装されてよい。
【００３１】
ネットワーク・デバイス構成にかかわらず、本発明のシステムは、データ、汎用ネットワーク動作のためのプログラム命令、又は本明細書に記載の実施形態の機能に関係する他の情報（又はこれらの任意の組合せ）を記憶するように構成された、１つ又は複数のメモリ又はメモリ・モジュール（例えば、リモート・メモリ・ブロック１２０及びローカル・メモリ１０１）を採用することができる。プログラム命令は、例えば、オペレーティング
・システム及び／又は１つもしくは複数のアプリケーションの実行を制御するか、又はこれらを含むことができる。メモリ１２０又はメモリ１０１、１２０はまた、データ構造、構成データ、暗号化データ、履歴システム動作情報、又は本明細書に記載の具体的もしくは一般的な他の任意の非プログラム情報を記憶するように構成されてもよい。
【００３２】
このような情報及びプログラム命令を採用して本明細書に記載の１つ又は複数のシステム又は方法を実装することができるので、少なくともいくつかのネットワーク・デバイス実施形態は、非一時的な機械可読ストレージ媒体を含むことができ、この媒体は、本明細書に記載の様々な動作を実施するためのプログラム命令や状態情報などを記憶するように構成又は設計されてよい。このような非一時的な機械可読ストレージ媒体の例は、以下のものに限定されないが、ハード・ディスクやフロッピー・ディスクや磁気テープなどの磁気媒体；ＣＤ−ＲＯＭディスクなどの光媒体；光ディスクなどの光磁気媒体；及び、プログラム命令を記憶及び実施するように特別に構成されたハードウェア・デバイスを含み、これらのハードウェア・デバイスは、読取専用メモリ・デバイス（ＲＯＭ）、フラッシュ・メモリ（モバイル・デバイス中及び統合システム中で一般的であるような）、固体ドライブ（ＳＳＤ）、及び、固体ドライブとハード・ディスク・ドライブの物理コンポーネントを単一のハードウェア・デバイス中で結合できる「ハイブリッドＳＳＤ」ストレージ・ドライブ（パーソナル・コンピュータに関して当技術分野でますます普及しつつあるような）、メモリスタ・メモリ、ランダム・アクセス・メモリ（ＲＡＭ）などである。このようなストレージ手段は、一体型で非取外し可能である場合もあり（マザーボード上にはんだ付けされるかもしくは他の方法で電子デバイスに統合される場合のあるＲＡＭハードウェア・モジュールなど）、あるいはこれらは、スワップ可能フラッシュ・メモリ・モジュール（物理ストレージ・デバイスを迅速に交換するために設計された「サム・ドライブ」もしくは他の取外し可能媒体など）、「ホットスワップ可能」ハード・ディスク・ドライブもしくは固体ドライブ、取外し可能光ストレージ・ディスク、又は他のそのような取外し可能媒体など、取外し可能である場合もあること、及び、このような一体型ストレージ媒体と取外し可能ストレージ媒体とは交換可能に利用されてよいことを理解されたい。プログラム命令の例は、コンパイラによって作成される場合があるものなどのオブジェクト・コード、アセンブラ又はリンカによって作成される場合があるものなどの機械コード、Ｊａｖａ（商標）コンパイラによって例えば生成される場合がありＪａｖａバーチャル・マシン又は均等物を使用して実行される場合があるものなどのバイト・コードと、インタープリタを使用してコンピュータによって実行できるより高水準のコードを含むファイル（例えば、Ｐｙｔｈｏｎ、Ｐｅｒｌ、Ｒｕｂｙ、Ｇｒｏｏｖｙ、又は他の任意のスクリプティング言語で書かれたスクリプト）と、の両方を含む。
【００３３】
いくつかの実施形態では、本発明によるシステムは、スタンドアロン・コンピューティング・システム上で実装されることが可能である。次に図２を参照すると、スタンドアロン・コンピューティング・システム上での、１つもしくは複数の実施形態又はそのコンポーネントの典型的な例示的アーキテクチャを描くブロック図が示されている。コンピューティング・デバイス２００は、例えばクライアント・アプリケーション２３０など、本発明の実施形態の１つ又は複数の機能又はアプリケーションを遂行するソフトウェアを実行できるプロセッサ２１０を備える。プロセッサ２１０は、例えば、ＭｉｃｒｏｓｏｆｔのＷＩＮＤＯＷＳ（商標）オペレーティング・システム、ＡｐｐｌｅのＭａｃ  ＯＳ／Ｘ又はｉＯＳオペレーティング・システム、Ｌｉｎｕｘオペレーティング・システムの何らかの種類、ＧｏｏｇｌｅのＡＮＤＲＯＩＤ（商標）オペレーティング・システム等、のバージョンなど、オペレーティング・システム２２０の制御下で、コンピューティング命令を遂行することができる。多くの場合、１つ又は複数の共有サービス２２５が、システム２００中で動作可能であってよく、共通サービスをクライアント・アプリケーション２３０に提供するために有用であってよい。サービス２２５は、例えば、ＷＩＮＤＯＷＳ（商標）サービス、Ｌｉｎｕｘ環境におけるユーザ空間共通サービス、又は、オペレーティング
・システム２１０と共に使用される他の任意のタイプの共通サービス・アーキテクチャであってよい。入力デバイス２７０は、例えば、キーボード、タッチスクリーン、マイクロフォン（例えば音声入力のための）、マウス、タッチパッド、トラックボール、又はこれらの任意の組合せを含めた、ユーザ入力を受け取るのに適した任意のタイプのものであってよい。出力デバイス２６０は、システム２００に対してリモートであろうとローカルであろうと、出力を１人又は複数のユーザに提供するのに適した任意のタイプのものであってよく、例えば、視覚的出力のための１つもしくは複数の画面、スピーカ、プリンタ、又はこれらの任意の組合せを含むことができる。メモリ２４０は、例えばソフトウェアを実行するためにプロセッサ２１０によって使用されるための、当技術分野で知られている任意の構造及びアーキテクチャを有するランダム・アクセス・メモリであってよい。ストレージ・デバイス２５０は、データをディジタル形式で記憶するための、任意の磁気的、光学的、機械的、メモリスタ、又は電気的ストレージ・デバイス（図１に関して上述したような）であってよい。ストレージ・デバイス２５０の例は、フラッシュ・メモリ、磁気ハード・ドライブ、ＣＤ−ＲＯＭ、及び／又はその他を含む。
【００３４】
いくつかの実施形態では、本発明のシステムは、任意の数のクライアント及び／又はサーバを有するものなど、分散コンピューティング・ネットワーク上で実装されることが可能である。次に図３を参照すると、本発明の一実施形態によるシステムの少なくとも一部を分散コンピューティング・ネットワーク上で実装するための例示的なアーキテクチャ３００を描くブロック図が示されている。この実施形態によれば、任意の数のクライアント３３０が設けられてよい。各クライアント３３０は、本発明のクライアント側部分を実装するためのソフトウェアを実行することができる。クライアントは、図２で例証されるようなシステム２００を含むことができる。加えて、１つ又は複数のクライアント３３０から受け取られた要求を扱うために、任意の数のサーバ３２０が設けられてよい。クライアント３３０とサーバ３２０とは、１つ又は複数の電子ネットワーク３１０を介して相互と通信することができ、電子ネットワーク３１０は、様々な実施形態で、インターネット、ワイド・エリア・ネットワーク、モバイル電話ネットワーク（ＣＤＭＡもしくはＧＳＭセルラ・ネットワークなど）、ワイヤレス・ネットワーク（ＷｉＦｉ、Ｗｉｍａｘ、ＬＴＥなど）、又はローカル・エリア・ネットワーク、のいずれかであってよい（又は実際、当技術分野で知られているどんなネットワーク・トポロジであってもよく、本発明は、いずれか１つのネットワーク・トポロジを他のいずれかよりも好むものではない）。ネットワーク３１０は、例えば有線及び／又はワイヤレス・プロトコルを含めて、知られている任意のネットワーク・プロトコルを使用して実装されてよい。
【００３５】
加えて、いくつかの実施形態では、サーバ３２０は、追加の情報を得るか又は特定の呼に関する追加のデータを参照するために必要とされるとき、外部サービス３７０を呼び出すことができる。外部サービス３７０との通信は、例えば、１つ又は複数のネットワーク３１０を介して行われてよい。様々な実施形態で、外部サービス３７０は、ハードウェア・デバイス自体に関係するか又はハードウェア・デバイス自体にインストールされた、ウェブ対応サービス又は機能を含むことができる。例えば、クライアント・アプリケーション２３０がスマートフォン又は他の電子デバイス上で実装される実施形態では、クライアント・アプリケーション２３０は、クラウド中のサーバ・システム３２０に記憶された情報、又は、特定企業の構内もしくはユーザの構内のうちの１つもしくは複数で展開される外部サービス３７０に記憶された情報を得ることができる。
【００３６】
本発明のいくつかの実施形態では、クライアント３３０又はサーバ３２０（又は両方）は、ローカルに又は１つもしくは複数のネットワーク３１０にわたってリモートに展開される場合のある、１つ又は複数の特殊化されたサービス又はアプリケーションを利用することができる。例えば、１つ又は複数のデータベース３４０が、本発明の１つ又は複数の実施形態によって使用又は参照されてよい。データベース３４０は、多様なアーキテクチ
ャで、かつ多様なデータ・アクセス及び操作手段を使用して構成されてよいことを、当業者は理解されたい。例えば、様々な実施形態で、１つ又は複数のデータベース３４０は、構造化照会言語（ＳＱＬ）を使用する関係データベース・システムを含むことができ、他のデータベース３４０は、当技術分野で「ＮｏＳＱＬ」と呼ばれるものなどの代替データ記憶技術（例えば、Ｈａｄｏｏｐ  Ｃａｓｓａｎｄｒａ、Ｇｏｏｇｌｅ  Ｂｉｇ  Ｔａｂｌｅなど）を含むことができる。いくつかの実施形態では、本発明により、列指向データベース、インメモリ・データベース、クラスタ化データベース、分散データベース、さらにはフラット・ファイル・データ・リポジトリなど、種々のデータベース・アーキテクチャが使用されてもよい。本明細書における特定の実施形態について具体的なデータベース技術又は具体的なコンポーネント構成が指定されない限り、知られているか又は将来のデータベース技術の任意の組合せが適宜使用されてよいことは、当業者には理解されるであろう。さらに、本明細書における用語「データベース」は、物理的なデータベース・マシン、単一のデータベース・システムとして働くマシンのクラスタ、又はデータベース管理システム全体の内の論理データベース、を指す場合があることを理解されたい。用語「データベース」の所与の使用について具体的な意味が指定されない限り、これは、この単語のこれらの意味のいずれかを意味すると解釈されるべきであり、これらの意味はすべて、当業者によって用語「データベース」の明白な意味として理解される。
【００３７】
同様に、本発明のほとんどの実施形態は、１つ又は複数のセキュリティ・システム３６０及び構成システム３５０を利用することができる。セキュリティ及び構成管理は、一般的な情報技術（ＩＴ）及びウェブ機能であり、それぞれのいくらかの量は、一般に、任意のＩＴ又はウェブ・システムに関連する。具体的なセキュリティ３６０又は構成システム３５０又はアプローチがいずれかの具体的な実施形態に関する記述によって具体的に必要とされない限り、当技術分野で現在又は将来に知られる任意の構成又はセキュリティ・サブシステムが制限なく本発明の実施形態と共に使用されてよいことを、当業者は理解されたい。
【００３８】
図４に、システム全体にわたる様々な場所のいずれかで使用できるようなコンピュータ・システム４００の例示的な概観を示す。これは、コードを実行してデータを処理することができる任意のコンピュータの例である。本明細書で開示されるシステム及び方法のより広い範囲を逸脱することなく、コンピュータ・システム４００に様々な修正及び変更が加えられてもよい。ＣＰＵ４０１がバス４０２に接続され、このバスにはまた、メモリ４０３、不揮発性メモリ４０４、ディスプレイ４０７、Ｉ／Ｏユニット４０８、及びネットワーク・インタフェース・カード（ＮＩＣ）４１３も接続される。Ｉ／Ｏユニット４０８は通常、キーボード４０９、ポインティング・デバイス４１０、ハード・ディスク４１２、及びリアルタイム・クロック４１１に接続されてよい。ＮＩＣ４１３はネットワーク４１４に接続し、ネットワーク４１４は、インターネット又はローカル・ネットワークであってよく、このローカル・ネットワークは、インターネットへの接続を有する場合もあり有さない場合もある。システム４００の一部として電源ユニット４０５も示されており、電源ユニット４０５は、この例ではＡＣ電源４０６に接続される。存在する可能性のあるバッテリは図示されておらず、また、周知ではあるが本明細書で開示される現在のシステム及び方法の具体的な新規機能には適用可能でない、他の多くのデバイス及び修正は図示されていない。例証されるいくつか又はすべてのコンポーネントが組み合わされてもよいことを理解されたい。これは、様々な統合応用例（例えば、Ｑｕａｌｃｏｍｍ又はＳｕｍｓｕｎｇ  ＳＯＣベースのデバイス）などにおいて行われてよく、あるいは、複数の能力又は機能を単一のハードウェア・デバイスに結合することが適切である可能性があるときはいつでも行われてよい（例えば、スマートフォンなどのモバイル・デバイス、ビデオ・ゲーム・コンソール、自動車内のナビゲーション・システムもしくはマルチメディア・システムなどの車内コンピュータ・システム、又は他の統合ハードウェア・デバイスにおいて）。
【００３９】
様々な実施形態で、本発明のシステム又は方法を実装するための機能は、任意の数のクライアント及び／又はサーバ・コンポーネント間で分散されてよい。例えば、本発明との関連で様々な機能を実施するために様々なソフトウェア・モジュールが実装されてよく、このようなモジュールは、サーバ及び／又はクライアント・コンポーネント上で稼働するように様々に実装されてよい。
概念的なアーキテクチャ
図５は、ＩＶＲクローリングのための例示的なシステム５００のブロック図である。システム５００は：ネットワーク接続されたコンピューティング・デバイス（サーバ又はデスクトップ・ワークステーションなど）上で記憶され動作する、ＶＸＭＬベースのクローラであってよいスピーチ・クローラ５２１と；タッチトーン（ＤＴＭＦ）ベースの対話プログラムであってよいＤＴＭＦクローラ（ＤＣ）５２２、又は自動生成された発話ベースの対話プログラムであってよいＡＳＲスピーチ・クローラ（ＡＳＣ）５２２（受け取られたオーディオ入力又は実施されている操作の性質に従って交換可能に又は同時に利用される場合があるような）と；スプレッドシートベースのソフトウェア・クローラであってよい設計クローラ５２０と；本発明のクローラによって生成されたものなどのコール・フロー・ドキュメンテーション又はレコードを記憶及び提供できるコール・フロー・データベース５３０と；既知のコール・フロー・レコードに従ってコール・フロー・テスティングを実施できるテスト実行エンジン５４０と；ＩＶＲの性能を決定したりコール・フロー・ドキュメンテーション・レコードの精度を決定したりするために、実施されたコール・フロー・テストの結果の分析を実施できるテスト結果アナライザ５４５と、を備える。この実施形態によれば、スピーチ・クローラ（ＳＣ）５２１は、ターゲットＶＸＭＬブラウザ５７２に問い合わせ、ＶＸＭＬアプリケーションの各ブランチを解析する（すべての可能なレイヤにおけるすべての可能な入力を提供することなどにより）ことによっていずれかの発見されたコール・フローをリバース・エンジニアリングし、完全なテスト・ケース・ライブラリを構築する、アプリケーションであってよい。入力は、ターゲットＶＸＭＬファイル５１１のＵＲＬであってよく、出力は、データベースへの記憶又はドキュメンテーション・ファイルへの追加などのための、テスト・ケースをＸＭＬフォーマットで含むファイルであってよい。
【００４０】
ＤＴＭＦクローラ（ＤＣ）５２２は、公衆交換電話網（ＰＳＴＮ）又はセルラ・ネットワーク（ＧＳＭもしくはＣＤＭＡ無線通信ネットワーク等）などの電話ネットワーク５０１を介してクローラ・プラットフォームからＩＶＲ５１３に実際の電話をかけることによって、ＶＸＭＬに準拠しない（又はそのＶＸＭＬインタフェースがアクセス可能でない）ターゲット・タッチ・トーンＩＶＲ５１３に問い合わせるアプリケーションであってよい。次いで、クローラは、前述のように、すべての可能なレイヤにおいてＤＴＭＦジェネレータ５２４（ソフトウェアベースのアプリケーションで適切であるように、物理的なキー押下を必要とせずに電話入力をシグナリングするためのＤＴＭＦトーンを生成するのに利用できるものなど）を介してすべての可能なＤＴＭＦ入力を提供することによってアプリケーションのあらゆるブランチを解析することなどによって、いずれかの発見されたコール・フローをリバース・エンジニアリングすることができ、次いで、完全なテスト・ケース・ライブラリを構築することができる。このソリューションは、自動化スピーチ認識エンジン５２３を例えば利用することによってオーディオをテスト・ケース用のテキストに変換するための転写の使用を含み、それにより、ソフトウェアベースのクローラは、電話を介したＩＶＲからの聞こえた音声プロンプトを解析してそれに応答することができる。入力は、電話番号、又は複数の番号（内部ＩＶＲアプリケーションをテストすること、もしくは内部電話ネットワークの外部からの外部ＩＶＲをリモートにテストすることなどのための、内的もしくは外的な番号）であってよく、出力は、ドキュメンテーションへの追加又はデータベースへの記憶に適した、テスト・ケースのライブラリであってよい。
【００４１】
ＡＳＲ／ＮＬＳＲスピーチ・クローラ（ＡＳＣ）５２２は、公衆交換電話網（ＰＳＴＮ）又はセルラ・ネットワーク（ＧＳＭもしくはＣＤＭＡ無線通信ネットワーク等）などの電話ネットワーク５０１を介してクローラ・プラットフォームからＩＶＲ５１３に実際の電話をかけることによって、ＶＸＭＬに準拠しない（又はそのＶＸＭＬインタフェースがアクセス可能でない）ターゲットＡＳＲ／ＮＬＳＲスピーチベースのＩＶＲ５１３に問い合わせるアプリケーションであってよい。次いで、クローラは、前述のように、すべての可能なレイヤにおいてスピーチ発話（テキスト−スピーチ）ジェネレータ５２４（ソフトウェアベースのアプリケーションで適切であるように、生の人間の話者を必要とせずに、シミュレートされた顧客によって話される発話を生成するのに利用できるものなど）を介してすべての可能なＤＴＭＦ入力を提供することによってアプリケーションのあらゆるブランチを解析することなどによって、いずれかの発見されたコール・フローをリバース・エンジニアリングすることができ、次いで、完全なテスト・ケース・ライブラリを構築することができる。このソリューションは、自動化スピーチ認識エンジン５２３を例えば利用することによってオーディオをテスト・ケース用のテキストに変換するための転写の使用を含み、それにより、ソフトウェアベースのクローラは、電話を介したＩＶＲからの聞こえた音声プロンプトを解析してそれに応答することができる。入力は、電話番号、又は複数の番号（内部ＩＶＲアプリケーションをテストすること、もしくは内部電話ネットワークの外部からの外部ＩＶＲをリモートにテストすることなどのための、内的もしくは外的な番号）であってよく、出力は、ドキュメンテーションへの追加又はデータベースへの記憶に適した、テスト・ケースのライブラリであってよい。
【００４２】
設計クローラ５２０は、当技術分野で一般的に使用される標準的なスピーチ・アプリケーション設計テンプレート５１０に問い合わせて、スピーチ／ＤＴＭＦアプリケーションのためのテスト・ケースの完全なライブラリを構築するアプリケーションであってよい。このような構成では、クローラは、スプレッドシートなどの設計ドキュメント５１０を辿ることができ、前述のように、ドキュメントからのいずれかの発見されたフローをリバース・エンジニアリングし、データベースとＩＶＲドキュメンテーションとのいずれか又は両方に組み込むのに適したテスト・ケース・ライブラリを出力することができる。
【００４３】
例証されるように、テスト実行エンジン５４０は、本発明の様々なＩＶＲクローラからの記憶された又は受け取られた入力に少なくとも部分的に基づいてテスト・ケースを実行することができ、テスト実行の結果を分析のためにテスト結果アナライザ５４５に提示することができる。結果的に得られた分析されたテスト結果５５０は、次いで、人間の分析者などによる検討のために提示されてもよく、又は、後の時点でさらに検討されるためもしくは将来の追加分析動作に組み込まれるために、データベースに記憶されるように提示されてもよい。
【００４４】
本発明のシステムは、特定の構成又は応用に対して望ましいであろうように、前述のような複数のクローラ及びクローラ・タイプを交換可能に又は同時に組み込むことができることを理解されたい。
例示的な実施形態に関する詳細な記述
図６は、前述のような複数のＩＶＲクローリング・ソフトウェア・アプリケーションを使用してＩＶＲをリバース・エンジニアリングするための例示的な概観方法６００を例証する方法流れ図である。この実施形態によれば、この方法は、上記の本発明のシステムにおいて述べたような様々なＩＶＲクローラ、例えば、性質又は動作の点でＶＸＭＬ、ＤＴＭＦ、又は設計ベースのものである場合のあるクローラを利用することができる。最初の工程で、クローラが、その具体的な性質に従ってＩＶＲ情報にアクセスすることができ、これは、ＶＸＭＬベースのクローラがＵＲＬもしくは記憶済みファイルなどからＶＸＭＬスクリプトをロードすること（６０１）、スピーチ・クローラが設計仕様をロードすること（６０５）、又は、ＤＴＭＦもしくはＡＳＲ／ＮＬＳＲスピーチベースのクローラがＩ
ＶＲに接続（６１０）してＩＶＲシステムに電話を直接かけること（６１１）などである。次の工程で、クローラは、その具体的な性質に従ってＩＶＲ情報を「クロール」又はリバース・エンジニアリングすることができ、これは、ＶＸＭＬドキュメントをリバース・エンジニアリングすること（６０２）や設計仕様をリバース・エンジニアリングすること（６０６）、あるいは、ＤＴＭＦ又は口頭発話（実際の生のもしくは録音された人間のスピーチや、スクリプトを利用したテキスト−スピーチ・ジェネレータなどからの自動生成された人工スピーチなど）オーディオを使用してＩＶＲの会話パスを辿ること（６１２）などによって行うことができる。次の工程６２０で、次いでクローラは、新しいコール・テスト・ケースをテスティング・データベースに追加することができ、次の工程６２１で、記憶済みテスト・ケースがテスト・ケース実行エンジンによって取り出されてよく、次いでテスト・ケース実行エンジンは、次の工程６２２でテスト・ケースを実行することができる。次の工程６２３で、テスト・ケース実行の結果が分析されてよく、次いでこれらのテスト結果は、次の工程６２４で、さらに参照されるためにデータベースに記憶されてよい。任意選択の最後の工程６２５で、テスト結果は、人間の分析者などによる手動の検討のために提示されてよく、この分析者は、テストを手動で実施するか又は前のテストの結果を検討して、動作を検討する。
【００４５】
図７は、本発明による、ＶＸＭＬクローラを使用してＶＸＭＬドキュメントをリバース・エンジニアリングするための例示的な詳細な方法７００を例証する方法流れ図である。最初の工程７０１で、クローラが、ＶＸＭＬファイルにリンクするＵＲＬをＶＸＭＬブラウザから取り出すことができ、次の工程７０２で、取出し後に、リンクされたＶＸＭＬファイルを解析することができる。次の工程７０３で、クローラは、ＶＸＭＬファイルを解析して、ＩＶＲが選択肢を提示することになるポイントを識別することなどによって、実行のすべての可能なブランチを識別することに進むことができる。この場合、様々な入力が顧客（又はＩＶＲシステムへの他の発呼者）から受け取られる可能性があり、各入力は、ＩＶＲメニューを通して会話パスを導いていく異なる可能な選択肢に対応する。次の工程７０４で、クローラは、見つかったブランチを辿るのにどんな入力ストリングが必要とされるであろうかを識別することができる。次の工程７０５で、クローラは今や、識別された入力を使用してテスト・ケースを生み出すことができる。このテスト・ケースは、テスト・ケースを実行することで、ＩＶＲメニューを通して特定のパスを効果的にナビゲートすることになるようなものであり、このナビゲートは、ブランチを示す入力プロンプトを待機し、次いで、必要とされる入力を供給してブランチを１つのパスだけ下に辿り、それ以上のブランチがないときである実行の終わり、及びＩＶＲメニューの終わりに到達するまで以下同様にすることなどによって行われる（この結果、通常、発呼者は、コンタクト・センタ・エージェントに接続されることになるか、又は、ＩＶＲ外部の支援を得るためのさらに他の指示（例えば、さらに助けを求めるための具体的な番号又はウェブ・アドレス）が与えられることなどになるであろう）。最後の工程７０６で、結果的に得られたテスト・ケースは、将来の参照のためにデータベースに記憶されてよい。
【００４６】
図８は、本発明による、ＤＴＭＦ又はＡＳＲ／ＮＬＳＲスピーチ・クローラを使用してＤＴＭＦ又はスピーチベースのオーディオを介してＩＶＲと対話するための例示的な詳細な方法８００を例証する方法流れ図である。最初の工程８０１で、クローラは、ＰＳＴＮ又はインターネットベースの接続など（ＤＴＭＦトーンベースの又は口頭発話の入力をサポートする、いくつかのボイスオーバＩＰ（ＶｏＩＰ）サービスのいずれかなど）を介して、ＩＶＲシステムに電話をかけることができる。次の工程８０２で、クローラは、入力を求めるプロンプトをＩＶＲから受け取ることができ、これは、発呼者が通常、ＩＶＲメニューをナビゲートし続けるために選択肢を発呼者に指示する音声プロンプトを聞くことになるものなどである（例えば、「技術サポートについては１を押してください。アカウント・サービスについては２を押してください」、又は、スピーチ・アプリケーションの場合は、「技術サポートについてはサポートと言ってください。アカウント・サービスに
ついてはアカウントと言ってください」など）。次の工程８０３で、クローラは、自動化スピーチ認識（ＡＳＲ）を使用してこのプロンプトを処理することができ、それにより、ＩＶＲメニュー・プロンプトによって何が話されているかを識別してこのプロンプトを処理することなどができる。次の工程８０４で、クローラは、許容可能なＤＴＭＦ又はスピーチ発話入力を識別することができる。これは、（前の例を続けると）キー押下「１」もしくは「２」（又はスピーチの場合は例えば「サポート」もしくは「アカウント」）が、この特定のプロンプトに対する可能な入力選択肢であると識別することなどである。次いで、クローラは、これらの入力選択肢を処理「スタック」に追加することができ、したがって、可能な入力は、それらに対応するプロンプトと共に、それらに遭遇した順序で記憶されることが可能であり、それにより、動作中にＩＶＲメニュー・システムを順序正しく辿るのが容易になる。次の工程８０５で、クローラは、スタック上の次のＤＴＭＦ又はスピーチ発話入力（この例の場合では、キー「１」を押すこと又は「サポート」と言うことに対応するトーンなど）を取り出し、対応するＤＴＭＦトーン入力をＩＶＲシステムに供給することができ、それにより、メニュー・プロンプトをトリガしてメニュー・パスを辿り続けることなどができる。追加のプロンプトに遭遇する間、動作は前の工程８０２からルーピング又は反復方式で継続することができ、したがって、クローラは、ＩＶＲからオーディオ・プロンプトを受け取って処理し、適切なＤＴＭＦ又はスピーチ発話入力を識別し、これらをスタック上に配置し、次の入力を供給して、遭遇するＩＶＲメニュー・プロンプトの中を進む、ということを継続する。遭遇するプロンプトがそれ以上ないとき（クローラがＩＶＲメニュー・パスの終わりに達したときなど）は、次の工程８０６で、クローラは、遭遇したプロンプト及び供給された入力に少なくとも部分的に基づいて、使用されたパスについてのテスト・ケースを生成することができ、次いで、スタック上の次のＤＴＭＦ又はスピーチ発話入力に進み、ＩＶＲを通して新しいメニュー・パスを下に継続することができる。最後の工程８０６で、クローラは、結果的に得られたテスト・ケースを、記憶及び将来の参照のためにデータベースに送ることができる。テスト・ケースは、完成するにつれて個々に送られてもよく（クローラが新しいケースを求めて追加のＩＶＲパスをまだ辿っている間に、など）、又は、すべての可能なＩＶＲパスが尽きて動作が完了した後で全部一度にバルク動作で送られてもよいことを理解されたい。
【００４７】
当業者なら、前述の様々な実施形態の、可能な修正の範囲を認識するであろう。したがって、本発明は、特許請求の範囲及びそれらの均等物によって定義される。
本発明の第１の構成によると、対話式音声応答システム・クローリングのためのシステムにおいて、
ネットワーク接続されたコンピューティング・デバイス上で記憶され動作するＩＶＲクローラと、
ネットワーク接続されたコンピューティング・デバイス上で記憶され動作するデータベースとからなり、
前記ＩＶＲクローラが対話式音声応答システム中のメニュー・パスを辿り、
前記ＩＶＲクローラが、辿られた前記メニュー・パスに少なくとも部分的に基づいてテスト・ケースを生成し、
前記ＩＶＲクローラが前記テスト・ケースを前記データベースに送り、
前記データベースが、前記ＩＶＲクローラから受け取られた前記テスト・ケースを記憶する、システムを要旨とする。
【００４８】
本発明の第２の構成によると、第１の構成において、前記ＩＶＲクローラがＶＸＭＬベースのクローラであることを要旨とする。本発明の第３の構成によると、第２の構成において、ＶＸＭＬブラウザをさらに備え、前記ＶＸＭＬブラウザがネットワークを介してＶＸＭＬファイルを与えることを要旨とする。本発明の第４の構成によると、第３の構成において、前記ＶＸＭＬベースのクローラがＶＸＭＬファイルを前記ＶＸＭＬブラウザから受け取ることを要旨とする。本発明の第５の構成によると、第１の構成において、前記Ｉ
ＶＲクローラが設計ベースのクローラであることを要旨とする。本発明の第６の構成によると、第５の構成において、前記設計ベースのクローラがＩＶＲについての設計仕様を処理することを要旨とする。本発明の第７の構成によると、第１の構成において、前記ＩＶＲクローラがＤＴＭＦベースのクローラであることを要旨とする。本発明の第８の構成によると、第７の構成において、前記ＤＴＭＦベースのクローラがＩＶＲシステムに電話をかけることを要旨とする。本発明の第９の構成によると、第８の構成において、前記ＤＴＭＦベースのクローラがＤＴＭＦトーン入力を介して前記ＩＶＲシステムと対話することを要旨とする。本発明の第１０の構成によると、第１の構成において、前記ＩＶＲクローラがＡＳＲ／ＮＬＳＲスピーチベースのクローラであることを要旨とする。本発明の第１１の構成によると、第１０の構成において、前記ＡＳＲ／ＮＬＳＲスピーチベースのクローラがＩＶＲシステムに電話をかけることを要旨とする。本発明の第１２の構成によると、第１１の構成において、前記ＡＳＲ／ＮＬＳＲスピーチベースのクローラが、自動生成されたスピーチ発話入力を介して前記ＩＶＲシステムと対話することを要旨とする。本発明の第１３の構成によると、第９または１２の構成において、ネットワーク接続されたコンピューティング・デバイス上で記憶され動作する自動スピーチ認識エンジンをさらに備え、前記自動化スピーチ認識エンジンが、前記ＤＴＭＦ又はＡＳＲ／ＮＬＳＲスピーチベースのクローラに代わって前記ＩＶＲからのオーディオ・プロンプトを解釈することを要旨とする。本発明の第２の構成によると、第１４の構成において、テスト・ケース実行エンジンをさらに備え、前記テスト・ケース実行エンジンが、前記ＩＶＲクローラによって作成されたテスト・ケースを実行することを要旨とする。本発明の第１５の構成によると、第１４の構成において、前記テスト・ケースが、作成されるのに伴って前記ＩＶＲクローラから直接に取り出されることを要旨とする。本発明の第１６の構成によると、第１４の構成において、記憶されたテスト・ケースがデータベースから取り出されることを要旨とする。本発明の第１７の構成によると、第１４の構成において、ネットワーク接続されたコンピューティング・デバイス上で記憶され動作するテスト結果アナライザをさらに備え、前記テスト結果アナライザが前記テスト実行エンジンからのテスト・ケース実行の結果を分析することを要旨とする。本発明の第１８の構成によると、第１７の構成において、分析結果が将来の参照のために記憶されることを要旨とする。本発明の第１９の構成によると、第１７の構成において、結果が即座の検討のために提供されることを要旨とする。
【００４９】
本発明の第２０の構成によると、対話式音声応答システムのクローリング方法において、
ＩＶＲクローラを介してＩＶＲシステムにアクセスする工程と、
前記ＩＶＲシステムのメニュー・パスをリバース・エンジニアリングする工程と、
発見された前記メニュー・パスに少なくとも部分的に基づいてテスト・ケースを作成する工程と、
前記テスト・ケースを将来の参照のためにデータベースに記憶する工程とを備える、方法を要旨とする。
【００５０】
本発明の第２１の構成によると、第２０の構成において、テスト・ケース実行エンジンを介して前記テスト・ケースを実行する工程と、
テスト結果アナライザを介してテスト・ケース実行の結果を分析する工程と、
分析結果を提供する工程と、
をさらに備えることを要旨とする。
【００５１】
本発明の第２２の構成によると、第２１の構成において、前記分析結果を将来の参照のためにデータベースに記憶する工程をさらに備えることを要旨とする。
【図１】
2018509011.tif 000002
【図２】
2018509011.tif 000003
【図３】
2018509011.tif 000004
【図４】
2018509011.tif 000005
【図５】
2018509011.tif 000006
【図６】
2018509011.tif 000007
【図７】
2018509011.tif 000008
【図８】
2018509011.tif 000009
【国際調査報告】
2018509011.tif 000010