ソフトウェアテストにおけるスパイクテストとは何ですか? 例で学ぶ
⚡ スマートサマリー
スパイクテストとは、アプリケーションに突然、極端な負荷をかけ、その後、同じように急激に負荷を解除するテストです。その目的は、システムがその衝撃に耐えられるかどうか、そして、それと同じくらい重要なこととして、その後回復できるかどうかを確認することです。

スパイクテストとは何ですか?
スパイクテスト ソフトウェア テストの一種で、トラフィック負荷を極端に増減させてソフトウェア アプリケーションをテストします。 スパイク テストの主な目的は、ユーザー負荷の突然の増加または減少下でのソフトウェア アプリケーションの動作を評価し、ユーザー負荷のスパイク後の回復時間を決定することです。
スパイク テストは、ソフトウェア アプリケーションの弱点を推定するために実行されます。

スパイクテストの目的
スパイク テストの目的は、ユーザー負荷の予期せぬ増減にシステムがどのように反応するかを確認することです。 ソフトウェア エンジニアリングでは、スパイク テストは、突然の高負荷がかかったときにシステム パフォーマンスが低下するかどうかを判断するのに役立ちます。
スパイク テストのもう XNUMX つの目的は、回復時間を決定することです。 ユーザー負荷が XNUMX 回連続して急増するまでには、システムが安定するまでに時間がかかります。 この回復時間はできるだけ短くする必要があります。
スパイクテストのやり方
スパイク テストを実行する簡単な手順は次のとおりです。
ステップ 1) 耐荷重を決定する
ソフトウェア アプリケーションの最大ユーザー負荷容量を決定します。
ステップ 2) テスト環境を準備する
テスト環境を準備し、パフォーマンス パラメーターを記録するように構成します。
ステップ 3) 予想される負荷を定義する
を使用して、予想される最大負荷をソフトウェア アプリケーションに適用します。 パフォーマンステストツール お好みの。
ステップ 4) 負荷を増やす
設定した期間、システムへの負荷を急速に増加させます。
ステップ 5) 負荷を通常に戻す
徐々に負荷を減らして元のレベルに戻します。
ステップ 6) 結果を分析する
パフォーマンス グラフと、障害、所要時間、仮想ユーザーなどのメトリクスを分析します。
スパイクテストシナリオの例
- ブラック フライデーなど、e コマース ストアが大幅な割引を伴う特別セールを開始するとき。
- Web アプリケーションがお気に入りのテレビ番組をライブ ストリーミングしているとき。
- 日替わりセールサイトでフラッシュセールが開催されているとき。
- サイトの特定のコンテンツがインターネット上で広まったとき。
- 新しいシステムが実稼働用にリリースされ、複数のユーザーがそのシステムにアクセスしたいと考えています。
- 停電が発生すると、すべてのユーザーがシステムにアクセスできなくなる場合があります。停電の問題が解決すると、すべてのユーザーが同時にシステムに再度ログオンします。
スパイク負荷時の回復シナリオ
スパイクを防ぐために構成できる XNUMX つの主な回復シナリオは次のとおりです。
- 次のようなクラウド プラットフォームを使用します。 AWS, Azure ユーザーの負荷に応じてサーバーの容量を動的に増加させる
- システムに大きな負荷がかからないよう、一部のユーザーにアプリケーションへのアクセスを許可しないでください。 これにより、設計された最大荷重を超える人がシステムに入るのを防ぎます。 したがって、システムを過剰な負荷の脅威から保護します。
- サイト管理者は、ユーザーがシステムに参加することを許可します。 ただし、負荷が高いため、応答が遅くなる可能性があると警告されています。 これにより、システムのパフォーマンスに悪影響を及ぼす可能性があります。 ただし、ユーザーはシステムを操作できます。
スパイクテストの利点と欠点
スパイクテストの長所と短所は次のとおりです。
| 優位性 | デメリット |
|---|---|
| ソフトウェアのパフォーマンスは、いかなるコストを払ってでも維持する必要があります。 ただし、システムの負荷が極端に増加すると、問題が発生する可能性が高くなります。 スパイク テストは、このようなシナリオのテストに役立ちます。 | スパイク テストの唯一の欠点は、テスト プロセスに費用がかかることです。 そのため、特別なテスト条件を設定する必要がありました。 ただし、長期間にわたって、確実にプラスの ROI が得られます。 |
| 標準的なテスト方法では、悪いシナリオから最悪のシナリオまでは対処できない可能性があります。 ただし、それらを無視しても、それらがまったく起こらないという意味ではありません。 したがって、すべてのソフトウェアはそのような可能性を備えている必要があります。 そのような最悪のシナリオの XNUMX つは負荷であり、スパイク テストの助けを借りて判断し、最小限に抑えることができます。 |
スパイクテストツール
1) JMeter
その Apache JMeter Java オープンソースのスパイク テスト ツールです。これは、機能テストの動作をロードし、パフォーマンスを測定するために特別に設計されています。このパフォーマンス テスト ツールは、Web アプリケーションやさまざまなサービスのパフォーマンスを分析および測定するために使用できます。現在では、機能テストやデータベース サーバー テストに広く使用されています。
2) LoadRunner
LoadRunner は、次の負荷テスト ツールです。 Windows Linux では、Web アプリやその他のアプリのスパイク テストが可能です。これは、高負荷下でもアプリケーションのパフォーマンスと結果を判断するのに役立ちます。
このテストがパフォーマンス テスト ファミリーにどのように適合するか
性能テストは包括的な用語です。以下のバリエーションは、加える負荷の形状と負荷を維持する時間のみが異なるため、しばしば混同されます。
| テストタイプ | 負荷パターン | 質問に答える |
|---|---|---|
| 負荷テスト | 予想されるピーク負荷、短時間 | 通常のピーク時トラフィックにおいて、システムは目標を達成しているか? |
| ストレステスト | 容量を超えて増加し、最終的に故障する | どこで壊れるのか、そして、それは優雅に失敗するのか? |
| スパイクテスト | 急激な上昇、その後の下落 | 交通渋滞による衝撃から生き残り、回復できるだろうか? |
| 耐久試験 | 通常の負荷を何時間も保持 | 時間の経過とともに性能は低下しますか? |
| 浸漬試験 | 長期間にわたる持続的な負荷 | メモリリークやリソース枯渇は発生していますか? |
| 安定性テスト | 様々な条件下での負荷の変化 | 状況が変化しても、システムは信頼性を維持できるのか? |
| ボリュームテスト | 一般ユーザー、データ量が非常に多い | データベースの規模が拡大しても対応できますか? |
耐久試験と浸漬試験は、しばしば同義語として扱われる。 一般的には、どちらも長時間にわたって負荷を持続させるテストです。しかし、チームによっては両者を区別する場合、耐久テストは応答時間が上昇するかどうかに焦点を当て、負荷テストはメモリ、ファイルハンドル、接続プールなどのリソース消費に焦点を当てます。通常、どちらか一方を実行すれば、両方のテスト結果を得ることができます。
テスト中に取得すべき主要指標
パフォーマンステストの精度は、実行中に記録した内容によって決まります。サーバー側とクライアント側の両方で以下の6つの項目を記録し、直感ではなく基準値と比較してください。
| メトリック | それが何を意味するか | 警告サイン |
|---|---|---|
| 平均応答時間 | 典型的なユーザー体験 | ランニングコース全体にわたる上昇傾向 |
| 95パーセンタイル応答時間 | 最も動作の遅いユーザーの体験 | 平均をはるかに上回る、つまり一貫性がない |
| スループット | 1秒あたりに処理されるリクエスト数 | 荷重が一定の状態で落下する |
| エラー率 | 失敗またはタイムアウトしたリクエストの割合 | 合意されたしきい値を超える上昇 |
| CPUとメモリの使用状況 | サーバーリソースの余裕 | 記憶は上昇し、二度と戻ってこない |
| データベース接続とスレッド | プールでの疲労 | リリースなしで着実に増加する数 |
平均値とパーセンタイル値を一緒に読み取ってください。 平均応答時間が800ミリ秒で、95パーセンタイル値が900ミリ秒であれば、システムは安定していると言えます。一方、同じ平均応答時間でも95パーセンタイル値が9秒であれば、20人に1人のユーザーが応答に問題を抱えていることを意味し、平均値ではその問題が隠蔽されていることになります。
値だけでなく、形状にも注目してください。 長時間のテストでは、リソースのグラフが横ばいであれば合格、上昇していれば漏洩と判断されます。たとえテスト終了時点で絶対値が許容範囲内に収まっていても、この判断は変わりません。
スパイクテスト:重要なポイント
- ソフトウェアテスト ソフトウェア テストの一種で、トラフィック負荷を極端に増減させてソフトウェア アプリケーションをテストします。
- スパイク テストを行うための正しいアプローチは、ユーザー数を予期せず増加させ、その後すぐに負荷を減少させることです。
- 予期せぬ負荷がこの取引の主な特徴です。
- 実際の Spike テスト シナリオの例は、e コマース ストアがブラック フライデーなどの大幅な割引を伴う特別セールを開始する場合です。 あるいは、Web アプリケーションがお気に入りのテレビ番組をライブ ストリーミングしている場合も同様です。
- JMeter は、スパイク テストを行うための便利なツールの 1 つです。
