FE EXAM

負荷テスト(高負荷でも安定するか)

想定される高い負荷をかけて安定して動作するかを確認するテスト。

DIAGRAM
負荷テストストレステスト耐久テスト
大量の利用者をわざと集中させ、落ちずに動き続けるかを確認する大量の同時アクセス高負荷システム🏋負荷に耐えられるか?○ 落ちずに安定して処理を続けた→ 想定負荷に耐えられる(合格)× 応答が遅延・停止した→ 機器増強や改善が必要把握できること:「同時に何人まで安定して使えるか」という処理能力の上限(キャパシティ)本番リリース前に上限を知り、必要な機器の増強を計画する
解説

📌
負荷テストとは

大勢を一度に集めて耐えられるか試すシステム耐える?

負荷テストとは、多数の利用者が同時に使う状況など、想定される高い負荷をかけて、システムが安定して動作し続けるかを確認するテストです。本番で起こりうる混雑を、本番前にわざと再現して確かめます。

通常時は問題なくても、アクセスが集中すると応答が遅くなったり、最悪の場合システムが停止したりします。負荷テストはこうした混雑時の弱点を事前に発見することを狙います。性能テストの一種で、特に「高負荷時の安定性」に焦点を当てたものです。

身近な例で考えると、橋の耐荷重試験に似ています。完成した橋に大量の重りやトラックを載せて、想定される交通量に耐えられるかを確認してから開通させる──このように「実際の混雑を前もって試す」のが負荷テストです。上の図解で、大量アクセスに耐えられるか確認する流れを示しています。

📌
種類(負荷・ストレス・耐久)

かけ方が違う3種類負荷想定される高い負荷ストレス限界を超える過大な負荷耐久長時間かけ続ける

負荷のかけ方によって、大きく次の3種類に分けられます。
負荷テスト(ロードテスト):想定される高い負荷をかけ、その範囲内で要求どおり安定して動くかを確認する
ストレステスト:あえて限界を超える過大な負荷をかけ、どこで壊れるか・壊れたあと安全に回復できるかを確認する
耐久テスト(ロングランテスト):通常の負荷を長時間かけ続け、メモリリーク(=使った記憶領域が解放されず徐々に圧迫される不具合)などで時間経過とともに劣化しないかを確認する

違いは「負荷の大きさ」と「かけ続ける時間」です。負荷テストは想定の範囲内、ストレステストは想定を超える過大な量、耐久テストは大きさより継続時間に注目します。

マラソンにたとえると、負荷テストは「本番のペースで走れるか」、ストレステストは「限界まで全力疾走したらどこで脚が止まるか」、耐久テストは「ゆっくりでも何時間も走り続けられるか」を確かめるイメージです。

📌
用途

上限を知り、足りなければ機器を増やす限界点同時アクセス数 →

負荷テストは主に次のような用途で使われます。
処理能力の上限(キャパシティ)の把握:同時に何人まで安定して使えるかを知る
キャパシティプランニング:把握した上限をもとに、必要なサーバー(=サービスを提供する側のコンピュータ)の台数や性能を計画する
ボトルネックの発見:処理が詰まる原因箇所を特定し、改善する
本番前の安全確認:セール開始やイベント時のアクセス集中に耐えられるかを事前に確かめる

とくに重要なのがキャパシティプランニングです。負荷テストで「このシステムは同時1万人まで安定する」と分かれば、想定利用者数に応じて機器を増強するか、現状で足りるかを根拠を持って判断できます。

身近な例で考えると、イベント会場の収容人数の検討に似ています。「この会場は何人まで安全に入れるか」を事前に把握し、来場予想に対して足りなければより大きな会場を手配する──負荷テストはシステムにとって同じ役割を果たします。

練習問題

🎯
基本情報技術者 練習問題

Q1.負荷テストの目的として最も適切なものはどれか。
A.内部のすべての分岐を実行できているか確認する
B.想定される高い負荷をかけて安定して動作するか確認する
C.出力が仕様どおりかを確認する
D.修正で既存機能が壊れていないか確認する
Q2.システムが耐えられる限界を超えるほどの過大な負荷をかけ、どのように壊れるか・回復するかを確認するテストはどれか。
A.ストレステスト
B.回帰テスト
C.同値分割テスト
D.単体テスト
Q3.負荷テストの用途として最も適切なものはどれか。
A.同時に何人まで利用できるか(処理能力の上限)を把握する
B.プログラムの変数名の付け方を統一する
C.データベースを正規化する
D.ソースコードの行数を数える

関連コンテンツ