soak testing tutorial what is soak testing
ソークテストに関するこの包括的なガイドでは、ソークテストとは何か、なぜそれが必要なのか、そのアプリケーション、長所、ベストプラクティス、および短所について説明します。
ソフトウェアアプリケーションのテスト中には、さまざまな種類のテストを実行する必要があります。機能テストと非機能テストは、テストの種類を分類できる2つの大きなカテゴリです。
機能テストは、その名前自体が示すように、アプリケーションの機能のテストに関連しています。一方、非機能テストは、機能テスト以外のすべてのテスト(ユーザビリティ、パフォーマンスなど)を対象としています。
学習内容:
製品テスターになるにはどうすればよいですか
ソークテスト–完全ガイド
このチュートリアルでは、パフォーマンステストの一種であるソークテストの概念を紹介します。
上の画像に見られるように、ソークテストは非機能テストの一種であると言えます。
ソークテストとは
これは、テスト対象アプリケーション(AUT)が事前に決定された時間枠で継続的な負荷に耐えられるかどうかを確認するパフォーマンステストの一種です。これは機能しないタイプのテストです。とも呼ばれます 「耐久性テスト」 または 「寿命試験」 。
文字通りの名前で言うと、「ソーク」という言葉自体が、このテストで意図されていることの意味を保持しています。したがって、特定の期間のアプリケーションに高負荷をかけることが、このテストのすべてです。
アプリケーションが1時間またはおそらく20時間負荷にさらされた場合、違いは何でしょうか。しかし、はい、それは重要性を持っています。
これは、実際のシナリオでよりよく説明できます。ロープを両端から2人でしばらく引っ張ると、圧力に抵抗するだけかもしれませんが、同じことを何日も続けると、両端からの圧力に屈してロープが折れる可能性があります。
(画像 ソース )
ソフトウェアの場合もそうです。アプリケーションに高負荷(数百または数千のユーザー)をかけると、1時間は問題なく動作する可能性があります。ただし、同じアプリケーションに20時間負荷をかけると、完全に崩壊する場合があります。
(画像 ソース )
長時間の大量のトラフィックが続くと、アプリケーションでさまざまな問題が発生する可能性があります。したがって、ソークテストの必要性が生じます。
このテストでは、基本的な概念は、アプリケーションに予想されるユーザーを長時間ロードすることです。これは、実際のシナリオがライブアプリケーションで発生するまで検出されない、さまざまな根本的な問題を特定するのに役立ちます。
最高のVRアプリは何ですか
ソークテストの必要性
ニーズを理解するには、アプリケーションが長時間高負荷に遭遇した場合に発生する可能性のある問題についても認識しておく必要があります。
ソークテストが必要になるさまざまな理由を見てみましょう。
#1) 主に、誤ったメモリ管理、データベース接続の問題、アプリケーションの応答時間の低下などの問題を特定する必要があります。
これらの問題のそれぞれについて、以下で説明します。
- 誤ったメモリ管理には、使用するために割り当てられているが解放されていないメモリや、リソースが必要以上のメモリを使用している場合などの問題が含まれる場合があります。このようなシナリオが長期間続くと、システムのメモリが不足し、アプリケーションが応答を停止する可能性があります。
- データベース接続の問題–データベース接続を閉じるときにエラーが発生すると、長期的には、アプリケーションが完全にクラッシュする可能性があります。
- アプリケーションの応答時間の低下–何らかの理由でアプリケーションの効率が低下し、応答時間が長くなる場合があります。時間の経過とともに、これによりアプリケーションが応答を停止する可能性があります。
このような状況が発生しないようにするには、アプリケーションをソークテストすることをお勧めします。これは、他の方法では検出されない可能性のある根本的な問題を特定するのに役立ちます。
#二) ソークテストは、アプリケーションが長期間にわたって負荷を引き受ける準備ができているかどうかを判断するのに役立ちます。
#3) これにより、チームは、システムがソークテストにどのように応答するかに基づいて修正措置を講じることができます。
いつソークテストを開始しますか?
(画像 ソース )
理想的には、他のパフォーマンステストと同様に、このテストは機能テストとともに製品開発中に実行する必要があります。ただし、これはめったに行われません。理由は明らかです。つまり、プロジェクトコストを管理します。
したがって、焦点は主に機能テストにあり、すべての形式のパフォーマンステストは通常、後部座席に与えられ、アプリケーションのリリース日近くに行われます。
一般に、ソークテストは、アプリケーションがクライアントにリリースされる直前に行われます。しかし、これには問題の修正に関連する大きな欠点があります。
後の段階でパフォーマンスの問題が見つかった場合、アプリケーションの配信日の近さを考慮すると不可能な可能性のある大きなコード変更が含まれる可能性があるため、修正が難しい場合があります。
したがって、特定された問題に対処できるように、このテストを時間どおりに実行することを常にお勧めします。
ソークテスト戦略
(画像 ソース )
アプリケーションをテストするためのテスト戦略が準備されているように、ソークテストを実行するための戦略が事前に準備されており、これは非常に必要です。
ソークテスト戦略の準備に何が入るのかを見てみましょう。
ソークテストを開始する前に、チームはアプリケーションをソークテストする必要がある負荷を決定する必要があります。テストが必要な期間も事前に決定する必要があります。通常、これは開発チームによって提供されます。
テストチームは、ソークテストで計画するシナリオを決定する必要があります。これは、クライアントのコミットメントとテスト対象のアプリケーションの要件に依存します。
ソークテストは主にメモリとリソースリークの問題の特定に重点を置いているため、使用可能なメモリとデータベースの消費量を事前に把握しておくことが重要です。
ビンファイルウィンドウを開く方法10
ソークテストを実行するOS、デバイスなどの環境の詳細も決定する必要があります。
最後になりましたが、関連するリスクも考慮に入れる必要があります。このような状況では、常にバックアップ計画を立てる必要があります。たとえば、テスト中にデータベースがクラッシュした場合、その場所で利用できる他の代替手段などがあります。
ソークテストのシナリオ
eコマースWebサイトがその製品のオンライン販売を発表する場合、3〜5日間にわたる販売期間中にWebサイトが読み込まれるのは自然なことです。このような状況では、予期しないクラッシュを回避するために、Webサイトをソークテストする必要があります。
会計年度の終了時に、銀行のWebサイトは継続的に非常に高い負荷に直面しなければならない場合があります。このような状況では、Webアプリケーションの予期しないクラッシュを回避するために、Webサイトをソークテストする必要があります。
アプリケーションが所定の負荷を連続的な所定の期間処理するように設計されている場合、既知の負荷処理能力の少なくとも2倍の負荷についてアプリケーションをテストする必要があります。
例えば、 Webサイトが500ユーザーの負荷を15時間連続して処理することがわかっている場合は、アプリケーションを1000ユーザーに対して15時間ソークテストする必要があります。これは、負荷容量の2倍に強制されたときにアプリケーションが異常に応答するかどうかを知るのに役立ちます。
ベストプラクティス
(画像 ソース )
- ソークテストは、ユーザーと期間の両方の観点から、アプリケーションのアイドル負荷制限を知ることによって常に実行する必要があります。これは、ターゲットが予想されるユーザーでアプリケーションをロードすることであるため、長期間にわたって認識されている必要があります。
- 夜間にソークテストを実行することをお勧めします。さらに長時間のテストを実行する場合は、週末に実行することをお勧めします。理由は明らかです。つまり、就業時間中はリソースが拘束されますが、夜間または非就業時間には、テストサーバーを長期間使用できる場合があります。したがって、非就業時間はそのようなテストにとって理想的な時間です。
- アプリケーションのソークテストに関連するリスクは常に分析する必要があり、軽減計画は同じインシデントに備えて準備する必要があります。
ソークテストの制約
(画像 ソース )
- アプリケーションのテストに必要な長い期間は、一般的に時間が利用できないため、1つの大きな制約です。したがって、ソークテストは時間不足のために回避される場合があります。
- アプリケーションで実行されている他のタイプのテストが影響を受けないように、テスト環境を慎重に選択する必要があります。これは、アプリケーションの高負荷を長時間テストすると問題が発生する可能性があるために発生する可能性があります。
- ソークテストの時間は慎重に決定する必要があり、主に休業時間(週末や休業後の夜間など)にする必要があります。
- 一般に、ソークテストには自動化ツールが必要です。これは、テストを多数のユーザーで長期間実行する必要があるためです。
ソークテストのデメリット
- プロジェクトのタイムラインは、ソークテストに必要な時間が一般的に長いため、ソークテストによって影響を受ける可能性があります。
- 多数のユーザーがアプリケーションにアクセスするためにメモリ使用率が高くなるため、テスト期間中はリソースが拘束されます。
結論
このチュートリアルを通じて、ソークテストとは何か、そしてこのテストを実行する必要がある理由を学びました。
ソークテストとは何か、そしてそれが特定に役立つ問題の種類を理解したことで、同じことを実行する必要性を非常によく理解できます。特に、全世界が常に接続されている場合、このテストは必須になります。
ソークテストを開始する時期と、従うべきアプローチを確認しました。シナリオ、ベストプラクティス、およびそれに関連する制約についても、ここで説明しました。
このチュートリアルがソークテストとは何かを理解するのに役立ち、同じことに関する知識を高めたに違いないことを願っています。