パフォーマンス テストとは

パフォーマンステストは、ネットワーク、データベース、およびインターネットサーバーの有効性を評価するために実行されます。 ウォーターフォール手法を使用している場合は、新しいバージョンがリリースされるたびに確認することが重要です。 ただし、アジャイルソフトウェア開発手法を使用している場合は、アプリケーションを常にテストする必要があります。 パフォーマンステストは、プログラムが通常の動作状況下でどの程度うまく動作するかを測定します。 パフォーマンス テストの目的は、パフォーマンス関連の問題を検出し、アプリケーションが予想される使用レベルに耐えられることを確認することです。 反応時間、スループット、リソース使用率などのパフォーマンスパラメータはすべて、パフォーマンステストを使用して測定できます。 パフォーマンステストは、 ウェブ アプリケーションがさまざまな負荷の下でどれだけうまく機能し、ユーザーの要求にどれだけ迅速に反応するかを評価することを目的としています。 パフォーマンスのボトルネックと改善すべき場所を見つけるために、アプリケーションの応答時間、スループット、およびリソース使用量を測定します。

パフォーマンステストの方法:

パフォーマンス テストは、他のテスト手法のスーパーセットであるため、さまざまな手法を使用します。 主な有効性テスト手法を以下に示します。

性能試験の方法

図1:パフォーマンステストの方法

  1. ロード テスト: ロード テストは、アプリケーションまたは Web サイトでの実際のユーザー ロードをシミュレートする方法であり、ロード テストと呼ばれます。 軽負荷と重負荷の両方でのプログラムの動作を調べます。 開発プロジェクトでは、終了が近づくにつれてこの種のテストを使用する場合があります。
  2. 耐久テスト: ソフトウェアシステムが長期間続くと予想される重い負荷に耐えることができるかどうかを確認するために実行される一種の非機能テスト。

耐久試験

図2:耐久試験

  1. ボリュームテスト: ソフトウェアが大量のデータにさらされるソフトウェアテストの一種
  2. スケーラビリティテスト: ユーザークエリの量がスケールアップまたはスケールダウンされたときにシステムまたはネットワークがどの程度うまく機能するかを評価する非機能テストの手法
  3. スパイクテスト: ソフトウェアが両方の条件下で異なるトラフィック負荷の下で大幅にテストされるソフトウェアテスト手法
  4. ストレステスト: 意図的に厳格または集中的なテストの一種。 結果に気付くために、システムが通常壊れるポイントを超えてテストする必要があります

 

比較されたテスト方法:実際の例:

ホリデーシーズン中に大量のトラフィックが予想されるオンラインストアについて考えてみてください。 Webサイトの所有者は、予想されるトラフィックの結果としてパフォーマンスの問題が発生しないことを確認したいと考えています。 さまざまなワークロードの下でのWebサイトの効率を評価するために、パフォーマンステストが実行されます。 ストレステストは、重いワークロードの下でのWebサイトのパフォーマンスを評価するために使用されますが、ロードテストはさまざまなユーザー負荷を模倣するために使用されます。 パフォーマンステストの結果は、Webサイトの所有者がWebサイトのパフォーマンスを向上させ、予想されるトラフィックを問題なく管理できることを確認するのに役立ちます。

顧客の機能的ニーズは、多くの場合、パフォーマンス テストに関連しています。 イベント チケットの販売を管理するためのサービスの作成を要求する顧客について考えてみます。 たとえば、顧客は、アプリケーションが毎分最大50,000の要求を処理できると予想しています。 パフォーマンス テストは、この機能の前提条件を検証するのに役立ちます。

 

ロード テストとは

ロード テストでは、現実的な負荷の下でアプリケーションがどの程度適切に動作するかを測定します。 アプリケーションが予想されるレベルの使用率を処理できることを確認し、一般的な動作状況で発生する可能性のあるパフォーマンス関連の問題を見つけるために、ロード テストが使用されます。

