負荷テストとは?テストの種類や実施方法を徹底解説
COLUMN
最終更新日:2023年06月05日 / 投稿日:2023年02月25日
システム開発の現場では、負荷テストを行うときがあります。負荷テストは、システムの耐久性や多くのアクセスがあったときのパフォーマンスについて知ることができるため、積極的に行うとよいでしょう。負荷テストの際には、目的意識をはっきり持って、必要なテストを実施することが大切です。
当記事では、負荷テストの種類や進め方について解説します。効果的に負荷テストを行いたい方や、効率的なテストを行いたい方は、ぜひ参考にしてください。
1.負荷テストとは?
負荷テストとは、負荷テストツールを使用してシステムに負荷をかけ、パフォーマンスの変化や耐久性をチェックする試験です。
普段は正常に稼働しているシステムも、長時間の稼働を続けたり、負荷の高い処理をいくつも要求されたりすると、稼働に支障をきたす可能性があります。ハングアップやクラッシュなど不測の事態を起こさないよう、開発段階でシステムの限界を調べることが負荷テストの目的です。
負荷テストはチェックする内容の違いにより、いくつかの種類が存在します。ここでは負荷テストの主な種類と、テストの内容やメリットを解説します。
1-1.ロードテスト
ロードテストは、通常時に想定される範囲の上限に近い負荷をかけて、システムが正常に稼働できるかをチェックするテストです。実際の稼働時に近い環境で、システムがパフォーマンスを落とさずに稼働できることの証明を目的としています。
ロードテストの特徴は、実際のユーザートラフィックを想定して負荷をかける点です。たとえばシステムがユーザー数1万人のリクエストを処理することを想定している場合は、1万人に相当する負荷でロードテストを行います。
ロードテストは稼働時の障害リスクを低減し、通常時にかかる負荷がシステムのパフォーマンスにどのような影響を与えるかを計測できる点がメリットです。
1-2.ストレステスト
ストレステストは、通常時に想定される範囲を超える高い負荷をかけたときに、システムのパフォーマンスがどのように変化するかをチェックするテストです。システムに対して大量のデータやトランザクションを処理させるなどの手法でテストを実施します。
ストレステストの特徴は、高負荷による障害発生を想定したテストを行う点です。障害が発生した場合にエラーメッセージが表示されるか、システムが障害から正常に回復できるかなどもチェックします。
ストレステストはシステムの処理能力低下・障害が発生する限界値を調べ、障害発生後の回復性も調べられる点がメリットです。
1-3.ボリュームテスト
ボリュームテストは、大容量のデータを与えたときに、システムが仕様通りにデータを処理できるかをチェックするテストです。想定されるユーザー数に応じた負荷量でテストデータを作成し、特定の動作を実行させる手法でテストを実施します。
ボリュームテストの目的は、どの程度のデータ量であればシステムが問題なく処理が行えるかを計測することです。システムの最大容量を確認することで、想定されるユーザーのデータ処理に対応できるかが分かります。
ボリュームテストで障害の発生やレスポンスタイムの大幅な遅延が見られる場合は、システムの改善が必要です。
1-4.耐久テスト
耐久テストは、システムを長時間稼働させたときに、動作や処理に問題が発生しないかをチェックするテストです。通常時に想定される範囲の負荷を恒常的にかけて、データの通信速度や処理速度に影響がでないかを調べます。
耐久テストの目的は、長時間稼働させたときにもシステムが問題なく稼働できる点を証明することです。耐久テストで処理能力低下や障害の発生が見られた場合は、改修などの対策を施します。
ECサイトなどのように24時間稼働し続けなければならないサービスでは、システムの耐久テストが必須です。
テスト自動化ツールならATgo
1か月トライアル無料:詳細はこちら
2.負荷テストの実施方法
負荷テストを行うためには、さまざまな準備が必要です。負荷テストを実施する流れを、下記のフロー形式で解説します。
STEP1:計画 | 負荷テストを行う目的や、テスト方法・実施体制・スケジュールを設定します。最初に具体的な目的を設定し、目的に沿ってテスト方法などを設定しましょう。 |
---|
↓
STEP2:設計 | 計画で定めた内容の実現につながるよう、負荷テストの内容を設計します。具体的な内容は下記の通りです。
など |
---|
↓
STEP3:準備 | 負荷テスト実施の準備を行います。主な準備項目は下記の通りです。
など また、負荷テストについて関連部門・部署との連携が必要な場合は、通知や支援要請も行います。 |
---|
↓
STEP4:実施 | 設計・準備した内容をもとに、負荷テストを実施します。 負荷テストの実施は、基本的に下記の流れで進めます。 リハーサル テスト後の作業で計測データの保管や機器の撤去などを終えると、負荷テストの実施は完了します。 |
---|
↓
STEP5:分析 | 負荷テストで得られたデータを分析し、テストの合否判定や問題点の洗い出しを行います。テストの結果が不合格であった場合は、原因の調査や対策案の策定が必要です。 分析結果はレポートにまとめ、最後に関係者向けの報告会を開いてクロージングします。 |
---|
負荷テストによって問題が発覚した場合はシステムを改修する必要があります。負荷テストのスケジュールは、リリースまでの余裕を持たせて組むことがおすすめです。
3.負荷テストを行う際のポイント
負荷テストを行う際はポイントを押さえておかないと、テストで得られたデータが役に立たず失敗する可能性があります。また、負荷テストを実施すると何らかの問題が発覚するケースが多いため、リスク発生時の対策も必要です。
効率よく、また抜けや漏れがなく負荷テストを進めるために気を付けたいポイントを2つ紹介します。
3-1.目的や目標を明確にしておく
負荷テストの目的や目標は明確に設定することが重要です。明確な目的があることにより、計画から分析まで方向性が一貫した負荷テストを行えます。
負荷テストの目的を設定する際は、システム視点とビジネス視点で目的を考えましょう。
システム視点の目的は、性能要件・耐久性や高負荷時の障害など、システムについて計測・証明したい項目で設定します。「性能要件を満たすことの証明」や「高負荷時に発生する障害と対策の実施」などが目的の例です。
対してビジネス視点の目的は、システムを利用するビジネスの内容に合わせて設定します。「キャンペーン開催により予測されるアクセス集中への対応」など、具体的な目的を設定することが大切です。
3-2.リスク対策を考えておく
負荷テストの本番で障害などの問題が発生しても慌てないよう、リスク対策を考えておきましょう。テストシナリオを設計する際は発生し得るリスクについて検討し、リスクごとの対応方法も盛り込みます。
リスク対策では、発生した問題を分析することも重要です。
最初に、問題の原因が負荷ツールとシステムのどちらにあるかを調べ、より詳細な原因や改善方法を調べます。プログラムバグやデータバグなどのテストに大きな影響がある問題では、テストを一時中止する対応も行います。
また、発生した問題について後で分析や評価ができるよう、リスクの内容や実行した対応を記録する体制も整えましょう。
まとめ
負荷テストとは、システムに負荷をかけることでパフォーマンスに影響がないか、不具合が発生しないかを確認するためのテストのことです。負荷テストにはいくつかの種類があるため、目的をはっきりさせた上でテストを実施しましょう。テスト終了後には、分析までしっかり行い、問題があればシステムの修正も行う必要があります。
負荷テストを効果的に行うには、テスト自動化ツールを導入するのもおすすめです。リスク対策も講じながら、テストを効率的に行いましょう。