ソークテストとは? 定義、意味、例

浸漬試験

浸漬試験 非機能テストの一種で、長期間にわたって大量の負荷がかかった状態でソフトウェア アプリケーションのパフォーマンスを測定するために使用されます。 Soak テストの目的は、ソフトウェア アプリケーションが大量の使用に耐えられるかどうかを確認し、設計の想定外で何が起こるかを確認することです。

下の画像は、浸漬テストがどの段階で行われるかを示すテスト サイクルを示しています (性能試験の種類) はアプリケーション上で実行されます。

浸漬試験

このタイプのテストでは、基本的に監視されるのは、システム内のアプリケーションによるメモリ使用率です。 システム レベルでテストを行って、システムが非常に大量の使用に耐えられるかどうかを確認し、設計の想定外で何が起こるかを確認します。

ソークテストを行う理由

システムは 2 時間使用した場合は正常に動作しますが、同じシステムを 10 時間以上連続して使用すると、障害が発生したり、異常/ランダムな動作/クラッシュが発生する可能性があります。このような障害を予測するために、浸漬テストが実行されます。

ソークテストはいつ行うのですか?

浸漬テストは次のようなシナリオで実行する必要があります。

  1. ビルドがクライアントに展開される前、つまり特定のプラットフォームでアプリケーションがリリースされる前に、高または同等のトラフィックレベルでの一連の負荷テストに合格する必要があります。その後 浸漬テストが実行されます。 これは、特定のアプリケーションを長期間実行する方法を決定するのに役立ちます。 期間中、つまりソーク中にメモリ リークやメモリ破損などの問題が見つかった場合は、すぐに報告する必要があります。
  2. アプリケーションは一昼夜にわたって実行状態にある必要があるため、ソーク テストを行うのに最適な時期は週末です。 それはテスト状況の制限に完全に依存します。 浸漬テストは、すべての企業が非常に厳密に従う必要がある最も重要なコンプライアンス要件の XNUMX つです。

浸漬テスト戦略

ロング セッション ソーク テストは、システムに長時間負荷がかかる戦略です。

簡単な例としては、ユーザーが何時間もシステムにログインしたまま、多数のビジネス トランザクションを実行する場合が挙げられます。この方法では、大量のデータが作成されます。システム/データベース サーバーに大量の負荷がかかり、システム/データベース サーバーの停止やクラッシュが発生する可能性があります。

ロング セッション ソーク テストでは、複数日 (たとえば 30 日間) のアクティビティが、制限された時間枠 (たとえば 2 日間) 内で実行されます。 この制限された期間内のトランザクション数は、数日分のトランザクションと一致するか、それを超える必要があります。 処理されたトランザクションの数に注目する必要があります。 ソーク テストの最も重要な部分は、CPU で利用可能なメモリと使用されるメモリの量を確認することです。 ソーク テストの開始時と終了時のメモリ使用量を記録する必要があります。 必要に応じて、次のような機能のメモリ使用量 Java 仮想マシンも重要であり、監視する必要があります。

以下は、ソーク テストを開始する前にユーザー/テスターが実行する必要があるさらにいくつかのチェックです。

a) データベースのリソース消費を監視します。

b) サーバーのリソース消費 (CPU 使用率を除く) を監視します。

c) ソーク テストは現実的なユーザーの同時実行で実行する必要があります。

浸漬試験の特徴

標準的な浸漬試験法には、次のような特徴が必要です。

  • ほとんどの浸漬テストの期間は、多くの場合、利用可能な時間によって決まります。
  • 長時間を必要とするアプリケーションは、中断することなく実行する必要があります。
  • 利害関係者によって合意されたすべてのシナリオをカバーする必要があります。
  • ほとんどのシステムには定期的なメンテナンス ウィンドウ期間があり、そのウィンドウ期間の間の時間がソーク テストの範囲を決定する重要な要素となります。

浸漬試験の例

  • 販売者からの大量のデータがある銀行ドメインの場合、テスターはシステムに 70 時間から 150 時間継続的に負荷をかけ、この負荷期間中にアプリケーションがどのように動作するかをチェックします。
  • 33,000回のログインがあり、それをシステムで処理する必要があるとすると、60日半のアクティビティに相当します。この場合、70~6時間の浸漬テストは金曜日の午後XNUMX時頃に開始でき、完了までに完了します。 Monday 朝6時。このようなテストを行うことでのみ、制御された条件下でのパフォーマンスの低下を観察することができます。
  • ビデオゲームの場合、 モバイル アプリケーションなどのテストでは、ゲームまたはアプリケーションを、アイドリング、タイトル画面で一時停止など、さまざまな動作モードで長時間実行状態のままにして、アプリケーションが継続的に予想される負荷を処理できるかどうかを確認します。

ソークテスト中に観察される一般的な問題

  1. メモリ割り当て (最終的にはメモリ クライシスや時間の経過とともに現れる丸め誤差を引き起こすメモリ リーク)。
  2. データベース リソースの使用率 (特定の条件下でデータベース カーソルを閉じることができず、最終的にシステム全体が停止する可能性があります)。
  3. また、パフォーマンスの低下につながる可能性もあります。つまり、長期間の継続的なアクティビティ後の応答時間がテストの開始時と同じくらい良好であることが保証されます。
  4. 状況によっては、多層システムの層間の接続を閉じることができず、システムの一部またはすべてのモジュールが停止する可能性があります。
  5. 長時間のテスト中に内部データ構造の効率が低下するため、一部の関数の応答時間が徐々に低下します。

まとめ

  • In ソフトウエアエンジニアリング, ソークテストは、テスト対象のアプリケーションが継続的な負荷に耐えられるかどうかを判断するために行われます。
  • パフォーマンステストの一種です。
  • これは、システムが非常に大量の使用に耐えられるかどうかを判断するのに役立ちます
  • このタイプのテストでは、基本的に監視されるのは、システム内のアプリケーションによるメモリ使用率です。
  • ソーク テストを開始する前にユーザー/テスターが実行する必要があるチェックには次のものがあります。
  • データベースのリソース消費を監視します。
  • サーバーのリソース消費 (CPU 使用率を除く) を監視します。
  • ソーク テストは、現実的なユーザーの同時実行性で実行する必要があります。