Webサービスや業務システムでは、アクセスの集中によってパフォーマンスが低下したり、システムが停止したりするリスクがあります。
このような事態を未然に防ぐために実施されるのが「負荷テスト」です。
負荷テストとは、システムに一定の負荷をかけて処理能力や安定性を検証するテストを指します。
本記事では、システム障害が企業に与える影響を踏まえながら、負荷テストの必要性や目的について解説します。
負荷テストとは?
負荷テストは、「システムリリース前に行えばよい」という声もありますが、定期的な実施が推奨されているテストです。負荷テストの内容や目的、さらには重要性を解説します。
1-1. 負荷テストの概要
負荷テストは、検証対象のシステムに通常利用を想定した一定の負荷をかけ、処理能力が想定内であるかを検証するテストです。最大ユーザー数や最大トランザクション数でシステムへアクセスし、システムの挙動や性能変化、または性能のボトルネックの原因分析を行います。
負荷テストでは、主にサーバーに対して応答性・安定性などのシステムの処理能力を確認します。システムのパフォーマンス要件を確認するためのテストであるため、リリースを判断するうえで重要な要素です。
一方で、システムの改修や追加開発がなくとも、ハードウェアの経年劣化やソフトウェアのアップデートによって、リリース当初とは異なる状態になっているケースは少なくありません。
さらにアクセスユーザーの変化に応じて、徐々に負荷を変化させながら、システムの振る舞いや性能の変化を継続的に確認する必要もあります。
このような理由から定期的な負荷テストの実施が推奨されています。定期的なテスト実行により、サーバーダウンやパフォーマンス悪化などの原因を早期に発見しやすくなります。
1-2. 負荷テストの重要性
システム障害は、企業経営に影響を与えるリスクです。システムを通じてサービスを提供している会社では、サーバーダウンによってユーザーがサービスを利用できなくなれば、売上損失や信用失墜につながります。システム停止にまで至らずとも、レスポンスが悪ければ、ユーザーは快適に利用できる同業他社のサービスに移っていくでしょう。
企業間でのサプライチェーンでは、システム連携が不可欠であるため、BtoBシステムでも安定的な稼働は必須です。自社のサーバートラブルによってシステム全体が停止すれば、原材料の調達から製造、物流・販売にいたる一連のビジネスプロセスに多大な影響を与えてしまいます。自社のみならず、取引先の経営にも深刻な影響を与える点を考慮しなければなりません。
社内システムでも軽視はできません。リモートワーク中心の社員が多い企業ならば、システムが復旧するまで、在宅社員の業務はストップします。
ネットワーク化が進む現在、システム障害につながる性能上のボトルネックを事前に特定できる負荷テストは、企業のリスクマネジメントに有効な手段です。
負荷テストと他のテストとの違い

負荷テストの役割を正しく理解するために、他のテストとの違いを整理します。
2-1. 負荷テストの位置づけ
非機能テストのなかのパフォーマンステストに含まれる負荷テストは、以下の位置づけになります。
| ●機能テスト ●非機能テスト └運用テスト └アクセシビリティテスト └互換性テスト └ユーザビリティテスト └セキュリティテスト └パフォーマンステスト └負荷テスト └ストレステスト └スパイクテスト └長時間テスト |
システム品質の抜本的な向上を目指す場合には、他のテストと組み合わせた実施も検討しましょう。
機能テストでは、仕様書の通りにシステムが正しく実行されるかを確認します。
一方の非機能テストは、性能・可用性・セキュリティなど、システムの利用上の障害を排除する目的のテストです。詳しくはこちらの記事をご覧ください。
2-2. 負荷テストと他テストの違い
性能テストとも呼ばれるパフォーマンステストには、負荷テストをはじめ4種類のテストがあります。
負荷テストは通常利用を想定したテスト内容ですが、他のテストは以下のように特定状態でのシステム性能を確認する内容です。また、定期的な実施が推奨される負荷テストとは異なり、新規商品の発売やキャンペーン実施など、通常とは異なる状態が発生する場合に行うべきテストになります。
| 負荷テスト: コントロールされた数の同時使用ユーザーまたはプロセスによって、予想される現実的な負荷に対するシステムの能力を調査するテスト ストレステスト: システムの限界値、あるいは限界値を超えた負荷状態での処理能力を評価するテスト スパイクテスト: 突然のピーク負荷に対してシステムが正しく応答し、その後に安定状態に戻るかを確認するテスト 長時間テスト(耐久テスト): 長時間運用でのシステムの安定性を検証するテスト |
※参照:ISTQBテスト技術者資格制度 Foundation Level Specialist シラバス 性能テスト担当者 日本語版 Version 2018.J01.
▶ パフォーマンステスト(性能テスト)の主な4種類や指標、実施フローをプロが解説
負荷テストを実行する際の注意点