負荷テストの方法:

ボリュームテスト: ボリューム テストと呼ばれるロード テストの種類は、大量のデータを処理するときにプログラムのパフォーマンスを測定するために使用されます。 アプリケーションが速度を低下させることなく大量のデータを処理できるかどうかを調べることが、ボリュームテストの目的です。

スケーラビリティテスト: スケーラビリティのテストは、負荷が増加したときのアプリケーションのパフォーマンスを測定するために使用されるロード テストの一種です。 アプリケーションのスケーラビリティのテストは、パフォーマンスを損なうことなくより多くのユーザーを管理できるかどうかを確認するために行われます。

ロード テスト: 実際の例:

ホリデーシーズン中に大量の売上が見込まれるオンラインストアを考えてみましょう。 アプリケーションの所有者は、予想される負荷を処理するときにパフォーマンスの問題がないことを確認したいと考えています。 通常の負荷とピーク負荷の両方でプログラムの動作を評価するために、負荷テストが実行されます。 さまざまな負荷の下でのアプリケーションの反応時間、スループット、およびリソース使用量を測定するには、パフォーマンス テストが使用されます。 ロード テストの結果は、アプリケーションの所有者がアプリケーションのパフォーマンスを最適化し、ホリデー シーズン中に予想される負荷に耐えられることを確認するのに役立ちます。

ロード テストは、毎分 5,000 要求を管理できる特定のアプリケーションの既知の境界内でアプリケーションが動作していることを確認するのに非常に役立ちます。 これにより、アプリが制限に近づいたときにどのように動作するかを簡単に予測できます。 これらの対策を講じることで、失敗の可能性を下げています。

 

ストレステストとは何ですか?

ストレス テストは、高負荷や予期しないトラフィックの急増などの困難な状況下でアプリケーションがどの程度うまく機能するかを評価するテストの一種です。 ストレス テストの目的は、困難な状況下で発生する可能性のあるパフォーマンス関連の問題を検出し、アプリケーションがトラフィックの急激な増加に耐えられることを確認することです。

ストレステストの方法:

スパイクテスト: 「スパイクテスト」と呼ばれるストレステストの手法は、ユーザートラフィックの突然の大幅な増加の下でアプリケーションがどのように動作するかを評価します。 この手法を使用すると、プログラムがユーザー トラフィックの予期しないスパイクを処理する方法を確認できます。

ボリュームテスト: データ負荷の高い状態でのアプリケーションのパフォーマンスを評価するストレス テスト手法。 この手法は、アプリケーションが問題なく大量のデータを処理できるかどうか、およびそのようなボリュームにどのように反応するかを確認するために使用されます。

構成テスト: さまざまなハードウェアおよびソフトウェアのセットアップでアプリケーションのパフォーマンスを評価するストレス テストの手法は、構成テストと呼ばれます。 この手法は、アプリケーションがさまざまなハードウェアおよびソフトウェアのセットアップで問題なく動作できるかどうかを確認するために使用されます。

ストレステスト:実際の例:

会計年度末に大量の取引が予想される銀行アプリケーションについて考えてみましょう。 アプリケーションの所有者は、予想される負荷を処理するときにパフォーマンスの問題がないことを確認したいと考えています。 厳しい要求の下でアプリケーションの動作を評価するために、ストレステストが実行されます。 大量のデータ負荷の下でのアプリケーションの動作は、ユーザートラフィックの突然の急増を模倣するボリュームテストとスパイクテストを使用して評価されます。 アプリケーションの所有者は、アプリケーションのパフォーマンスを最適化し、ストレス テストの結果を使用して予想される負荷を管理できることを確認できます。

5,000 の同時要求を管理できるアプリケーション プログラミング インターフェイスでセットアップで許可されているよりも多くの要求をアプリケーションで処理する必要がある場合、アプリはクラッシュします。 企業は、必要に応じてアプリケーションを拡張できるため、この制限に注意する必要があります。

 

