10

Java で書かれた分散ソフトウェアのテストを容易にするツールやフレームワークはありますか? テスト対象のシステムはピアツーピア ソフトウェアであり、PNUnitなどを使用してテストを実行したいと考えていますが、.Net ではなく Java を使用しています。

テスト対象のシステムは、P2P アプリケーションを構築するために私が開発しているフレームワークです。JXTAを下位サブシステムとして使用し、その複雑さを隠そうとします。現在は学術的なプロジェクトなので、現時点ではシンプルさを追求しています。

私のテストでは、ピア (独自のプロセスで、場合によっては複数のスレッドで実行されている) が別のピア (別のプロセスまたは別のマシンで実行されている) を検出し、いくつかのメッセージを交換できることを実証したいと考えています。両方の側が同時に動作するのを確認する必要があるため、モックもスタブも使用していません。なんらかの調整メカニズムが必要であることを認識しており、PNUnit はそれを実行できるようです。

私はPiscesのようないくつかのイニシアチブに出くわしました。「JUnit を拡張する分散テスト環境を提供することを目的としており、開発者/テスターがリモート JUnit を実行し、並行して実行される複数のリモート JUnit テストで構成される複雑なテスト スイートを作成できるようにします。またはシリアル」ですが、このプロジェクトと私が見つけた他のいくつかは、長い間死んでいるようです.

4

2 に答える 2

2

分散ソフトウェアのテストは、ソフトウェアの種類に大きく依存するため、完全な回答を得るには、ソフトウェアの機能を知る必要があります。しかし、PNUnit を見ると、それが行うことのほとんどは、テストの同期、順序付け、および並列実行を可能にしているように見えます。TestNGもこれをサポートしています。たとえば、次のことができます。

@Test(threadPoolSize = 3, invocationCount = 10,  timeOut = 10000)
public void testServer() {
   :
}

これにより、関数testServerが 3 つの異なるスレッドから 10 回呼び出されます。TestNG 4.5 の変更ログも、リモート テストを実行できる可能性を示唆しています。詳細については、このブログ投稿を参照してください。

または、並列および分散ソフトウェアをテストするために、IBM のConTestソフトウェアをチェックアウトすることもできます (使用方法については、こちらに詳しい説明があります)。これを使用して、同時実行アプリケーションのバグを明らかにすることに大きな成功を収めました。

于 2010-04-20T10:24:09.277 に答える
0

さて、非常に単純で、新しいフレームワークを学ぶ必要のない方法があります。grep4j を使用して、分散環境全体でアプリケーションによって生成されたログをテストできます。詳細については、こちらこちらをご覧ください。

于 2013-02-16T19:57:02.430 に答える