無計画に負荷テストを実行すると、環境次第ですが、様々な業務に影響が出る可能性があります。
理想としては、負荷テスト環境だけ独立させた方がよいでしょう。しかし、準備リソースやコストの面で難しい場合が多く、普段から利用しているテスト環境で行うことも多いです。
したがって、周辺への影響を最小限にするために、負荷テスト実行のタイミングと負荷テスト前の状況へ復元するプロセスを確認しておくことが重要です。
負荷テストの実行方法
負荷テストはツールを用いて実行するのが一般的です。ツール選定は部門内で議論になることも少なくありませんが、広く利用されている代表的なツールの一つがApache JMeterです。
Apache JMeterが多くの有識者から推奨される理由の説明に加えて、ツールを利用するうえでの注意点も解説します。
4-1. Apache JMeterが推奨される理由
推奨理由は無料ツールだからではありません。負荷テストの分野では、Apache JMeterがデファクトスタンダードだからです。
1998年12月にVersion1がリリースされて以来、Apache JMeterは世界中で利用されてきました。数多くのバージョンアップにより機能と使いやすさが向上し、負荷テストツールの分野ではデファクトスタンダードになっています。
デファクトスタンダードを利用すれば、企業間で協力体制が整えられます。取引先やSaaSベンダーとシステム連携する際に、全体最適を目指して、自社と連携先がそれぞれで負荷テストを実施するケースを考えてみましょう。両社いずれかのテスト結果から課題が見つかっても、同じツールを使っていれば共通理解のもとで対処ができるはずです。
リリースされて25年以上経過した現在でもデファクトスタンダードである事実は、一定の信頼性と安定性を示す要素といえます。
4-2. 負荷テストは第三者へ委託するのもおすすめ
社内にツールのスペシャリストがいない場合は、外部のテスト会社への依頼も検討するとよいでしょう。
Apache JMeterで負荷テストを実施するためには、ツールを実行するためのテストデータを作成する必要があります。この作業にはApache JMeterに関する知識が求められますが、UIが比較的複雑であるため、初心者が実務で扱えるレベルになるまでには一定の学習時間が必要です。
また、テスト結果として基本的な表やグラフの出力は可能ですが、複数テストの結果比較やトレンド分析を行う場合には、出力結果を加工するか、外部ツールと連携させる必要があります。
さらに、先述したSLOを保証するためには、Apache JMeterの操作スキルだけでなく、SLIに基づいたテスト設計ができる知識や経験も求められます。
このような背景から、テスト会社が提供する負荷テストサービスの利用を検討することも有効な選択肢の一つです。専門会社は多くの企業でのテスト実績を持っているため、自社のシステムや目的に応じた最適なテスト計画や改善提案を受けられる可能性があります。
品質向上トータルサポート企業であるバルテスでも負荷テストの実施を支援しています。社内での対応に不安がある場合や、専門的な知見が必要な場合は、お気軽にご相談ください。
まとめ
今回は負荷テストについて解説しました。
発展を続けるネットワーク社会において、サービス拡大が求められていますが、その一方でSLAの保証は絶対条件です。社内のテストチームは新規サービスに注力して、定期的な負荷テストを外部に依頼する企業も増えています。
当サイトを運営するバルテスは、テスト計画から分析改善まで一貫した負荷テストサービスを長年提供しているテスト専門会社です。Apache JMeterのスペシャリストも多数在籍しており、現在に至るまで数多くの企業でパフォーマンステストのひとつとして負荷テストを実施してきました。
負荷テストをはじめとするパフォーマンステストをご検討の方は、お気軽にご相談ください。
