効果的なスケーラビリティテストは、カスタマーエクスペリエンスを評価し、重大な障害から保護し、組織の評判を守るのに役立つ。ここではスケーラビリティテスト戦略を立てる方法を解説する。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
スケーラビリティテストでは、ネットワーク、ハードウェア、CPU、データベースなどのアプリケーションエコシステムがさまざまな数のユーザーアクティビティーの下でどのように動作するかを評価する。パフォーマンスはUX(ユーザーエクスペリエンス)に直接関係するため、パフォーマンスが重要であることを理解することが重要だ。
2022年にテイラー・スウィフトのツアーチケット販売中にチケット販売システム「Ticketmaster」に障害が発生したことは、スケーラビリティテストの重要性を浮き彫りにした。Ticketmasterのシステムは、コンサートチケットにアクセスしたい何百万もの熱心なファンの需要を満たせるほどのスケーラビリティを担保することができなかった。
この種のスケーラビリティの失敗は、潜在的な顧客を怒らせ、売上に悪影響を与える可能性がある。効果的なスケーラビリティテストの推奨事項と禁止事項とは何かを解説する。
スケーラビリティテストを有効に活用する戦略を開発するには、留意すべき重要な点が幾つかある。
スケーラビリティテストは、アプリケーションの使用量の予測増加による影響を実証する。同時ユーザー数の増加だけでなく、データ量とユーザーリクエスト数の増加も調べる。さらに、ネットワーク帯域幅とCPU使用率も考慮する。
スケーラビリティテストは、耐久性テストや負荷テストとは異なる。耐久性テストでは、長時間にわたる高負荷の影響を検査し、アプリケーションが本来の用途以外でどのように動作するかについての情報を提供する。負荷テストでは、アプリケーションに対する負荷の影響も検査するが、応答の失敗に焦点を当てる。一方、スケーラビリティテストでは、ユーザー数やその他のパフォーマンス属性の変化の影響を理解しようとする。
テストをいつ実行するかを決めることが重要だ。ネットワーク帯域幅、サーバのサイズと機能、CPUの変更などの属性に変更が加えられたときにテストすべきだ。特にEC関連のWebサイトにおけるスケーラビリティテストを計画する場合は、ユーザー数の急激な増加を予測してテストすることが重要だ。これらの増加は、ホリデーショッピングなどの季節的なもの、またはテイラー・スウィフトのツアーなどの大きなイベントの前といったケースがある。
スケーラビリティテストとアプリケーションパフォーマンスの重要な属性には、次のようなものがある。
ユーザーによる要求からシステムの応答までに経過した時間のことを応答時間という。アプリケーションがスケーラブルである場合、同時ユーザー要求の数が増加しても応答時間は悪化しない。
事前に選択された時間内に処理されるユーザーリクエストの数をスループットという。負荷の増加によってスループットが損なわれない場合、アプリケーションはスケーラブルであると見なされる。
CPU使用率(特定のタスクを処理するために必要なCPUの量)は、ユーザートランザクションの数、データボリューム、その他の負荷要因が増加しても増やしてはいけない。最もスケーラブルなアプリケーションは、トランザクションごとのCPU使用量を最小限に抑えるように最適化されている。
可能な限り少ないメモリ量でトランザクションを処理できるように、コードを最適化する必要がある。これにより、トランザクション数が急増したときにメモリ不足になるリスクが軽減される。
トランザクションごとに消費する帯域幅を測定することで、ネットワークの使用状況が分かる。ボリュームが増えて帯域幅を増やす必要がないように、この量を減らすことが目標となる。
アプリケーションのパフォーマンスを測定するための戦略において、ツールの選択は重要なポイントだ。スケーラビリティ、負荷、耐久性、ストレスなど、複数の種類のパフォーマンステストを処理できるツールを探す。システムの種類と複雑さ、テストの目的、テスト対象のブラウザ、プラットフォーム、デバイスの組み合わせを考慮する必要がある。総合的パフォーマンステストツールの例として、「Apache JMeter」「SmartBear LoadUI Pro」「Tricentis NeoLoad」「Micro Focus LoadRunner」が挙げられる。
スケーラビリティテストの戦略を立てる際に、避けるべきことがある。
全てのパフォーマンステストは、要件を徹底的に理解し、分析することから始める必要がある。スケーラビリティはUXにとって非常に重要であるため、これらの要件を適切に満たすべきだ。負荷は予想よりもはるかに高くなる可能性があることに注意したい。予想を超える負荷を計画するコストと、これらの負荷を計画しないことによる障害のリスクとのバランスを取る必要があるため、慎重に調査すべきだ。
テストカバレッジは重要だが、スケーラビリティテストには費用がかかる。全てをテストする必要はない。メトリクスを収集するための重要な経験則がここに当てはまる。使用しないものは測定すべきでない。
Copyright © ITmedia, Inc. All Rights Reserved.