「統合テスト」の概念はわかりにくいと思います。かなりの数の説明と範囲があるようです:
- 機能/受け入れテスト(例: Selenium を使用したユーザー インターフェイスのテスト)
- ソフトウェアの異なるクラス/モジュールの統合を一緒にテストする (db 呼び出しなどの特別なことをせずに、2 つ以上のクラスを一緒にテストするだけです)
- システム構成機能/機能に依存しないテスト(データベース統合が機能し、依存関係が正しく注入され、セキュリティ基本クラスが機能する)
- システム全体のテスト(データベース、Web サービスなどを使用するサービスの実行)
- などなど
私は統合テストを包括的な用語として見始めています (プログラミングの話で統合テストを定義するのとは対照的に、具体的/厳密な意味が与えられることがよくあります):
- 統合テストには以下が含まれます。
- 単体統合テスト(外部ライブラリを呼び出さずに、同じパッケージ内の異なるクラスの統合をテストします)
- 機能/受け入れテスト(たとえば、Selenium によるソフトウェアの最終出力のテスト)
- システム テスト(ウィキペディアの記事に記載されている、より技術的で機能に関連しないさまざまなテストを含む)
Maven のデフォルトのライフサイクルには、「テスト」フェーズと「統合テスト」フェーズのみがあります。これは、テストを大まかに 2 つのカテゴリに分割するように思われ、これらの仮定に沿ったものになります。
一般に、単体テスト、機能テスト、回帰テストなどの違いを探す多くの既存の質問と回答があります。ただし、統合テストに関するより具体的な回答を探しています。統合テストをどのように分類し、その中に何を含めますか? また、私が行ったように、ソフトウェア テストを大まかに 2 つのカテゴリに分割することを避けますか? ユニット テスト (1 ユニット) と統合テスト (2 ユニット以上) です。