負荷テスト

負荷テスト（ふかテスト、英: load testing）は、システムに負荷を与え、その応答を測定する手順のこと。

 ソフトウェア負荷テスト 
負荷テストという用語は、プロのソフトウェアテスト業界ではさまざまな方法で使用される。負荷テストとは、一般に、プログラムに同時にアクセスする複数のユーザーをシミュレートすることにより、ソフトウェアプログラムの予想される使用法をモデル化する方法を指す。 そのため、このテストはマルチユーザーシステムに最も関連性があります。多くの場合、ウェブサーバーなどのクライアント/サーバーモデルを使用して構築されたものである。ただし、他のタイプのソフトウェアシステムも負荷テストを行うことができる。たとえば、ワードプロセッサやグラフィックエディタは、非常に大きなドキュメントを強制的に読み取ることができる。または、財務パッケージは、数年分のデータを含むレポートを生成することがある。負荷テストを最も正確に行うには、理論的・分析的なモデリングを使用するテストとは反対に、実際の利用環境を模倣してテストを行う。

負荷テストでは、実際の顧客の行動に基づいてウェブサイトのサービス品質（QOS）のパフォーマンスを測定する。ほぼすべての負荷テストツールとフレームワークは、従来の負荷テストパラダイムに従う。顧客がウェブサイトにアクセスすると、スクリプトレコーダーが通信を記録し、関連する対話スクリプトを作成する。ロードジェネレータは、記録されたスクリプトを再生しようとする。スクリプトは、再生前にさまざまなテストパラメータで変更される可能性がある。再生手順では、ハードウェアとソフトウェアの両方の統計がコンダクターによって監視および収集される。これらの統計には、物理サーバーのCPU、メモリ、ディスクIOと応答時間、テスト対象システム（SUT）のスループットなどが含まれる。そして最後に、これらすべての統計が分析され、負荷テストレポートが生成される。

負荷テストやパフォーマンステストは、マルチユーザーオーディエンス向けのソフトウェアを分析する。これらのさまざまな負荷の下でパフォーマンス測定値を監視しながら、ソフトウェアをさまざまな数の仮想ユーザーとライブユーザーに適用する。負荷テストやパフォーマンステストは通常、ソフトウェアシステムの稼働が許可される前に、実稼働環境と同じテスト環境で実行される。

 負荷テスト中のユーザーエクスペリエンス 
たとえば、テスト対象デバイス（DUT）が実稼働負荷（100 VUsers）になっている間に、ターゲットアプリケーションを実行する。ここでの対象アプリケーションのパフォーマンスは、負荷がかかった状態でのユーザーエクスペリエンスとなる。 DUTの応答の速さや遅さ、満足度やユーザーが実際にパフォーマンスをどのように認識しているかについてまとめる。

 ブラウザレベルとプロトコルレベルのユーザー 
これまで、すべての負荷テストは、プロトコル層（プロトコルレベルのユーザーまたはPLUと呼ばれることが多い）での同時対話を通じてトラフィックをシミュレートする自動APIテストを使用して実行されていた。コンテナとクラウドインフラストラクチャの進歩により、実際のブラウザ（多くの場合、ブラウザレベルのユーザーまたはBLUと呼ばれる）でテストするオプションが提供されている。 それぞれの手法にはさまざまな種類のアプリケーションにメリットがあるが、通常、ブラウザレベルユーザーは、ウェブサイトが経験する実際のトラフィックに似ており、より現実的な負荷プロファイルと応答時間の測定値を提供することができる 。 一方、ラウザレベルユーザーはテスト実行の手法の中ではコストが掛かる方法であり、また、利用できるアプリケーションに制限がある。特にデスクトップクライアントやAPIベースのアプリケーションなどのウェブブラウザーからアクセスできないアプリケーションでは使うことができない。 

 負荷テストツール 
