「統合テストとシステムテストを行う」とは自動テストを意味する場合、答えはノーであり、標準的なアプローチはありません。どのアプローチを選択するかは、以下によって異なります。
- アプリケーションの特性(たとえば、GUIがありますか?、読み取り専用ですか?、外部依存関係の数など)
- テストしようとしているもの(GUIテストのみが必要な場合もあれば、逆の場合もあり、GUIについてはあまり気にしないが、内部ロジックは重要です)
- 結果をどれだけ早く見たいか(たとえば、スタブアウトすればするほど、テストは速くなります)
- チームのスキルセット
個人的には、JUnitと統合するアプローチが大好きです。JUnitは、十分にサポートされ、継続的な統合サーバーに簡単に結び付けられる素晴らしいフレームワークです。考えられるアプローチは次のとおりです。
- SeleniumwithJUnit -Webアプリケーションを駆動するための素晴らしいツール
- Concordion-すべてのアプリケーションタイプ用。JUnitと統合し、テストのわかりやすい英語仕様を可能にします。'fixture' / testコードは、仕様のキーワードにフックし、それらに対してアクションをアサートまたは実行します。
- FEST-スイングアプリケーションの場合も、JUnitと統合されます(テーマはまだ表示されていますか?;)(その他の選択肢はこちら)
上記の例は、テストのための非常に多くのすぐに使えるヘルプを提供します。もちろん、それでもアプリケーションに接続して維持するための努力が必要ですが、利点はそれだけの価値があります。上記に加えて、アプリケーションの領域をスタブまたはモックアウトする方法について考える必要があるかもしれません。おそらく、すべてのテストを「GUIの下」または「データベースの上」で実行したいと思うでしょう。最初のシナリオでは、GUIが対話するコード内のポイントからテストを開始する必要があり、後者では、データベースと対話するサービスをスタブ化する必要があります。
つまり、これを行う方法はたくさんあります。テストから何を得たいかを非常に明確に理解することから始めるのが最善です。次に、テストしたいものに基づいて役立つ既存のフレームワークを学び、最後に、夜に世界を征服しようとしないでください。小さなことから始めて、いくつかのテストを実行します。緑色のバーを取得します(常に見るのが楽しいです!)テスト用の安定した実績のあるプラットフォームを取得し、それに満足していることを確認します。次に、作業を進めながらさらに追加します。