OpenTextのホームページ。
技術トピックス

負荷テストとは?

クエスチョンマークを中心としたIT項目の図解

概要

ソフトウェア開発プロジェクトが完成に近づいたとき、配備の準備状況を把握するために欠かせないテストがある。この種のパフォーマンステストでは、ウェブアプリケーションが通常の負荷状態とピーク負荷状態においてどのように動作するか、また、その限界点(ピーク負荷状態以下で発生する場合)を判断することができます。その中核となる負荷テストは、ウェブアプリケーションが意図したパフォーマンス目標や目的を満たしていることを確認するために行われます。

これまで以上に多くのユーザーが、製品やサービスにアクセスするためにウェブアプリケーションに依存しているため、負荷テストは、現実的な負荷シナリオにおいてアプリケーションが適切に機能することを検証する上で非常に重要です。負荷テストは、ソフトウェアが失敗するリスクを軽減するだけでなく、ユーザーがアプリケーションのダウンタイムに苛立ち、アプリケーションを完全に放棄するリスクも軽減します。

負荷テストに不慣れな方、あるいは初めて負荷テストを実施しようとしている方は、このガイドを参考にしてください。以下では、負荷テストがどのように機能するのか、また、負荷テストを成功させる方法と、考慮すべきさまざまな負荷テストツールについて説明します。

負荷テスト

負荷テストはどのように行われるのか?

負荷テストは、専用のテストソフトウェアを通して、ウェブアプリケーションに模擬的な「負荷」または「需要」をかけ、運用中に安定していることを確認します。負荷テストでは、テストソフトウェアがトランザクションのレスポンスタイムを通じてウェブアプリケーションのキャパシティを測定します。アプリのレスポンスタイムが長くなったり、シミュレーションのトラフィックが一定レベルに達すると不安定になったりする場合は、ソフトウェアの動作能力がピークに達している可能性があります。

負荷テストを使えば、開発チームは次のようなことを簡単に測定・分析できる:

  • 料金、特にピーク負荷を支えるために必要な料金。
  • リソースの利用レベル。
  • CPUやRAMなどのハードウェア環境の性能。
  • ロードバランサーのパフォーマンス。
  • 並行処理の問題。
  • さまざまな負荷水準におけるソフトウェア機能のエラー。
  • ソフトウェアの設計上の欠陥。
  • アプリケーションが壊れる前に処理できるユーザー数。

負荷テストは、開発者がシステムの遅延、ページのロード時間の低下、クラッシュなどの問題を特定するのに役立ちます。負荷テストの例としては、所得税申告のピークシーズンを前にウェブ・アプリケーションの負荷パフォーマンスを評価する税務申告会社が挙げられます。


負荷テストはどのように行うのですか?

負荷テストの実施は、ウェブアプリケーションの目的を特定し、ニーズに最も適した負荷テストツールを選択することから始まります。以下では、パフォーマンス・テストの取り組みに負荷テストをうまく組み込むために踏むべき手順を説明します:

  1. ウェブアプリケーションの目的を特定する:負荷テストプロセスの最初のステップとして、ウェブアプリケーションの想定される範囲と量を特定することが重要です。レスポンスタイム、リソース利用レベル、最大ユーザー負荷など、本番中にテストすべき重要な機能とは何かを自問する。そうすることで、テスト・プロセスに役立つ明確なガイドラインを作成することができる。
  2. ユーザージャーニーを概説する:このステップでは、ユーザーがどのようにあなたのウェブアプリケーションとインタラクトするか、あるいは、ナビゲートするかを概説することが重要です。該当する場合は、組織が使用している可能性のあるアプリケーション・パフォーマンス・モニタリング・ツール(APM)からのモニタリング・データを活用してください。これにより、テスト中に主要なアプリケーション・プロセスとパフォーマンス測定基準に焦点を当てることができます。
  3. 負荷テストツールを選択する:使いやすく、拡張性があり、正確な結果が得られ、組織で使用している他のツールとシームレスに統合できる負荷テストツールを選択するようにしてください。市場にはいくつかの負荷テストツールがありますが、OpenText™ Performance Engineering ソリューションは、最も広範なプロトコル、テクノロジー、およびアプリケーション環境の負荷テストをサポートし、最小限のハードウェアで大規模なテストを実行できます。

負荷テストのベストプラクティス

負荷テストツールを選択したら、実際のテストプロセスを開始することができます。最も重要な負荷テストのベストプラクティスには、以下のようなものがある:

  • エンドユーザー・エクスペリエンスを、すべての段階で考慮すること:つまり、さまざまなデプロイメント、ブラウザ、デバイスに基づいて、現実的なテストケースやシナリオ(肯定的なものと否定的なものの両方)を作成する必要があります。また、実際のエンドユーザーは予測不可能なことが多いので、負荷テストを設定する際には、ばらつきを念頭に置くようにしてください。
  • 現実的なベンチマークを確立する:初期テストを実施し、正確なパフォーマンスベンチマークを確立する。また、APMにすでにあるデータを活用して、ブラウザやデバイスのようなユーザー主導のデータや、TTFB(Time to First Byte)のようなシステムベースのデータなどのベンチマークを確立することもできる。特定のアプリの機能性がベンチマークから逸脱している場合、開発者がコードのどの部分に焦点を当てる必要があるか、より良いアイデアを得ることができます。
  • 早期に定期的に負荷テストを実施する:ソフトウェア開発プロジェクトがほぼ完了するまで待つのではなく、早期に定期的に負荷テストを実行することで、開発者はウェブアプリケーション制作のライフサイクル全体を通じて、コーディングの問題を迅速に特定し、修正することができます。

負荷テストとストレステストの比較

負荷テストとストレステストは、ソフトウェアのパフォーマンステストプロセスの一部です。負荷テストは、アプリが通常時およびピーク負荷時にどのように動作するかを判断するために使用されるのに対し、ストレステストは、アプリが通常時またはピーク負荷時を超えてどのように動作するか、また通常状態に戻ったときにどのように応答するかを判断するために使用されます。


OpenTextのパフォーマンスエンジニアリングソリューションで負荷テストを簡単に導入

同拠点のテストチームには、OpenText™ Professional Performance Engineering をご利用ください。負荷テストが簡素化され、異常をより早く特定することができる。大規模な負荷テストには、OpenText™ Enterprise Performance Engineeringを提供しています。これにより、グローバルに分散した開発チームが、一元化されたダッシュボードから負荷パフォーマンステストを共同で実施することができます。さらに、物理インフラストラクチャの導入と管理を不要にする拡張性の高いクラウドベースの負荷テストプラットフォームであるOpenText™ Core Performance Engineeringや、開発者と開発テスターがシフト・レフトのパフォーマンステストを採用できるようにするOpenText™ Performance Engineering for Developersも提供しています。

パフォーマンス・エンジニアリング・ソリューションが、お客様のパフォーマンス・テスト・プロセスにどのようなメリットをもたらすかをご覧ください。


脚注