ツール名提供会社ライセンス種類価格対象メモApache JMeterAn Apache Jakarta open source projectApache License 2.0ローカル無料負荷テストとパフォーマンス測定のためのJavaデスクトップアプリケーション。BlazeMeterBlazeMeter Ltd.プロプライエタリクラウド無料プランありウェブサイト、ウェブアプリ、モバイル、データベース等8つの場所から最大200,000人の同時シミュレートされたブラウザユーザーをスケーラブルにロードするす。統合テスト、機能テストにも使用できる。BlitzSpirent Communicationsプロプライエタリクラウド試用版ありウェブサイト、 モバイル、REST API世界中のさまざまな場所から最大50,000人の同時仮想ユーザーをシミュレートできる。FloodTricentis Corp.プロプライエタリクラウド無料、有料ブラウザベースの負荷テスト、APIやプロトコル駆動型アプリAWSとAzureで利用可能なすべての地理的リージョンからの最大数百万の同時ユーザーへのスケーラブルなロードに加えて、オンプレミスの展開も。料金は、毎月消費される仮想ユーザー時間に基づく。GatlingOpen SourceApache License 2.0ローカル無料Java ウェブアプリケーションポータブル HTML レポート。Loader.ioSendGrid Labsプロプライエタリクラウド無料プランありウェブアプリケーションと APILoadRunnerMicro Focusプロプライエタリローカル試用版あり主に、多人数テスト（または多数の仮想ユーザー）の同時実行で使用される。単体テストや統合テストにも使用できる。Load Test (included with SOAtest)Parasoftプロプライエタリローカルデモ版あり負荷がかかった状態で機能とパフォーマンスを検証するパフォーマンステストツール。 SOAtestテスト、JUnit、軽量ソケットベースのコンポーネントをサポートする。同時実行の問題を検出する。loadUISmartBear SoftwareEUPLローカルデモ版あり主にウェブサービスを対象としたクロスプラットフォームの負荷テストツール。 soapUIと統合される。Login VSILogin VSI, Inc.プロプライエタリローカル試用版あり仮想WindowsデスクトップNeoLoadNeotysプロプライエタリローカル無料プランありウェブとモバイルローカルエージェントまたはクラウドから負荷を生成する。OpenSTAOpen System Testing ArchitectureGNU General Public License 2.0ローカル無料ウェブサーバーCORBAに基づく分散ソフトウェアアーキテクチャを利用する。 Windowsで利用可能なOpenSTAバイナリ。Rational Performance TesterIBMプロプライエタリローカル試用版ありサーバーベースのアプリケーションのシステム応答時間を測定するための、大規模パフォーマンステストの実行に使用される、Eclipseベースの大規模パフォーマンステストツール。SiegeOpen sourceOpen source GPLv3 or laterローカル無料ウェブサーバー基本認証、Cookie、HTTP、HTTPS、およびFTPプロトコルをサポートする。Silk PerformerBorlandプロプライエタリローカル試用版ありクラウドおよびローカル仮想エージェントを備えたアプリケーションパフォーマンスツール。ほとんどのプロトコルとアプリケーションをサポートする。Test StudioTelerikプロプライエタリローカル試用版あり多数のユーザーが同時にアクセスした場合のウェブサイトのパフォーマンスを評価する。Visual Studio Enterprise editionマイクロソフトプロプライエタリローカル試用版ありVisual Studio Enterprise Editionには、開発者が構成を組み合わせてさまざまなテスト（ウェブアプリケーションテスト、単体テストなど）を実行し、実際のユーザー負荷をシミュレートできる負荷テストツールが含まれる。WebLOAD Overview - Load Testing Software and Web Load Testing Solutions from RadviewRadViewプロプライエタリローカル無料プランありウェブアプリ、モバイルアプリ、APIパフォーマンステスト分析用のウェブダッシュボードを含む、ウェブおよびモバイルアプリケーション用の負荷テストツール。クラウドからも発生する可能性のある大規模な負荷に使用される。

 物理的負荷テスト 
サムネイル|地盤工学図面で使用される記号
多くの種類の機械、エンジン、 構造、 モーターが負荷テストされている。指定された安全作業負荷（SWL）、最高負荷、またはそれ以上の負荷をかけることがある。準拠契約、技術仕様、テスト方法には、テストの実施の詳細が記載されている。機械的負荷テストでは、材料、ベース固定具を含む構造のすべての構成部品が仕様に適合し、それが設計された想定負荷に耐えられることを確認することが目的である。

 車の充電システム 
負荷テストは、車のバッテリー状態の評価のも使用される。試験装置には、車のセルモーターと同様の抵抗を持つ大きな抵抗器と、無負荷状態と負荷状態の両方でバッテリーの出力電圧を読み取るメーターで構成される。試験装置を使用する場合は、最初にバッテリーの開回路電圧がチェックされる。開回路電圧が仕様（完全に充電されたバッテリーの場合は12.6ボルト）を下回る場合、バッテリーが最初に充電される。バッテリーの開回路電圧を読み取った後、負荷がかかる。適用すると、クランキング中に車のセルモーターを使う場合とほぼ同じ電流が流れる。バッテリーの指定されたコールドクランキングアンペアに基づいて、負荷がかかっている電圧が特定のポイントを下回った場合、バッテリーが不良であることがわかる。負荷テストは、走行中の車で、車のオルタネーターの出力をチェックするためにも使用される。

 注釈 

 出典 

 関連項目 
 ソークテスト
 ストレステスト
 システムテスト
 ウェブアプリケーションテスト
 ウェブサーバーベンチマーク

 外部リンク 
 Modeling the Real World for Load Testing Web Sites by Steven Splaine
 What is Load Testing? by Tom Huston
 4 Types of Load Testing and when each should be used by David Buch
 Performance, Load, Stress or Endurance Test? Which do you want? by Chris Jones

Category:ソフトウェアテスティング
Category:品質保証
Category:検査
*