パフォーマンス テスト、ストレス テスト、負荷テストの主な違い

パフォーマンス テスト、ストレス テスト、および負荷テストにはいくつかの重要な違いがありますが、ソフトウェア アプリケーションの機能と信頼性を確保するためには、3 種類のテストすべてが重要です。

ストレス テストは困難な状況下でのアプリケーションのパフォーマンスの評価に重点を置いていますが、パフォーマンス テストでは、一般的な動作条件下でのアプリケーションのパフォーマンスを測定します。 一方、ロード テストでは、現実的な負荷の下でのアプリケーションの効率を評価することに重点を置いています。

ストレス テストは通常、極端な条件を模倣するための 1 回限りのイベントとして実行されますが、パフォーマンス テストとロード テストは通常、通常のテスト プロセスの一部として実行されます。

トピック パフォーマンス テスト 負荷テスト ストレス テスト
定義 アプリケーションの有効性と効率性を評価する負荷テストとストレス テストのスーパーセット
負荷が重い負荷と軽い負荷の下でプログラムがどのように実行されるかを評価するパフォーマンス テストのサブセット
負荷が高いワークロードの下でアプリケーションがどのように機能するかを評価するパフォーマンス テストのサブセット
主な目的 プログラムの応答性、安定性、および速度を評価します
アプリケーションが予想される負荷をどの程度適切に管理できるかを決定します。
アプリケーションの破断点を決定します
主な目的 一般的な条件下でのアプリケーションの動作の表現を取得する Web アプリケーションの負荷を上げる
需要
急激な増加時にコンピューターがクラッシュするのを防ぐ
負荷タイプ 通常から高負荷 標準から最大負荷 過剰なトラフィック
負荷制限 ブレークのしきい値を下回っている場合と上回っている場合の両方
負荷制限はブレークポイントです
ブレークのしきい値より大きい
主な指標 応答速度、スループット、CPU、メモリ、およびエラー統計 応答速度、同時ユーザー数、スループット、およびリソース使用量

エラー率、ブレークポイント、最大ユーザー トラフィック

シナリオタイプ ベースライン、ストレス、スパイク、スタミナのテスト

ベースライン、ストレス、スパイク、スタミナのテスト

スパイクとスタミナのテスト
テストアプローチ 応答時間、スループット、およびリソース使用率を測定して、プログラムのパフォーマンスを判断します。 予想されるワークロードが満たされたときのアプリケーションの動作を評価することにより、パフォーマンスの問題を特定します。 アプリケーションが予想どおりに機能しなくなるまで負荷を増やすことで、アプリケーションの限界点を判断できます
一般的なツール Gatling、Apache Bench、JMeter、LoadRunner、WebLoad
BlazeMeter、JMeter、LoadRunner、NeoLoad
BlazeMeter、JMeter、LoadRunner、Apache JMeter プラグイン

同時ユーザー、HTTP 接続、または適切な応答時間の確認

大量のデータを変更してワードプロセッサを作成し、大量のデータを送信してプリンターをテストする 大規模なネットワークのポートをカジュアルにシャットダウンして再起動する

パフォーマンス、ストレス、負荷テストの比較 – すべてをまとめる

パフォーマンステストは、コンピューター、ネットワーク、またはその他のデバイスの速度を評価するために使用される測定手法です。 これは、ストレス テストと負荷テストのサブセットです。 パフォーマンス テストの一部であるロード テストは、プログラムまたは Web サイトの実際の負荷をシミュレートします。 逆に、ストレステストはシステムの安定性と回復力を確立します。 ネットワーク、データベース、およびWebサイトサーバーはすべて速度をテストできます。 クライアント/サーバー Web ベースのアプリでは、ロード テストが使用されます。 Webサイトへの予期しないテストトラフィックは、ストレステストの実施に使用されます。