わかりました….チームにさらにテストを作成するように勧めようとしているので、これは私を苛立たせています。次の例が統合または機能テストケースと見なされるかどうかを判断できません。
次のことを考慮してください。
多数のJSONフィードをルーティング/公開する単純なWebアプリケーションがあります。 。各ユーザーリクエストでは、データ変換を実行してシリアル化されたJSON応答を返す前に、アプリケーションがHTTP(バックエンド)を介して外部サービスにクエリを実行する必要があります。
サードパーティのライブラリを使用すると、次のことが可能になります。バックエンドで発生するすべての一意のHTTPインタラクションを記録し、ファイルシステムに書き込みます。次に、これらの記録は「再生」され、テスト中にこれらのクエリ結果を決定論的として扱うことができます。
私のテストケースには単一のアサーションが含まれています。これは、単一のフィードに対して予想されるJSON応答を含む単なる文字列です。アプリケーションを初期化した後、応答をキャプチャして予想されるJSONと比較する前に、リクエストをルーティングできるようにします。
1)これは機能テストですか、それとも統合テストですか。
2)機能している場合、「ビッグバン統合テストと機能テスト」の違いは正確には何ですか?
回答
1)これは機能テストですか、それとも統合テストですか?
機能テストテストと統合テストはテストの分類であり、相互に排他的ではありません。
この場合は両方です。統合テストは、定義上、複数のコンポーネントをテストするすべてのテストです。一緒に機能する2つのクラスをテストするための低レベル、またはシステム全体をテストするテストの場合もあります。
機能テストは、特定のシステム機能を確認するテストです。したがって、要件がある場合は「システムはユーザーオブジェクトをデータベースに保持する必要があります」、機能テストでは、システムの起動、ユーザーの保存、システムの停止、システムの再起動、ユーザーの存在と変更がないことを確認することで、その要件を確認できます。
あなたが書いた場合要件仕様またはユーザーストーリーからテストケースを作成する場合、テストケースを「機能テスト」と呼びますが、本質的に統合テストとしても分類されます。
2)機能している場合、「ビッグバン統合テストと機能テスト」の違いは正確には何ですか?
私の理解では「ビッグバン」統合テスト」とは、システムのすべてのコンポーネントを統合してからテストする統合テストです。このテストの目的は、すべてのコンポーネントが正しく統合され、アプリが起動できることを確認することです。この種のテストの欠点は、テストケースが失敗してもバグの場所がほとんどわからないことです。そのため、低レベルの統合テストも行うことが重要です。
機能テストはおそらく、テストの前にシステム内のすべてのコンポーネントを統合します。ただし、システム全体が開始されているため、ビッグバン統合テストは似ているように見えるかもしれませんが、概念的には異なります。