2008-09-14 25 views
11

私はWindowsでさまざまな時にネットワークの切断をテストするネットワークC++プログラムを用意しています。私の選択肢は何ですか?ソフトウェアでのネットワーク割り込みのテスト

現在、私は:

  1. は、実際にソケットを閉じるためにcportsプログラムを使用して
  2. を解放/ IPCONFIGを使用して私のコンピュータ
  3. の背面からのネットワーク配線を切断完全

私には理想的ですが、これらの方法はありません。ネットワークの問題をより簡単にエミュレートしたいと思っています。

私はしばしば失敗するように接続したい、時にはソケットの読み込みが失敗することがあり、時にはソケット書き込みが失敗することがあります。これらのタイプの問題をエミュレートするために私が使用できるいくつかのユーティリティがあれば、素晴らしいことでしょう。

このエミュレートされた不正なネットワークが稼動している間に、自動化された単体テストを構築できることもうれしいでしょう。

答えて

11

ネットワークレイヤーを抽象化し、適切なポイントで興味深い障害イベントを挿入する単体テストを行うことができます。

+0

これは私が取るアプローチであり、非常にうまく機能します。インタフェースを賢明に使用するということは、テスト対象のシステムのさまざまな部分を模倣できることを意味します。このように行うことができないテストでは、テスト対象のコードをテスト・ハーネスのテスト・ソケットに接続してテストします –

3

私はShunraからVEDekstopと似た何かをやっていると考えることができます最も近い..

Simulating High Latency and Low Bandwidth in Testing of Database Applications

Shunraは、デスクトップの標準がそう広域ネットワークリンクをシミュレートし、Windowsベースのクライアント・ソフトウェア・ソリューションであるVEデスクトップから直接、さまざまな現在および潜在的なネットワーク状況下でアプリケーションをテストすることができます。

0

ソケットを管理するために使用するライブラリクラス(MFCを使用している場合はおそらくCAsyncSocketまたはCSocket)をサブクラス化し、テストしたいメソッドをオーバーライドし、オーバーライドに適切なテストコードを挿入できます。

0

いくつかの方法がありますが、テストするレベルによって異なります。関数レベルでは、XUNITテストフレームワークを使用してレスポンスをモックできます。ソフトウェアレベルでは、ローカルプロキシサーバーを使用して対称接続を行うことができます。

関連する問題