(57)【要約】  本発明によるネットワークテスト装置は、ソフトウェアテストの構成を記述したテストコードを読み込み、テストコードの中に、非同期処理を示す部分であって同期処理に変換可能な部分があるかどうかを判定し、同期処理に変換可能な部分を同期的なメソッド呼び出しに変換する非同期処理変換部１１と、変換されたテストコードをもとにソフトウェアテストを実行する実行部１２とを備える。
2014020883.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェアテストの構成を記述したテストコードを読み込み、前記テストコードの中に、非同期処理を示す部分であって同期処理に変換可能な部分があるかどうかを判定し、同期処理に変換可能な部分を同期的なメソッド呼び出しに変換する非同期処理変換部と、
変換された前記テストコードをもとにソフトウェアテストを実行する実行部とを備える
ことを特徴とするネットワークテスト装置。
【請求項２】
実行部は、ネットワーク機器の動作をエミュレートするオブジェクトを含み、
非同期処理変換部は、前記実行部にネットワークのソフトウェアテストを実行させるためのテストコードを読み込み、前記テストコードのうち、非同期なネットワーク通信を実行する部分を前記オブジェクト間の同期的なメソッド呼び出しに変換する
請求項１に記載のネットワークテスト装置。
【請求項３】
ソフトウェアテストの構成を記述したテストコードを読み込み、前記テストコードの中に、非同期処理を示す部分であって同期処理に変換可能な部分があるかどうかを判定し、同期処理に変換可能な部分を同期的なメソッド呼び出しに変換し、
変換された前記テストコードをもとにソフトウェアテストを実行する
ことを特徴とするネットワークテスト方法。
【請求項４】
ネットワークのソフトウェアテストを実行するためのテストコードを読み込み、前記テストコードのうち非同期なネットワーク通信を実行する部分を、ネットワーク機器の動作をエミュレートするオブジェクト間の同期的なメソッド呼び出しに変換する
請求項３に記載のネットワークテスト方法。
【請求項５】
コンピュータに、
ソフトウェアテストの構成を記述したテストコードを読み込み、前記テストコードの中に、非同期処理を示す部分であって同期処理に変換可能な部分があるかどうかを判定し、同期処理に変換可能な部分を同期的なメソッドの呼び出しに変換する処理と、
変換された前記テストコードをもとにソフトウェアテストを実行する処理とを実行させる
ためのネットワークテストプログラム。
【請求項６】
コンピュータに、
ネットワークのソフトウェアテストを実行するためのテストコードを読み込み、前記テストコードのうち非同期なネットワーク通信を実行する部分を、ネットワーク機器の動作をエミュレートするオブジェクト間の同期的なメソッド呼び出しに変換する処理を実行させる
請求項５に記載のネットワークテストプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークの動作をテストするためのネットワークテスト装置、ネットワークテスト方法及びネットワークテストプログラムに関する。
【背景技術】
【０００２】
複数の機器から構成されるネットワークをテストするための方法がいくつか提案されている。たとえば、Ｗｅｂアプリケーションテストにおいて、ユーザのブラウザへの入力と、期待されるＷｅｂアプリケーションからの出力とをテストコードに書いておくことで、Ｗｅｂアプリケーションの動作をユーザ視点でテストできる方法がある（例えば、非特許文献１参照。）。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】「Ｗｅｂｒａｔ」、［online］、［平成２４年７月１３日検索］、インターネット＜https://github.com/brynary/Webrat＞
【発明の概要】
【発明が解決しようとする課題】
【０００４】
非特許文献１に記載された方法は、たとえば、Ｗｅｂアプリケーションからの非同期な出力をテストする場合、明示的なスリープ処理を入れて出力を待つ必要がある。このため、大量に非同期出力を行うＷｅｂアプリケーションをテストするためには明示的なスリープ処理をテストコード中に大量に入れなければならない。それにより、テストコード自体に非本質的な処理が入ることでテストコードが読みにくくなるだけでなく、テストの実行にスリープ処理分の時間が余計にかかることがある。【０００５】
そこで、本発明は、ネットワークのソフトウェアテストにおけるテストコードを単純化することができ、効率的にテストを実施することができるネットワークテスト装置、ネットワークテスト方法及びネットワークテストプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明によるネットワークテスト装置は、ソフトウェアテストの構成を記述したテストコードを読み込み、テストコードの中に、非同期処理を示す部分であって同期処理に変換可能な部分があるかどうかを判定し、同期処理に変換可能な部分を同期的なメソッド呼び出しに変換する非同期処理変換部と、変換されたテストコードをもとにソフトウェアテストを実行する実行部とを備えることを特徴とする。【０００７】
本発明によるネットワークテスト方法は、ソフトウェアテストの構成を記述したテストコードを読み込み、テストコードの中に、非同期処理を示す部分であって同期処理に変換可能な部分があるかどうかを判定し、同期処理に変換可能な部分を同期的なメソッド呼び出しに変換し、変換されたテストコードをもとにソフトウェアテストを実行することを特徴とする。【０００８】
本発明によるネットワークテストプログラムは、コンピュータに、ソフトウェアテストの構成を記述したテストコードを読み込み、テストコードの中に、非同期処理を示す部分であって同期処理に変換可能な部分があるかどうかを判定し、同期処理に変換可能な部分を同期的なメソッドの呼び出しに変換する処理と、変換されたテストコードをもとにソフトウェアテストを実行する処理とを実行させることを特徴とする。
【発明の効果】
【０００９】
本発明によれば、ネットワークのソフトウェアテストにおけるテストコードを単純化することができ、効率的にテストを実施することができる。
【図面の簡単な説明】
【００１０】
【図１】本発明によるネットワークテスト装置の第１の実施形態の構成例を示すブロック図である。
【図２】テストコードの一例を示す説明図である。
【図３】ネットワークテスト装置の第１の実施形態における動作例を示すフローチャートである。
【図４】本発明によるネットワークテスト装置の最小構成を示すブロック図である。
【発明を実施するための形態】
【００１１】
実施形態１．
以下、本発明の第１の実施形態を図面を参照して説明する。
【００１２】
図１は、本発明によるネットワークテスト装置の第１の実施形態の構成例を示すブロック図である。図１に示すネットワークテスト装置１００は、非同期処理変換部１１０と、テストプロセス起動部１２０と、テストプロセス部１３０とを含む。
【００１３】
非同期処理変換部１１０は、テストの構成を記述したテストコードを入力する。テストコードは、例えば、ユーザによって記述される。非同期処理変換部１１０は、テストコード中の非同期処理を示す部分を同期的なメソッド呼び出しに変換する。本実施形態では、非同期処理変換部１１０は、テストに用いられるホスト、ネットワークスイッチ（以下、単にスイッチという。）、コントローラの間の非同期なネットワーク通信を同期的なメソッド通信に変換する。
【００１４】
図２は、テストコードの一例を示す説明図である。図２に示す例は、テストの前提条件としてスイッチ“Ｌ２  ｓｗｉｔｃｈ”に２台のホストｈｏｓｔ１，ｈｏｓｔ２が接続されていることを示す。また、図２は、ｈｏｓｔ１からｈｏｓｔ２へパケットを送った際に、ｈｏｓｔ２の受信パケット数が１になることをテストするためのテストコードである。
【００１５】
非同期処理変換部１１０は、図２に示すテストコードのうち、非同期的なネットワーク通信が起こる「ｈｏｓｔ１．ｓｅｎｄ＿ｐａｃｋｅｔ“ｈｏｓｔ２”」の部分を同期的なメソッド呼び出しに変換する。具体的には、非同期処理変換部１１０は、パケットを送信するｈｏｓｔ１と受信するｈｏｓｔ２をテストプロセス中のオブジェクトに変換し、オブジェクト間のメソッド呼び出しに変換する。メソッド呼び出しへの変換は、読み込むライブラリの入れ替えによるメソッドオーバーライドによって実現される。そのため、テストコードの明示的な変換は必要ない。この例では、ｓｅｎｄ＿ｐａｃｋｅｔに対応するライブラリを入れ替えることによってメソッド呼び出しへの変換を実現する。
【００１６】
非同期処理変換部１１０は、変換したテストコードをテストプロセス起動部１２０へ出力する。
【００１７】
テストプロセス起動部１２０は、非同期処理変換部１１０によって変換されたテストコードを入力する。テストプロセス起動部１２０は、入力したテストコードに応じて、テストの実行に必要なホスト部、スイッチ部およびコントローラ部を含むテストプロセス部１３０を起動する。
【００１８】
テストプロセス部１３０は、ホストの動作をエミュレートするホスト部１３１−１〜１３１−ｎと、スイッチの動作をエミュレートするスイッチ部１３３−１〜１３３−ｎと、スイッチの制御ソフトウェアであるコントローラ部１３２−１〜１３２−ｎとを含む。
【００１９】
ホスト部１３１−１〜１３１−ｎは、テストコードに記述されたシナリオに従ってパケットの送信などを行う。たとえば、図２に示す「ｈｏｓｔ１．ｓｅｎｄ＿ｐａｃｋｅｔ“ｈｏｓｔ２”」の部分でｈｏｓｔ１をエミュレートするホスト部が、ｈｏｓｔ２をエミュレートするホスト部にパケットを送信する。
【００２０】
コントローラ部１３２−１〜１３２−ｎは、テストコードに記述されたシナリオに従って、スイッチ部１３３−１〜１３３−ｎを制御する。
【００２１】
スイッチ部１３３−１〜１３３−ｎは、コントローラ部１３２−１〜１３２−ｎの制御によってホスト部１３１−１〜１３１−ｎから受信したパケットを転送する。たとえば、ｈｏｓｔ１からのすべてのパケットをｈｏｓｔ２に転送するというテーブルがコントローラ部によって書き込まれた場合、スイッチ部は、ｈｏｓｔ１からのパケットをｈｏｓｔ２に転送する。この転送は非同期処理変換部１１０によってメソッド呼び出しに変換されるため、実際には同期的に実行される。具体的には、ｈｏｓｔ１をエミュレートするホスト部とｈｏｓｔ２をエミュレートするホスト部との間のメソッド呼び出しに変換される。
【００２２】
なお、非同期処理変換部１１０、テストプロセス起動部１２０およびテストプロセス部１３０は、ネットワークテスト装置１００が備えるＣＰＵ等によって実現される。
【００２３】
次に、本実施形態の動作を説明する。
【００２４】
図３は、ネットワークテスト装置１００の第１の実施形態における動作例を示すフローチャートである。
【００２５】
ネットワークテスト装置１００の非同期処理変換部１１０は、テストコードを読み込み、同期処理に変換可能な部分があるかどうかを判断する（ステップＳ１）。たとえば、ホストからホストへのパケット送信は同期的なメソッド呼び出しに変換可能であると判断できる。
【００２６】
変換可能な部分が無かった場合は（ステップＳ１のＮｏ）、ネットワークテスト装置１００はステップＳ３の処理に進む。
【００２７】
変換可能な部分があった場合は（ステップＳ１のＹｅｓ）、非同期処理変換部１１０は、ネットワーク通信をオブジェクト間のメソッド呼び出しに変換する（ステップＳ２）。たとえば、変換可能な部分がホスト間のパケット通信であった場合、非同期処理変換部１１０は、対応するパケットデータをオブジェクト間でコピーするメソッドの呼び出しに変換する。ステップＳ２の後、ネットワークテスト装置１００はステップＳ３の処理に進む。
【００２８】
ステップＳ３において、テストプロセス起動部１２０は、非同期処理変換部１１０によって変換されたテストコードを入力し、テストプロセス部１３０を起動する。テストプロセス部１３０において、テストコードに応じたテストが実行される。
【００２９】
以上に説明したように、本実施形態では、非同期処理変換部１１０がネットワークの動作をテストするためのソフトウェアテストにおいて、ネットワークを構成するスイッチ、コントローラ、ホスト間の非同期な通信をメソッド呼び出しに変換する。それにより、たとえば、Ｗｅｂアプリケーションからの非同期な出力を待つためのスリープ処理をテストコードから省くことができる。従って、本発明によれば、ユーザがテストコードを変更することなくソフトウェアテストの実行時間を短縮することができ、ソフトウェアテストを効率的に実施することができる。
【００３０】
本発明は、スイッチとそれを制御するためのコントローラソフトウェアの開発やテストに適用することができる。従って、スイッチやコントローラソフトウェアの開発に要する時間を削減することができる。
【００３１】
図４は、本発明によるネットワークテスト装置の最小構成を示すブロック図である。図４に示すように、本発明によるネットワークテスト装置（図１に示すネットワークテスト装置１００に相当。）は、ソフトウェアテストの構成を記述したテストコードを読み込み、テストコードの中に、非同期処理を示す部分であって同期処理に変換可能な部分があるかどうかを判定し、同期処理に変換可能な部分を同期的なメソッド呼び出しに変換する非同期処理変換部１１（図１に示すネットワークテスト装置１００における非同期処理変換部１１０に相当。）と、変換されたテストコードをもとにソフトウェアテストを実行する実行部１２（図１に示すネットワークテスト装置１００におけるテストプロセス起動部１２０およびテストプロセス部１３０に相当。）とを備える。
【００３２】
上記の実施形態には、以下のようなネットワークテスト装置も開示されている。
【００３３】
（１）実行部１２が、ネットワーク機器の動作をエミュレートするオブジェクトを含み、非同期処理変換部１１が、実行部１２にネットワークのソフトウェアテストを実行させるためのテストコードを読み込み、テストコードのうち、オブジェクト間の非同期なネットワーク通信を実行する部分を同期的なメソッド呼び出しに変換するネットワークテスト装置。
【００３４】
そのような構成によれば、ネットワークの動作をテストするためのソフトウェアテストにおいて、たとえば、Ｗｅｂアプリケーションからの非同期な出力を待つためのスリープ処理をテストコードから省くことができる。従って、ネットワークの動作をテストするためのソフトウェアテストの実行時間を短縮することができる。
【００３５】
以上、実施形態及び実施例を参照して本願発明を説明したが、本願発明は上記実施形態および実施例に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【００３６】
この出願は、２０１２年８月１日に出願された日本特許出願２０１２−１７１１２１を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【符号の説明】
【００３７】
１１、１１０  非同期処理変換部
１２  実行部
１２０  テストプロセス起動部
１３０  テストプロセス部
１３１−１〜１３１−ｎ  ホスト部
１３２−１〜１３２−ｎ  コントローラ部
１３３−１〜１３３−ｎ  スイッチ部
【図１】
2014020883.tif 000003
【図２】
2014020883.tif 000004
【図３】
2014020883.tif 000005
【図４】
2014020883.tif 000006
【国際調査報告】
2014020883.tif 000007
2014020883.tif 000008
2014020883.tif 000009
2014020883.tif 000010