サーバーと異なるプログラミング言語のクライアントをテストする最良の方法は何ですか?

私たちは、クライアント側でさまざまなテクノロジーをサポートすることを目標にしているため、サーバーと通信するさまざまなプログラミング言語(Java、.NET/Silverlight、Flash、Javascript)でクライアントを作成しました。彼らが実行するはずの機能は同じです。

私たちが今直面している主な課題の1つは、このさまざまなクライアントテクノロジをサーバーに対してテストするための、シンプルで効果的なアプローチを見つけることです。現在、私たちはJSTestDriver、Flexmojo、NPandayなど、私たちが独自に開発した多くのMavenプラグインを利用してmavenを使用しています。より良いアプローチはありますか?

利用可能なフレームワーク/ツールやこれを行うための革新的なアイデアであれ、どんな助けでも喜ばれます。

ありがとう

3
それは別々のフィールドでなければならないようです。あなたのAPIのユニットテストと統合テストをしてください。適切な言語/フレームワーク/環境で各クライアントの単体テストを行います。その中には、統合テストの一部としてライブサーバーに対して実行されるものがあります。
追加された 著者 deceze,
サーバーが意味するものに特化してください。あなたはウェブサービスを意味しますか?
追加された 著者 Aravind R. Yarram,
私が意味するのは、サーバーとは、スタンドアローンのクライアントだけでなく、Webブラウザーからも要求を受け取り、クライアントの技術とは独立した特定のコンテンツで応答するサーバーです。しかし、サーバは異なる技術のためにそれ自体の内部で異なるコードを実行してもよい。たとえば、ブラウザクライアント(javascript)ではhttpヘッダーを処理する必要がありますが、Java、.NET、およびFlashクライアントでは必ずしもそうする必要はありません。
追加された 著者 Ali,
ありがとうございます。また、これらのすべてを1つのテストプロジェクトにまとめて、できるだけテストのコーディングを集中化し、メンテナンスと拡張を可能な限り簡単に行うための良い方法は何ですか?
追加された 著者 Ali,

2 答え

あなたが必要とするものはクリーンなデザインです。そうでなければすべてが混乱し、すべてを一緒にテストしなければなりません。

サーバーには他のシステム(ブラウザ、デスクトップアプリケーション、モバイルアプリケーション)とのインターフェイスがあり、このAPIを完全にテストする必要があります。サーバーで使用されているテクノロジに応じて、適切なフレームワークを使用してこれを行うことができます。これはあなたの主なテストの努力であるべきですし、APIを安定した状態に保つようにしてください。サーバの新しいバージョンごとに回帰テストを実行するだけです。

一方、同じAPIを使用するモックサーバーを作成することで、クライアントアプリケーションだけをテストすることができます。

最後に、サーバーとクライアントアプリケーションのライブバージョンを実行し、統合テストを実行する統合テストを行います。

7
追加された
どうもありがとうございました!優れた一般的なガイドライン
追加された 著者 Ali,

expect is a good framework for testing program-external text interfaces such as client-server interaction. It operates with tests formulated in Tcl on a purely black-box logic level.

0
追加された