(57)【要約】【課題】テスト機に適切な応答を送信することのできるテスト支援装置等を提供する。【解決手段】要求捕捉部３１０は、テスト入力と外部サーバ宛の要求電文とを捕捉する。要求転送部３２０は、外部サーバが正常に稼働している場合に、捕捉された要求電文を外部サーバへ転送する。応答捕捉部３３０は、テスト機宛の応答電文を捕捉する。記憶部３４０は、捕捉されたテスト入力と捕捉された応答電文とを対応付けて記憶する。特定部３５１は、外部サーバが正常に稼働していない場合に、記憶部３４０に記憶された複数のテスト入力の中から、捕捉されたテスト入力に対応するテスト入力を特定する。生成部３５２は、特定されたテストに対応付けられた応答電文に基づく代理応答電文を生成する。そして、応答転送部３６０は、捕捉された応答電文、若しくは、生成された代理応答電文を、テスト機へ転送する。【選択図】図３
2020101912.tif 000002
【特許請求の範囲】
【請求項１】
テスト機へ入力されるテスト入力と、当該テスト入力が入力されたテスト機から発せられる外部サーバ宛の要求と、を捕捉する要求捕捉部と、
前記外部サーバが正常に稼働しており、かつ、前記テスト入力が転送条件を満たしている場合に、捕捉された前記要求を前記外部サーバへ転送する要求転送部と、
転送された前記要求に応じて前記外部サーバから発せられる前記テスト機宛の応答を捕捉する応答捕捉部と、
捕捉された前記テスト入力と、捕捉された前記応答とを対応付けて記憶する記憶部と、
前記外部サーバが正常に稼働していない場合に、前記記憶部に記憶された前記テスト入力の中から、捕捉された前記テスト入力に対応する前記テスト入力を特定する特定部と、
特定された前記テスト入力に対応付けられた前記応答に基づく代理応答を生成する生成部と、
捕捉された前記応答、若しくは、生成された前記代理応答を、前記テスト機へ転送する応答転送部と、
を備えることを特徴とするテスト支援装置。
【請求項２】
請求項１に記載のテスト支援装置であって、
前記記憶部に記憶された前記テスト入力を複数のグループにグループ化する管理部と、
前記グループ内において、前記テスト入力に対応付けられた前記応答をそれぞれ比較し、異なる箇所を特定箇所として抽出する抽出部と、を更に備え、
前記特定部は、捕捉された前記テスト入力が帰属すべき前記グループに属する前記テスト入力を特定し、
前記生成部は、特定された前記テスト入力に対応付けられた前記応答について、前記特定箇所を除去し、除去した箇所にダミー値を挿入することにより、前記代理応答を生成する、
ことを特徴とするテスト支援装置。
【請求項３】
請求項２に記載のテスト支援装置であって、
前記管理部は、前記記憶部に記憶された前記テスト入力同士の類似性に基づき、当該類似性が近い前記テスト入力を同一グループに属するようにグループ化する、
ことを特徴とするテスト支援装置。
【請求項４】
請求項２に記載のテスト支援装置であって、
前記管理部は、前記記憶部に記憶された複数の前記テスト入力のそれぞれを、複数のグループのうちの何れかのグループに属するようにグループ化する、
ことを特徴とするテスト支援装置。
【請求項５】
請求項２に記載のテスト支援装置であって、
前記管理部は、前記テスト入力を識別する識別番号に基づき、当該識別番号が同じ前記テスト入力を同一グループに属するようにグループ化し、
前記特定部は、捕捉された前記テスト入力の前記識別番号と同じ前記グループに属する前記テスト入力を特定する、
ことを特徴とするテスト支援装置。
【請求項６】
請求項２に記載のテスト支援装置であって、
前記管理部は、捕捉された前記テスト入力と、前記記憶部に記憶された前記テスト入力との編集距離に基づき、当該編集距離が近い前記テスト入力を特定グループに属するようにグループ化し、
前記特定部は、前記特定グループに属する前記テスト入力を特定する、
ことを特徴とするテスト支援装置。
【請求項７】
請求項２に記載のテスト支援装置であって、
前記管理部は、記憶されている前記テスト入力同士の編集距離に基づき、当該編集距離が近い前記テスト入力を同一グループに属するようにグループ化し、
前記特定部は、捕捉された前記テスト入力と、前記複数のグループのそれぞれに属する何れか１つのテスト入力との編集距離に基づき、当該編集距離の最も近い前記グループに属する前記テスト入力を特定する、
ことを特徴とするテスト支援装置。
【請求項８】
記憶部を備えたテスト支援装置が実行するテスト支援方法であって、
前記テスト支援装置が、テスト機へ入力されるテスト入力と、当該テスト入力が入力されたテスト機から発せられる外部サーバ宛の要求と、を捕捉する要求捕捉ステップと、
前記テスト支援装置が、前記外部サーバが正常に稼働しており、かつ、前記テスト入力が転送条件を満たしている場合に、捕捉された前記要求を前記外部サーバへ転送する要求転送ステップと、
前記テスト支援装置が、転送された前記要求に応じて前記外部サーバから発せられる前記テスト機宛の応答を捕捉する応答捕捉ステップと、
前記テスト支援装置が、捕捉された前記テスト入力と、捕捉された前記応答とを対応付けて前記記憶部に格納する格納ステップと、
前記テスト支援装置が、前記外部サーバが正常に稼働していない場合に、前記記憶部に格納された前記テスト入力の中から、捕捉された前記テスト入力に対応する前記テスト入力を特定する特定ステップと、
前記テスト支援装置が、特定された前記テスト入力に対応付けられた前記応答に基づく代理応答を生成する生成ステップと、
前記テスト支援装置が、捕捉された前記応答、若しくは、生成された前記代理応答を、前記テスト機へ転送する応答転送ステップと、
を備えることを特徴とするテスト支援方法。
【請求項９】
記憶部を備えたコンピュータを、
テスト機へ入力されるテスト入力と、当該テスト入力が入力されたテスト機から発せられる外部サーバ宛の要求と、を捕捉する要求捕捉部、
前記外部サーバが正常に稼働しており、かつ、前記テスト入力が転送条件を満たしている場合に、捕捉された前記要求を前記外部サーバへ転送する要求転送部、
転送された前記要求に応じて前記外部サーバから発せられる前記テスト機宛の応答を捕捉する応答捕捉部、
捕捉された前記テスト入力と、捕捉された前記応答とを対応付けて前記記憶部に格納する格納部、
前記外部サーバが正常に稼働していない場合に、前記記憶部に格納された前記テスト入力の中から、捕捉された前記テスト入力に対応する前記テスト入力を特定する特定部、
特定された前記テスト入力に対応付けられた前記応答に基づく代理応答を生成する生成部、
捕捉された前記応答、若しくは、生成された前記代理応答を、前記テスト機へ転送する応答転送部、
として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テスト支援装置、テスト支援方法、ならびに、プログラムに関する。
【背景技術】
【０００２】
従来より、ネットワーク（インターネット等）を介して外部サーバにアクセスするプログラムが開発されている。このようなプログラムの開発過程では、例えば、テスト機にテスト対象のプログラムを実行させ、外部サーバに要求を送信し、その要求に応じて外部サーバから送られる応答を受信する処理を含んだテストが行われている。
なお、外部サーバは、第三者によって管理されている場合が多く、外部サーバ側の事情（メンテナンス、追加開発、障害発生等）で、テスト時に、外部サーバが正常に稼働していないこともあった。
【０００３】
先行技術（従来技術）として、例えば、特許文献１には、キャッシュした情報をクライアント装置に送信するプロキシ装置（情報処理システム）の発明が開示されている。この従来技術によれば、外部サーバが正常に稼働していない場合でも、動作テストを効率よく行うことができるとも思われる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１７−１１７０１５号公報
【０００５】
例えば、テスト機と外部サーバとの間にテスト支援装置を配置し、そのテスト支援装置にテスト機と外部サーバ（正常稼働している外部サーバ）との間で送受信される電文を記憶させ、外部サーバが正常稼働していない場合に、記憶した情報を活用することも考えられる。具体的に説明すると、テスト支援装置は、外部サーバが正常稼働している間において、テスト機から外部サーバへ送られる要求と、外部サーバからテスト機へ送られる応答とを対応付けて記憶していく。一方、外部サーバが正常稼働していない間において、テスト支援装置は、テスト機から送られる要求が既に記憶されていれば、対応付けられた応答を、テスト機に送信する。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述した従来技術のように単にキャッシュした情報を活用して、要求と応答とをテスト支援装置に記憶するようにしても、テスト機へ入力されるテスト入力が少しだけ異なる等により、テスト機から送られる要求と記憶されている要求とが同一とならない場合や、テスト入力が同じであっても要求が異なる場合などでは、外部サーバの代わりにテスト支援装置がテスト機に応答を送信することが困難という問題があった。例えば、テスト入力等には、日付（日時）に代表される可変の情報が含まれるため、送られた要求と記憶されている要求とが、完全同一とはならず、テスト支援装置は、対応する応答を特定することができない。
【０００７】
そのため、テスト入力が全く同じではない場合や、テスト入力が全く同じでも応答が全く同じではない場合であっても、記憶した情報を有効に活用して、テスト機に適切な応答を送信することのできる技術が求められていた。
【０００８】
本発明は、上記実状に鑑みてなされたもので、テスト入力が全く同じではない場合や、テスト入力が全く同じでも応答が全く同じではない場合であっても、記憶した情報を有効に活用して、テスト機に適切な応答を送信することのできるテスト支援装置、テスト支援方法、ならびに、プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の第１の観点に係るテスト支援装置は、
テスト機へ入力されるテスト入力と、当該テスト入力が入力されたテスト機から発せられる外部サーバ宛の要求と、を捕捉する要求捕捉部と、
前記外部サーバが正常に稼働しており、かつ、前記テスト入力が転送条件を満たしている場合に、捕捉された前記要求を前記外部サーバへ転送する要求転送部と、
転送された前記要求に応じて前記外部サーバから発せられる前記テスト機宛の応答を捕捉する応答捕捉部と、
捕捉された前記テスト入力と、捕捉された前記応答とを対応付けて記憶する記憶部と、
前記外部サーバが正常に稼働していない場合に、前記記憶部に記憶された前記テスト入力の中から、捕捉された前記テスト入力に対応する前記テスト入力を特定する特定部と、
特定された前記テスト入力に対応付けられた前記応答に基づく代理応答を生成する生成部と、
捕捉された前記応答、若しくは、生成された前記代理応答を、前記テスト機へ転送する応答転送部と、
を備えることを特徴とする。
【００１０】
また、上記観点に係るテスト支援装置は、
前記記憶部に記憶された前記テスト入力を複数のグループにグループ化する管理部と、
前記グループ内において、前記テスト入力に対応付けられた前記応答をそれぞれ比較し、異なる箇所を特定箇所として抽出する抽出部と、を更に備え、
前記特定部は、捕捉された前記テスト入力が帰属すべき前記グループに属する前記テスト入力を特定し、
前記生成部は、特定された前記テスト入力に対応付けられた前記応答について、前記特定箇所を除去し、除去した箇所にダミー値を挿入することにより、前記代理応答を生成してもよい。
【００１１】
また、上記観点に係るテスト支援装置において、
前記管理部は、前記記憶部に記憶された前記テスト入力同士の類似性に基づき、当該類似性が近い前記テスト入力を同一グループに属するようにグループ化してもよい。
【００１２】
また、上記観点に係るテスト支援装置において、
前記管理部は、前記記憶部に記憶された複数の前記テスト入力のそれぞれを、複数のグループのうちの何れかのグループに属するようにグループ化してもよい。
【００１３】
また、上記観点に係るテスト支援装置において、
前記管理部は、前記テスト入力を識別する識別番号に基づき、当該識別番号が同じ前記テスト入力を同一グループに属するようにグループ化し、
前記特定部は、捕捉された前記テスト入力の前記識別番号と同じ前記グループに属する前記テスト入力を特定してもよい。
【００１４】
また、上記観点に係るテスト支援装置において、
前記管理部は、捕捉された前記テスト入力と、前記記憶部に記憶された前記テスト入力との編集距離に基づき、当該編集距離が近い前記テスト入力を特定グループに属するようにグループ化し、
前記特定部は、前記特定グループに属する前記テスト入力を特定してもよい。
【００１５】
また、上記観点に係るテスト支援装置において、
前記管理部は、記憶されている前記テスト入力同士の編集距離に基づき、当該編集距離が近い前記テスト入力を同一グループに属するようにグループ化し、
前記特定部は、捕捉された前記テスト入力と、前記複数のグループのそれぞれに属する何れか１つのテスト入力との編集距離に基づき、当該編集距離の最も近い前記グループに属する前記テスト入力を特定してもよい。
【００１６】
本発明の第２の観点に係るテスト支援方法は、
記憶部を備えたテスト支援装置が実行するテスト支援方法であって、
前記テスト支援装置が、テスト機へ入力されるテスト入力と、当該テスト入力が入力されたテスト機から発せられる外部サーバ宛の要求と、を捕捉する要求捕捉ステップと、
前記テスト支援装置が、前記外部サーバが正常に稼働しており、かつ、前記テスト入力が転送条件を満たしている場合に、捕捉された前記要求を前記外部サーバへ転送する要求転送ステップと、
前記テスト支援装置が、転送された前記要求に応じて前記外部サーバから発せられる前記テスト機宛の応答を捕捉する応答捕捉ステップと、
前記テスト支援装置が、捕捉された前記テスト入力と、捕捉された前記応答とを対応付けて前記記憶部に格納する格納ステップと、
前記テスト支援装置が、前記外部サーバが正常に稼働していない場合に、前記記憶部に格納された前記テスト入力の中から、捕捉された前記テスト入力に対応する前記テスト入力を特定する特定ステップと、
前記テスト支援装置が、特定された前記テスト入力に対応付けられた前記応答に基づく代理応答を生成する生成ステップと、
前記テスト支援装置が、捕捉された前記応答、若しくは、生成された前記代理応答を、前記テスト機へ転送する応答転送ステップと、
を備えることを特徴とする。
【００１７】
本発明の第３の観点に係るプログラムは、
記憶部を備えたコンピュータを、
テスト機へ入力されるテスト入力と、当該テスト入力が入力されたテスト機から発せられる外部サーバ宛の要求と、を捕捉する要求捕捉部、
前記外部サーバが正常に稼働しており、かつ、前記テスト入力が転送条件を満たしている場合に、捕捉された前記要求を前記外部サーバへ転送する要求転送部、
転送された前記要求に応じて前記外部サーバから発せられる前記テスト機宛の応答を捕捉する応答捕捉部、
捕捉された前記テスト入力と、捕捉された前記応答とを対応付けて前記記憶部に格納する格納部、
前記外部サーバが正常に稼働していない場合に、前記記憶部に格納された前記テスト入力の中から、捕捉された前記テスト入力に対応する前記テスト入力を特定する特定部、
特定された前記テスト入力に対応付けられた前記応答に基づく代理応答を生成する生成部、
捕捉された前記応答、若しくは、生成された前記代理応答を、前記テスト機へ転送する応答転送部、
として機能させることを特徴とする。
【００１８】
上記プログラムは、当該プログラムが実行されるコンピュータとは独立して、コンピュータ通信網を介して配布・販売することができる。
更に、上記プログラムを記録する情報記録媒体は、非一時的な（non-transitory）記録媒体であり、コンピュータとは独立して配布・販売することができる。ここで、非一時的な記録媒体とは、有形な（tangible）記録媒体をいう。非一時的な記録媒体は、例えば、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等である。また、一時的な（transitory）記録媒体とは、伝送媒体（伝搬信号）それ自体を示す。一時的な記録媒体は、例えば、電気信号、光信号、電磁波等である。なお、一時的な（temporary）記憶領域とは、データやプログラムを一時的に記憶するための領域であり、例えば、ＲＡＭ（Random Access Memory）等の揮発性メモリである。
【発明の効果】
【００１９】
本発明によれば、テスト入力が全く同じではない場合や、テスト入力が全く同じでも応答が全く同じではない場合であっても、記憶した情報を有効に活用して、テスト機に適切な応答を送信することができる。
【図面の簡単な説明】
【００２０】
【図１】本実施形態に係るテストシステムの全体構成の一例を示すブロック図である。
【図２】テスト機、テスト支援装置、及び、外部サーバが実現される典型的な情報処理装置の概要構成の一例を示すブロック図である。
【図３】本実施形態に係るテスト支援装置の概要構成の一例を示すブロック図である。
【図４】（ａ）が応答電文の具体例を示す模式図であり、（ｂ）が代理応答電文の具体例を示す模式図である。
【図５】（ａ），（ｂ）共に、特定箇所を抽出する具体例を説明するための模式図である。
【図６】本実施形態に係るテスト支援処理を説明するためのフローチャートである。
【発明を実施するための形態】
【００２１】
以下に本発明の実施形態を説明する。本発明の実施形態では、ネットワーク（インターネット等）を介して外部サーバにアクセスするプログラムをテストするテストシステムを一例として説明するが、外部サーバの代わりに端末等へアクセスする場合でも適用可能である。
また、以下の実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。したがって、当業者であればこれらの各要素または全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
【００２２】
（全体構成）
本発明の実施形態に係るテストシステム１００は、図１に示すように、テスト機２００と、テスト支援装置３００と、外部サーバ４００とから構成される。なお、テスト支援装置３００と、外部サーバ４００とは、インターネットを介して通信可能に接続されている。
【００２３】
テスト機２００は、一例として、モバイル端末（スマートフォン，タブレット等）、若しくは、パーソナルコンピュータ等からなり、テスト対象のプログラムを実行する。なお、テスト対象のプログラムには、一例として、インターネット９００を介して外部サーバ４００にアクセスする処理が含まれている。
【００２４】
テスト支援装置３００は、一例として、パーソナルコンピュータ等からなり、テスト機２００にて実行されるプログラムのテストを支援する。詳細は後述するが、テスト支援装置３００は、外部サーバ４００が正常に稼働している間において、テスト機２００と外部サーバ４００との間で送受信される電文（要求電文，応答電文）を中継すると共にそれらの電文を記憶する。また、テスト支援装置３００は、外部サーバ４００が正常に稼働していない間において、記憶した電文を活用して、テスト機２００から外部サーバ４００へ送られる要求電文に対応する代理応答電文を生成し、生成した代理応答電文をテスト機２００に送信する。
【００２５】
外部サーバ４００は、一例として、サーバコンピュータ等からなり、所定の情報サービスを提供する。例えば、外部サーバ４００は、テスト支援装置３００を通じて、テスト機２００から送られた要求電文を受信するとその要求電文に応じた応答電文を生成し、生成した応答電文を、テスト支援装置３００を通じて、テスト機２００に送信する。
【００２６】
（情報処理装置の概要構成）
本発明の実施形態に係るテスト機２００、テスト支援装置３００、及び、外部サーバ４００が実現される典型的な情報処理装置５００について説明する。
【００２７】
情報処理装置５００は、図２に示すように、ＣＰＵ（Central Processing Unit）５０１と、ＲＯＭ（Read Only Memory）５０２と、ＲＡＭ（Random Access Memory）５０３と、ＮＩＣ（Network Interface Card）５０４と、画像処理部５０５と、音声処理部５０６と、ＤＶＤ−ＲＯＭ（Digital Versatile Disc ROM）ドライブ５０７と、インターフェース５０８と、外部メモリ５０９と、コントローラ５１０と、モニタ５１１と、スピーカ５１２と、を備える。
【００２８】
ＣＰＵ  ５０１は、情報処理装置５００全体の動作を制御し、各構成要素と接続され制御信号やデータをやりとりする。
【００２９】
ＲＯＭ  ５０２には、電源投入直後に実行されるＩＰＬ（Initial Program Loader）が記録され、これが実行されることにより、所定のプログラムをＲＡＭ  ５０３に読み出してＣＰＵ  ５０１による当該プログラムの実行が開始される。また、ＲＯＭ  ５０２には、情報処理装置５００全体の動作制御に必要なオペレーティングシステムのプログラムや各種のデータが記録される。
【００３０】
ＲＡＭ  ５０３は、データやプログラムを一時的に記憶するためのもので、ＤＶＤ−ＲＯＭから読み出したプログラムやデータ、その他、通信に必要なデータ等が保持される。
【００３１】
ＮＩＣ  ５０４は、情報処理装置５００をインターネット等のコンピュータ通信網に接続するためのものであり、ＬＡＮ（Local Area Network）を構成する際に用いられる１０ＢＡＳＥ−Ｔ／１００ＢＡＳＥ−Ｔ規格にしたがうものや、電話回線を用いてインターネットに接続するためのアナログモデム、ＩＳＤＮ（Integrated Services Digital Network）モデム、ＡＤＳＬ（Asymmetric Digital Subscriber Line）モデム、ケーブルテレビジョン回線を用いてインターネットに接続するためのケーブルモデム等と、これらとＣＰＵ  ５０１との仲立ちを行うインターフェース（図示せず）等により構成される。
【００３２】
画像処理部５０５は、ＤＶＤ−ＲＯＭ等から読み出されたデータをＣＰＵ  ５０１や画像処理部５０５が備える画像演算プロセッサ（図示せず）によって加工処理した後、これを画像処理部５０５が備えるフレームメモリ（図示せず）に記録する。フレームメモリに記録された画像情報は、所定の同期タイミングでビデオ信号に変換され、モニタ５１１に出力される。これにより、各種のページ表示が可能となる。
【００３３】
音声処理部５０６は、ＤＶＤ−ＲＯＭ等から読み出した音声データをアナログ音声信号に変換し、これに接続されたスピーカ５１２から出力させる。また、ＣＰＵ  ５０１の制御の下、情報処理装置５００が行う処理の進行の中で発生させるべき音を生成し、これに対応した音声をスピーカ５１２から出力させる。
【００３４】
ＤＶＤ−ＲＯＭドライブ５０７に装着されるＤＶＤ−ＲＯＭには、例えば、実施形態に係るテスト支援装置３００等を実現するためのプログラムが記憶される。ＣＰＵ  ５０１の制御によって、ＤＶＤ−ＲＯＭドライブ５０７は、これに装着されたＤＶＤ−ＲＯＭに対する読み出し処理を行って、必要なプログラムやデータを読み出し、これらはＲＡＭ  ５０３等に一時的に記憶される。
【００３５】
インターフェース５０８には、外部メモリ５０９、コントローラ５１０、モニタ５１１、及びスピーカ５１２が、着脱可能に接続される。
【００３６】
外部メモリ５０９には、ユーザの個人情報に関するデータなどが書き換え可能に記憶される。
【００３７】
コントローラ５１０は、情報処理装置５００の各種の設定時などに行われる操作入力を受け付ける。情報処理装置５００のユーザは、コントローラ５１０を介して指示入力を行うことにより、これらのデータを適宜外部メモリ５０９に記録することができる。
【００３８】
モニタ５１１は、画像処理部５０５により出力されたデータを情報処理装置５００のユーザに提示する。
【００３９】
スピーカ５１２は、音声処理部５０６により出力された音声データを情報処理装置５００のユーザに提示する。
【００４０】
この他、情報処理装置５００は、ハードディスク等の大容量外部記憶装置を用いて、ＲＯＭ ５０２、ＲＡＭ ５０３、外部メモリ５０９、ＤＶＤ−ＲＯＭドライブ５０７に装着されるＤＶＤ−ＲＯＭ等と同じ機能を果たすように構成してもよい。
【００４１】
以下、上記情報処理装置５００において実現されるテスト支援装置３００の構成等について、図３〜図５を参照して説明する。情報処理装置５００に電源が投入され、例えば、テスト機２００からのアクセスを受け付けると、本実施形態に係るテスト支援装置３００として機能させるプログラムが実行され、本実施形態に係るテスト支援装置３００が実現される。
なお、テスト機２００及び外部サーバ４００も同様に情報処理装置５００において実現されるが、こちらについては説明を省略し、本実施形態において最も特徴的なテスト支援装置３００について、以下説明する。
【００４２】
（テスト支援装置の概要構成）
図３は、本実施形態に係るテスト支援装置３００の概要構成の一例を示すブロック図である。図示するように、テスト支援装置３００は、要求捕捉部３１０と、要求転送部３２０と、応答捕捉部３３０と、記憶部３４０と、制御部３５０と、応答転送部３６０とを備える。
【００４３】
要求捕捉部３１０は、テスト機２００から外部サーバ４００へ送られる要求電文等を捕捉する。すなわち、要求捕捉部３１０は、テスト機２００へ入力されるテスト入力と、そのテスト入力が入力されたテスト機２００から発せられる外部サーバ４００宛の要求電文と、を捕捉する。
上述したＮＩＣ  ５０４等が、このような要求捕捉部３１０として機能しうる。
【００４４】
要求転送部３２０は、上記の要求捕捉部３１０により捕捉された要求電文を、外部サーバ４００へ転送する。より詳細には、制御部３５０によって、外部サーバ４００が正常に稼働していること、及び、テスト機２００へ入力されるテスト入力が転送条件を満たしていることが判別された場合に、要求転送部３２０は、捕捉された要求電文を外部サーバ４００へ転送する。
上述したＮＩＣ  ５０４等が、このような要求転送部３２０として機能しうる。
【００４５】
応答捕捉部３３０は、外部サーバ４００からテスト機２００へ送られる応答電文を捕捉する。すなわち、応答捕捉部３３０は、上記の要求転送部３２０によって転送された要求電文に応じて外部サーバ４００から発せられるテスト機２００宛ての応答電文を捕捉する。
上述したＮＩＣ  ５０４等が、このような応答捕捉部３３０として機能しうる。
【００４６】
記憶部３４０は、テスト機２００と外部サーバ４００との間で送受信される電文等を記憶する。例えば、記憶部３４０は、上記の要求捕捉部３１０により捕捉されたテスト入力と、上記の応答捕捉部３３０により捕捉された応答電文とを対応付けて記憶する。なお、記憶部３４０は、要求捕捉部３１０により捕捉された要求電文も更に記憶するようにしてもよい。
このような記憶部３４０に記憶されたテスト入力は、後述するように、管理部３５３によって、グループ化されて管理される。
上述したＲＡＭ  ５０３や外部メモリ５０９等が、このような記憶部３４０として機能しうる。
【００４７】
制御部３５０は、テスト支援装置３００全体を制御する。この制御部３５０は、特定部３５１、生成部３５２、管理部３５３、及び、抽出部３５４を含んでおり、テスト機２００におけるプログラムのテストを支援する。
【００４８】
特定部３５１は、外部サーバ４００が正常に稼働していない場合に、記憶部３４０に記憶された複数のテスト入力の中から、上記の要求捕捉部３１０によって捕捉されたテスト入力に対応するテスト入力を特定する。例えば、特定部３５１は、上記の要求捕捉部３１０によって捕捉されたテスト入力が帰属すべきグループを特定することで、特定したグループに属するテスト入力を特定する。なお、グループについての詳細は、後述する管理部３５３と共に説明する。
【００４９】
生成部３５２は、上記の特定部３５１によって特定されたテスト入力に対応付けられた応答電文に基づく代理応答電文を生成する。例えば、生成部３５２は、特定されたテスト入力に対応付けられたテスト応答電文の特定箇所を除去し、その箇所にダミー値を挿入することにより、代理応答電文を生成する。具体例を挙げて説明すると、生成部３５２は、図４（ａ）に示すような応答電文Ａに含まれる特定箇所Ｐを削除する。なお、特定箇所Ｐは、一例として、日時情報に代表される可変の情報であり、以下に説明する抽出部３５４によって抽出される。そして、生成部３５２は、図４（ｂ）に示すように、削除した箇所にダミー値Ｖを挿入することにより、代理応答電文Ｂを生成する。なお、ダミー値Ｖは、例えば、定数値、ランダム値、若しくは、テスト入力（若しくは、要求電文）に基づく値である。
【００５０】
図３に戻って、管理部３５３は、記憶部３４０に記憶されたテスト入力を複数のグループにグループ化する。例えば、管理部３５３は、テスト入力を識別する識別番号（一例として、テスト番号等）に基づき、識別番号が同じテスト入力を同一グループに属するようにグループ化する。より詳細には、予め識別番号の種類に応じて、複数のグループが規定されており、管理部３５３は、各テスト入力の識別番号に従って、複数のテスト入力のそれぞれを、複数のグループのうちの何れかのグループに属するようにグループ化する。この他にも、管理部３５３は、記憶部３４０に記憶されたテスト入力同士の類似性に基づき、類似性が近いテスト入力を同一グループに属するようにグループ化してもよい。
【００５１】
抽出部３５４は、上記の管理部３５３によってグループ化されたグループ内において、テスト入力に対応付けられた応答電文をそれぞれ比較し、異なる箇所を特定箇所として抽出する。具体例を挙げて説明すると、抽出部３５４は、図５（ａ）に示すようなグループＧに属するテスト入力に対応付けられた応答電文Ｃ〜Ｅをそれぞれ比較する。そして、抽出部３５４は、図５（ｂ）に示すように、異なる箇所を特定箇所Ｐとして抽出する。
【００５２】
図３に戻って、この他にも、制御部３５０は、外部サーバ４００が正常に稼働しているかどうかも判別する。例えば、制御部３５０は、上記の要求転送部３２０が要求電文を外部サーバ４００に送信した後、所定時間が経過しても上記の応答捕捉部３３０が、応答電文を捕捉できない場合に、外部サーバ４００が正常に稼働していないと判別する。また、所定時間内に応答捕捉部３３０が応答電文を捕捉できたとしても、その応答電文が、記憶部３４０に記憶された一致するはずの応答電文と一致しない場合（一例として、電文フォーマットの不整合、文字化け等）に、制御部３５０は、外部サーバ４００が正常に稼働していないと判別する。具体的には、要求捕捉部３１０によって捕捉された要求電文が、記憶部３４０に記憶された要求電文と完全一致し、かつ、当該要求電文に対応付けて記憶された複数の応答電文が何れも完全一致しているにも拘わらず、応答捕捉部３３０にて捕捉された応答電文が、対応付けて記憶された応答電文と完全一致していなければ、制御部３５０は、外部サーバ４００が正常に稼働していないと判別する。この他にも、要求捕捉部３１０によって捕捉されたテスト入力が帰属すべきグループのテスト入力に対応付けて記憶された複数の応答電文における部分一致している箇所と、応答捕捉部３３０にて捕捉された応答電文における該当箇所が一致していなければ（一例として、電文フォーマットの不整合、文字化け等）、制御部３５０は、外部サーバ４００が正常に稼働していないと判別する。
【００５３】
上述したＣＰＵ  ５０１等が、このような構成からなる制御部３５０として機能しうる。
【００５４】
応答転送部３６０は、上記の応答捕捉部３３０によって捕捉された応答電文、若しくは、上記の生成部３５２によって生成された代理応答電文を、テスト機２００へ転送する。つまり、外部サーバ４００が正常に稼働している場合に、応答転送部３６０は、応答捕捉部３３０によって捕捉された外部サーバ４００からの応答電文をテスト機２００へ転送する。一方、外部サーバ４００が正常に稼働していない場合に、応答転送部３６０は、記憶部３４０に記憶された応答電文を基に、生成部３５２によって生成された代理応答電文をテスト機２００へ転送する。
上述したＮＩＣ  ５０４等が、このような応答転送部３６０として機能しうる。
【００５５】
（テスト支援装置の動作）
以下、このような構成のテスト支援装置３００の動作について図６を参照して説明する。図６は、テスト支援装置３００が実行するテスト支援処理の流れを示すフローチャートである。このテスト支援処理は、例えば、テスト機２００にてプログラムのテストが行われている間、実行される。
【００５６】
まず、テスト機２００にてプログラムのテストが開始されると、テスト支援装置３００は、転送モードに遷移する（ステップＳ１１）。この転送モードは、テスト機２００から送られた要求電文を外部サーバ４００に転送し、外部サーバ４００から送られた応答電文をテスト機２００に転送するモードである。また、代理モードは、要求電文を外部サーバ４００に転送せずに、記憶部３４０に記憶される応答電文に基づき代理応答電文を生成し、生成した代理応答電文をテスト機２００に転送するモードである。
【００５７】
テスト支援装置３００は、テスト機２００から送られる要求電文を受信したか否かを判別する（ステップＳ１２）。すなわち、制御部３５０は、要求捕捉部３１０が要求電文を捕捉したかどうかを判別する。
テスト支援装置３００は、要求電文を受信していないと判別すると（ステップＳ１２；Ｎｏ）、要求電文の受信を待機する。
【００５８】
一方、要求電文を受信したと判別した場合（ステップＳ１２；Ｙｅｓ）に、テスト支援装置３００は、現在、転送モードであるか否かを判別する（ステップＳ１３）。
テスト支援装置３００は、転送モードでない（代理モードである）と判別すると（ステップＳ１３；Ｎｏ）、後述するステップＳ１９に処理を進める。
【００５９】
一方、転送モードであると判別した場合（ステップＳ１３；Ｙｅｓ）に、テスト支援装置３００は、要求電文を外部サーバに転送する（ステップＳ１４）。
すなわち、要求転送部３２０は、上記のステップＳ１２にて受信した要求電文を、外部サーバ４００へ転送する。
【００６０】
テスト支援装置３００は、外部サーバ４００が正常に稼働しているか否かを判別する（ステップＳ１５）。
例えば、制御部３５０は、上記のステップＳ１４にて要求電文を外部サーバ４００に送信した後、所定時間が経過しても応答電文を捕捉できない場合に、外部サーバ４００が正常に稼働していないと判別する。また、所定時間内に応答電文を捕捉できたとしても、その応答電文が、記憶部３４０に記憶された一致するはずの応答電文と一致しない場合（一例として、電文フォーマットの不整合、文字化け等）に、制御部３５０は、外部サーバ４００が正常に稼働していないと判別する。
【００６１】
テスト支援装置３００は、外部サーバ４００が正常に稼働していると判別すると（ステップＳ１５；Ｙｅｓ）、応答電文を受信し、テスト入力と対応付けて記憶部３４０に記憶する（ステップＳ１６）。すなわち、応答捕捉部３３０が、外部サーバ４００から送られた応答電文を捕捉し、そして、記憶部３４０が、上記のステップＳ１２にて受信したテスト入力と、捕捉された応答電文とを対応付けて記憶する。なお、記憶部３４０は、ステップＳ１２にて捕捉された要求電文も更に記憶するようにしてもよい。
なお、記憶部３４０に記憶された複数のテスト入力は、管理部３５３によってグループ化される。例えば、管理部３５３は、テスト入力を識別する識別番号（一例として、テスト番号等）に基づき、識別番号が同じテスト入力を同一グループに属するように複数のグループにグループ化する。より詳細には、予め識別番号の種類に応じて、複数のグループが規定されており、管理部３５３は、各テスト入力の識別番号に従って、複数のテスト入力のそれぞれを、複数のグループのうちの何れかのグループに属するようにグループ化する。この他にも、管理部３５３は、記憶部３４０に記憶されたテスト入力同士の類似性に基づき、類似性が近いテスト入力を同一グループに属するようにグループ化してもよい。
【００６２】
テスト支援装置３００は、応答電文をテスト機２００に転送する（ステップＳ１７）。すなわち、応答転送部３６０は、上記のステップＳ１６にて受信した応答電文をテスト機２００へ転送する。
そして、テスト支援装置３００は、上述したステップＳ１２に処理を戻す。
【００６３】
また、上述したステップＳ１５にて、外部サーバ４００が正常に稼働していないと判別した場合（ステップＳ１５；Ｎｏ）に、テスト支援装置３００は、代理モードに遷移する（ステップＳ１８）。
【００６４】
テスト支援装置３００は、代理応答電文を生成する（ステップＳ１９）。すなわち、特定部３５１は、記憶部３４０に記憶された複数のテスト入力の中から、上記のステップＳ１２にて受信したテスト入力に対応するテスト入力を特定する。例えば、まず、特定部３５１は、要求捕捉部３１０によって捕捉されたテスト入力が帰属すべきグループを特定することで、特定したグループに属するテスト入力を特定する。そして、生成部３５２は、特定されたテスト入力に対応付けられたテスト応答電文の特定箇所を除去し、その箇所にダミー値を挿入することにより、代理応答電文を生成する。具体例を挙げて説明すると、生成部３５２は、図４（ａ）に示すような応答電文Ａに含まれる特定箇所Ｐを削除し、図４（ｂ）に示すように、削除した箇所にダミー値Ｖを挿入することにより、代理応答電文Ｂを生成する。なお、特定箇所Ｐは、一例として、日時情報に代表される可変の情報であり、抽出部３５４によって抽出される。また、ダミー値Ｖは、例えば、定数値、ランダム値、若しくは、テスト入力（若しくは、要求電文）に基づく値である。
【００６５】
テスト支援装置３００は、代理応答電文をテスト機２００に転送する（ステップＳ２０）。すなわち、応答転送部３６０は、上記のステップＳ１９にて生成した代理応答電文をテスト機２００へ転送する。
そして、テスト支援装置３００は、上述したステップＳ１２に処理を戻す。
【００６６】
このようなテスト支援処理により、外部サーバ４００が正常に稼働している間は、テスト入力と応答電文とが対応付けられて記憶部３４０に記憶されていく。一方、外部サーバ４００が正常に稼働していない場合には、記憶部３４０に記憶されたテスト入力及び応答電文から代理応答電文が生成され、テスト機２００に転送される。
この結果、テスト入力が全く同じではない場合や、テスト入力が全く同じでも応答が全く同じではない場合であっても、記憶した情報を有効に活用して、テスト機２００に適切な応答（応答電文）を送信することができる。
【００６７】
（他の実施形態）
上記の実施形態では、管理部３５３が、テスト入力を識別する識別番号（一例として、テスト番号等）に基づき、記憶部３４０に記憶されたテスト入力をグループ化する場合について説明したが、これとは異なる手法で、テスト入力をグループ化してもよい。
例えば、管理部３５３は、記憶部３４０に記憶されているテスト入力同士の編集距離に基づき、その編集距離が近いテスト入力を同一グループに帰属させるようにしてもよい。なお、編集距離とは、レーベンシュタイン距離とも呼ばれ、二つの文字列がどの程度異なっているかを示す距離の一種である。具体的には、１文字の挿入・削除・置換によって、一方の文字列をもう一方の文字列に変形するのに必要な手順の最小回数として定義される。
なお、編集距離を用いてテスト入力をグループ化する場合、特定部３５１は、要求捕捉部３１０によって捕捉されたテスト入力と、複数のグループのそれぞれに属する何れか１つのテスト入力との編集距離に基づき、その編集距離の最も近いグループに属するテスト入力を特定する。
例えば、管理部３５３によって、グループＧiには、複数のテスト入力yi,1，yi,2，・・・（順番はランダム等で良い）が属している。そのため、新たなテスト入力xが捕捉された場合、編集距離を求める関数d(*,*)を用いれば、テスト入力xが属すべきグループＧkのグループ番号kは、以下の数式（数１）により求めることができる。
【００６８】
［数１］
k = argmini d(x,yi,1)
【００６９】
すなわち、特定部３５１は、上記数式を用いて、テスト入力xが属すべきグループＧkのグループ番号kを求めることで、迅速に、編集距離の近いグループを特定することができる。つまり、既に収集済みのテスト入力がどんな数であっても、管理部３５３によって、ｎ個のグループに分類されているのであれば、編集距離の計算は、ｎ回で済むことになる。
【００７０】
また、上記の実施形態では、管理部３５３が、記憶部３４０に記憶されたテスト入力を予めグループ化しておく場合について説明したが、代理応答電文を生成する際に、必要となる１つのグループだけをグループ化するようにしてもよい。
すなわち、管理部３５３は、外部サーバ４００が正常に稼働していない場合に、要求捕捉部３１０によって捕捉されたテスト入力と、記憶部３４０に記憶されたテスト入力との編集距離に基づき、編集距離が近いテスト入力を特定グループに属するようにグループ化する。つまり、管理部３５３は、捕捉されたテスト入力と編集距離が近いテスト入力だけを、その都度、特定グループとしてグループ化する。
そして、特定部３５１は、グループ化された特定グループに属するテスト入力を特定する。
この場合、記憶部３４０に記憶された全てのテスト入力をグループ化する必要がない（各グループを維持する更新等も必要がない）ため、処理負荷を適宜軽減することができる。
【００７１】
また、上記の実施形態では、図６のテスト支援処理において、外部サーバ４００が正常に稼働していない場合（ステップＳ１５；Ｎｏ）に、代理モードに遷移する（ステップＳ１８）場合について説明したが、代理モードに遷移する代わりに、外部サーバ４００の不具合の可能性を警告するようにしてもよい。
【００７２】
以上説明したように、本発明によれば、テスト入力が全く同じではない場合や、テスト入力が全く同じでも応答が全く同じではない場合であっても、記憶した情報を有効に活用して、テスト機に適切な応答を送信することのできるテスト支援装置、テスト支援方法、ならびに、プログラムを提供することができる。
【符号の説明】
【００７３】
１００  テストシステム
２００  テスト機
３００  テスト支援装置
３１０  要求捕捉部
３２０  要求転送部
３３０  応答捕捉部
３４０  記憶部
３５０  制御部
３５１  特定部
３５２  生成部
３５３  管理部
３５４  抽出部
３６０  応答転送部
４００  外部サーバ
５００  情報処理装置
５０１  ＣＰＵ
５０２  ＲＯＭ
５０３  ＲＡＭ
５０４  ＮＩＣ
５０５  画像処理部
５０６  音声処理部
５０７  ＤＶＤ−ＲＯＭドライブ
５０８  インターフェース
５０９  外部メモリ
５１０  コントローラ
５１１  モニタ
５１２  スピーカ
９００  インターネット
【図１】
2020101912.tif 000003
【図２】
2020101912.tif 000004
【図３】
2020101912.tif 000005
【図４】
2020101912.tif 000006
【図５】
2020101912.tif 000007
【図６】
2020101912.tif 000008
【手続補正書】
【提出日】令和2年1月31日(2020.1.31)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
テスト機へ入力されるテスト入力と、当該テスト入力が入力されたテスト機から発せられる外部サーバ宛の要求と、を捕捉する要求捕捉部と、
前記外部サーバが正常に稼働しており、かつ、前記テスト入力が転送条件を満たしている場合に、捕捉された前記要求を前記外部サーバへ転送する要求転送部と、
転送された前記要求に応じて前記外部サーバから発せられる前記テスト機宛の応答を捕捉する応答捕捉部と、
捕捉された前記テスト入力と、捕捉された前記応答とを対応付けて記憶する記憶部と、
前記外部サーバが正常に稼働していない場合に、前記記憶部に記憶された前記テスト入力の中から、捕捉された前記テスト入力に対応する前記テスト入力を特定する特定部と、
特定された前記テスト入力に対応付けられた前記応答に基づく代理応答を生成する生成部と、
捕捉された前記応答、若しくは、生成された前記代理応答を、前記テスト機へ転送する応答転送部と、
前記記憶部に記憶された前記テスト入力を複数のグループにグループ化する管理部と、
前記グループ内において、前記テスト入力に対応付けられた前記応答をそれぞれ比較し、異なる箇所を特定箇所として抽出する抽出部と、を備え、
前記特定部は、捕捉された前記テスト入力が帰属すべき前記グループに属する前記テスト入力を特定し、
前記生成部は、特定された前記テスト入力に対応付けられた前記応答について、前記特定箇所を除去し、除去した箇所にダミー値を挿入することにより、前記代理応答を生成する、
ことを特徴とするテスト支援装置。
【請求項２】
請求項１に記載のテスト支援装置であって、
前記管理部は、前記記憶部に記憶された前記テスト入力同士の類似性に基づき、当該類似性が近い前記テスト入力を同一グループに属するようにグループ化する、
ことを特徴とするテスト支援装置。
【請求項３】
請求項１に記載のテスト支援装置であって、
前記管理部は、前記記憶部に記憶された複数の前記テスト入力のそれぞれを、複数のグループのうちの何れかのグループに属するようにグループ化する、
ことを特徴とするテスト支援装置。
【請求項４】
請求項１に記載のテスト支援装置であって、
前記管理部は、前記テスト入力を識別する識別番号に基づき、当該識別番号が同じ前記テスト入力を同一グループに属するようにグループ化し、
前記特定部は、捕捉された前記テスト入力の前記識別番号と同じ前記グループに属する前記テスト入力を特定する、
ことを特徴とするテスト支援装置。
【請求項５】
請求項１に記載のテスト支援装置であって、
前記管理部は、捕捉された前記テスト入力と、前記記憶部に記憶された前記テスト入力との編集距離に基づき、当該編集距離が近い前記テスト入力を特定グループに属するようにグループ化し、
前記特定部は、前記特定グループに属する前記テスト入力を特定する、
ことを特徴とするテスト支援装置。
【請求項６】
請求項１に記載のテスト支援装置であって、
前記管理部は、記憶されている前記テスト入力同士の編集距離に基づき、当該編集距離が近い前記テスト入力を同一グループに属するようにグループ化し、
前記特定部は、捕捉された前記テスト入力と、前記複数のグループのそれぞれに属する何れか１つのテスト入力との編集距離に基づき、当該編集距離の最も近い前記グループに属する前記テスト入力を特定する、
ことを特徴とするテスト支援装置。
【請求項７】
記憶部を備えたテスト支援装置が実行するテスト支援方法であって、
前記テスト支援装置が、テスト機へ入力されるテスト入力と、当該テスト入力が入力されたテスト機から発せられる外部サーバ宛の要求と、を捕捉する要求捕捉ステップと、
前記テスト支援装置が、前記外部サーバが正常に稼働しており、かつ、前記テスト入力が転送条件を満たしている場合に、捕捉された前記要求を前記外部サーバへ転送する要求転送ステップと、
前記テスト支援装置が、転送された前記要求に応じて前記外部サーバから発せられる前記テスト機宛の応答を捕捉する応答捕捉ステップと、
前記テスト支援装置が、捕捉された前記テスト入力と、捕捉された前記応答とを対応付けて前記記憶部に格納する格納ステップと、
前記テスト支援装置が、前記外部サーバが正常に稼働していない場合に、前記記憶部に格納された前記テスト入力の中から、捕捉された前記テスト入力に対応する前記テスト入力を特定する特定ステップと、
前記テスト支援装置が、特定された前記テスト入力に対応付けられた前記応答に基づく代理応答を生成する生成ステップと、
前記テスト支援装置が、捕捉された前記応答、若しくは、生成された前記代理応答を、前記テスト機へ転送する応答転送ステップと、
前記テスト支援装置が、前記記憶部に格納された前記テスト入力を複数のグループにグループ化する管理ステップと、
前記テスト支援装置が、前記グループ内において、前記テスト入力に対応付けられた前記応答をそれぞれ比較し、異なる箇所を特定箇所として抽出する抽出ステップと、を備え、
前記特定ステップでは、捕捉された前記テスト入力が帰属すべき前記グループに属する前記テスト入力を特定し、
前記生成ステップでは、特定された前記テスト入力に対応付けられた前記応答について、前記特定箇所を除去し、除去した箇所にダミー値を挿入することにより、前記代理応答を生成する、
ことを特徴とするテスト支援方法。
【請求項８】
記憶部を備えたコンピュータを、
テスト機へ入力されるテスト入力と、当該テスト入力が入力されたテスト機から発せられる外部サーバ宛の要求と、を捕捉する要求捕捉部、
前記外部サーバが正常に稼働しており、かつ、前記テスト入力が転送条件を満たしている場合に、捕捉された前記要求を前記外部サーバへ転送する要求転送部、
転送された前記要求に応じて前記外部サーバから発せられる前記テスト機宛の応答を捕捉する応答捕捉部、
捕捉された前記テスト入力と、捕捉された前記応答とを対応付けて前記記憶部に格納する格納部、
前記外部サーバが正常に稼働していない場合に、前記記憶部に格納された前記テスト入力の中から、捕捉された前記テスト入力に対応する前記テスト入力を特定する特定部、
特定された前記テスト入力に対応付けられた前記応答に基づく代理応答を生成する生成部、
捕捉された前記応答、若しくは、生成された前記代理応答を、前記テスト機へ転送する応答転送部、
前記記憶部に格納された前記テスト入力を複数のグループにグループ化する管理部、
前記グループ内において、前記テスト入力に対応付けられた前記応答をそれぞれ比較し、異なる箇所を特定箇所として抽出する抽出部、として機能させ、
前記特定部は、捕捉された前記テスト入力が帰属すべき前記グループに属する前記テスト入力を特定し、
前記生成部は、特定された前記テスト入力に対応付けられた前記応答について、前記特定箇所を除去し、除去した箇所にダミー値を挿入することにより、前記代理応答を生成する、
ように機能させることを特徴とするプログラム。