質問

アプリケーションのために統合テストとシステムテストを行いたいのですが、適切な統合とシステムテストを作成することで、気にしないほど多くの努力が必要になることがよくあります。私が試した数回、私は毎回ホイールを再発明するように感じたカスタムのアプリケーション固有のテストハーネスを書きました。これが間違ったアプローチなのだろうか。統合と完全なシステムテストに対する「標準」アプローチはありますか?

編集:明確にするために、デスクトップおよびWebアプリケーション用の自動テストです。理想的には、アプリケーションの完全な機能を行使する完全なテストスイートです。

役に立ちましたか?

解決

「統合テストとシステムテストを行う」ことを意味する場合、自動テストを意味する場合、答えはノーです。標準的なアプローチはありません。選択するアプローチは次のことに依存します。

  • アプリケーションの特性(たとえば、GUIがありますか?、読み取り専用ですか?、外部依存関係の数など)
  • テストしようとしているもの(GUIテストだけが必要な場合、または逆のことが真実であり、GUIは本当に気にしないかもしれませんが、内部ロジックは重要です)
  • 結果をどれだけ早く見たいか(たとえば、テストが速くなるほど)
  • チームのスキルセット

個人的には、Junitと統合するアプローチが大好きです。 Junitは素晴らしいフレームワークであり、よくサポートされ、連続的なインターグレーションサーバーに簡単に結び付けられています。いくつかの可能なアプローチがあります:

  • セレン Junitを使用 - Webアプリケーションを駆動するための素晴らしいツール
  • コンコード - すべてのアプリケーションタイプ用。 Junitと統合し、テストの単純な英語仕様を許可します。 「フィクスチャ」/テストコードは、仕様のキーワードに接続され、アクションをアサートまたは実行します。
  • 祭り - スイングアプリケーションの場合、再びJunitと統合します(まだテーマを参照してください?;)(その他の選択肢を参照してください) ここ)

上記の例は、テストのために膨大な量の箱から出しているヘルプを提供します。もちろん、彼らはまだあなたのアプリケーションに配線して維持するために努力が必要ですが、利点はそれだけの価値があります。上記に加えて、アプリケーションの領域をスタブまたはモックアウトする方法について考える必要がある場合があります。おそらく、「GUIの下」または「データベースの上」のすべてのテストを実行したいのです。最初のシナリオでは、GUIがそれと対話するコードのポイントからテストを開始する必要があり、後者ではデータベースと対話するサービスを突き出す必要があります。

ポイントです、これを行う方法はたくさんあります。テストから抜け出したいものを非常に明確に理解することから始めましょう。次に、テストしたいものに基づいてあなたを助けるために既存のフレームワークがそこにあるものを学び、最後に、夜に世界を征服しようとしないでください。いくつかのテストを実行して小さなテストを開始します。グリーンバーを手に入れてください(常に見たいです!)テストのための安定した実績のあるプラットフォームを入手し、あなたがそれに満足していることを確認してください。次に、進むにつれてさらに追加します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top