ローンチ、キャンペーン、移行、事業拡大の前に、プロダクトとエンジニアリングのチームは、アプリケーションは対応できるはずだという一般論よりも役立つ答えを必要とすることがよくあります。想定される利用量、同時実行数、トランザクション量が増えたときに、合意したジャーニーがどのように動作するかを知る必要があるのです。Application Load & Stress Testingは、特定したユーザージャーニー、代表的なテストデータ、計画した負荷の増加パターン、安全な制限、固定された実施時間帯、明確な停止条件からなる定義済みのシナリオを通じて、その証跡を得ます。応答時間の変化、エラー、安定性の懸念、ボトルネックの兆候、依存関係の挙動、キャパシティのシグナル、合意した負荷後の復旧を明らかにできます。指摘事項はその環境とシナリオに基づくものであり、ローンチ、キャパシティ、性能に関する判断のための計測された証跡を提供します。
何であるのか
Application Load & Stress Testingは、敵対的なトラフィックではなく、統制された利用負荷のもとでのプロダクトの挙動を確認します。本作業では、想定負荷の検証と統制されたストレスの探索とを区別します。想定負荷の検証では、チームが合理的に想定する利用水準の周辺で、選定したジャーニーがどのように動作するかを確認します。ストレスの探索では、承認された負荷を安全な境界に向けて増やしていく中で、挙動がどう変化するかを慎重に確認します。中心となるのはシナリオの設計です。選定した環境、テストデータ、同時実行数、トランザクションの構成、負荷の増加パターン、依存関係の状態、可観測性、停止条件によって、何がわかるかが決まります。本番環境での実施は、範囲の検討時にケースごとに判断します。報告書では、合意した時間帯の文脈において、応答時間の観測結果、エラー、安定性、ボトルネック、依存関係、キャパシティのシグナル、復旧について説明します。変更後の検証のための再テスト(オプション)は、別途範囲を定めます。
誰のために
本エンゲージメントは、次のようなチームに適しています。
- プロダクトのローンチ、キャンペーン、移行、事業拡大を担当しており、選定した顧客ジャーニーについて合意した利用パターンのもとでの証跡を必要としているチーム
- アプリケーションの挙動、依存関係、ボトルネックのシグナルを、定義済みのシナリオと照らし合わせる必要があるエンジニアリングやプラットフォームのチーム
- 代表的なテストデータ、適切な環境、安全な制限と停止条件を確認できる指名された技術担当者がそろっているチーム
- 通常の利用負荷に関する問いを、DDoSレジリエンス、ペネトレーションテスト、本番環境の継続的監視と区別したいチーム
明確にするのに役立つこと
本エンゲージメントで明確にできること:
- 最も重要なジャーニーとトランザクションのパターン、妥当な同時実行数と負荷の増加パターン、環境がどの程度代表的か
- 合意した負荷が増えるにつれて、応答時間、エラー率、安定性、キャッシュの挙動、連携、インフラの依存関係が変化する箇所
- プロダクト、アプリケーション、データ、プラットフォーム、プロバイダーとの協議を示唆する観測結果
- 異なるトラフィック構成、今後のリリース、テストしていない連携、本番への適合性、恒久的なキャパシティについて、テストしたシナリオの範囲を超える問い
含まれる内容
- ジャーニー、利用シナリオ、同時実行数、負荷レベル、環境、テストデータ、負荷の増加パターン、安全な制限、停止条件の書面での合意
- 指名された連絡先と一時停止の条件のもと、承認された時間帯内での統制されたテスト
- 範囲内での応答時間、エラー率、安定性、ボトルネック、依存関係、キャパシティ、復旧の観測
- 証跡の文脈、制約、優先順位付きのフォローアップのガイダンスを含む指摘事項の報告書
- クライアント主導の変更後の、別途範囲を定めた検証のための再テスト(オプション)
含まれていないもの
- DDoSレジリエンステスト、サイバー攻撃のシミュレーション、本番環境での無制限のテスト、攻撃手順
- ローンチの準備完了、稼働率、目標応答時間、拡張可能なキャパシティ、将来の性能、不具合のない運用、本番への適合性についての確約
- コードの是正、インフラ移行、継続的監視、エンゲージメント終了後の運用
- 書面で定めたテストの境界外にあるシナリオ、データ、環境、システム
それを選ぶべきとき
リリースや変更の前に把握すべきジャーニーと利用条件を特定できる場合に、本サービスをお選びください。小規模な社内テストに基づく前提ではなく、合意したシナリオについて計測に基づく見通しを求めるチームに有用です。統制された障害時のフィルタリングと可用性、進行中のインシデント、ペネトレーションテスト、コードやインフラの変更には、専用のエンゲージメントのほうが適しています。そうしたニーズには別の範囲が必要です。最も良い出発点は、シナリオ、環境、テストデータ、業務上の閾値、指摘事項が支えるべき判断について合意できるプロダクトオーナーとエンジニアリングリードの存在です。
私たちのアプローチ
抽象的な最大値ではなく、プロダクトの判断を軸にテストを設計します。まず、ジャーニー、データの扱い方、環境、同時実行数の前提、負荷の増加パターン、観測ポイント、安全な上限、停止条件について合意します。次に、環境が何をもって代表的といえるか、どのような差異を記録しなければならないかを確認します。予定した時間帯には、負荷の変化に応じて合意したジャーニーがどのように反応するかを、エラー、レイテンシー、安定性、依存関係、キャパシティの兆候、承認された負荷後の復旧を含めて観測します。安全上の閾値に達した場合は、直ちにテストを一時停止します。分析では、証跡をテストしたシナリオと直接結び付け、各結論がどこに当てはまるかを明確にします。最終的な引き継ぎでは、ボトルネック、依存関係、制約、妥当な担当者の対応を明示します。クライアント主導の是正、移行、継続的な観測、その後の検証のための再テストは、引き続き別の作業です。報告書は、貴社のリリース責任とより広範な性能改善プログラムの中で、実務的な計画の協議を支えるためのものです。
よくある質問
関連記事
始めよう
合意したアプリケーションの利用・同時実行シナリオについて証跡が必要ですか?
まずは簡単なご依頼から始めてください。ジャーニー、環境、テストデータ、安全な制限、統制された負荷・ストレステストが今後の判断に適しているかどうかを一緒に確認します。
Application Load & Stress Testingについて相談する