ソフトウェアテストにおけるストレステストとは何ですか?
ストレステスト
ストレステスト ソフトウェア アプリケーションの安定性と信頼性を検証するソフトウェア テストの一種です。ストレス テストの目的は、非常に高い負荷条件下でのソフトウェアの堅牢性とエラー処理能力を測定し、厳しい状況でもソフトウェアがクラッシュしないことを確認することです。通常の動作ポイントを超えてテストし、極端な条件下でのソフトウェアの動作を評価します。
ソフトウェア エンジニアリングでは、ストレス テストは次のように呼ばれます。 耐久試験。 ストレステストでは、AUT に短時間ストレスを与え、その耐久性を確認します。 最も顕著な用途 ストレス テストの目的は、システム、ソフトウェア、またはハードウェアが壊れる限界を判断することです。。 また、システムが極端な条件下で効果的なエラー管理を実証しているかどうかもチェックします。
5 GB のデータを Web サイトからコピーしてメモ帳に貼り付けると、テスト中のアプリケーションにストレスがかかります。 メモ帳にストレスがかかり、「応答なし」というエラー メッセージが表示されます。
ストレステストの必要性
ストレステストの使用方法を確認できる次のリアルタイムの例を検討してください。
- フェスティバル期間中、オンライン ショッピング サイトではトラフィックの急増やセールの発表が発生することがあります。
- ブログが大手新聞で言及されると、トラフィックが突然急増します。
このような異常なトラフィックの急増に対応するには、ストレス テストを実行することが不可欠です。 この突然のトラフィックに対応できないと、収益と評判が失われる可能性があります。
ストレス テストは、次の理由からも非常に価値があります。
- 異常時にシステムが動作するかどうかを確認します。
- システムに負荷がかかっている場合、適切なエラー メッセージを表示します。
- 極端な条件下でシステム障害が発生すると、巨額の収益損失が生じる可能性があります
- ストレス テストを実行して、極限状態に備えることをお勧めします。
ストレステストの目標
ストレス テストの目的は、障害後のシステムの動作を分析することです。 ストレス テストを成功させるには、システムが極端な条件下にあるときに適切なエラー メッセージを表示する必要があります。
ストレス テストを実施するために、ストレス テスト中に失われる可能性のある大規模なデータ セットが使用されることがあります。 テスト担当者はストレス テスト中にこのセキュリティ関連データを失わないようにしてください。
ストレス テストの主な目的は、システムが障害後に回復することを確認することです。 回復性.
負荷テストとストレステスト
負荷テスト | ストレステスト |
---|---|
負荷テスト 通常のワークロード条件下でシステムの動作をテストすることであり、実際のワークロードを使用してテストまたはシミュレーションを行うだけです | ストレス テストは、極端な条件下でシステムの動作をテストするもので、システムに障害が発生するまで実行されます。 |
負荷テストはシステムを破壊しません | ストレス テストは、圧倒的なデータまたはリソースを使用してテストすることでシステムを破壊しようとします。 |
ストレステストの種類
ストレス テストの種類とその説明は次のとおりです。
分散ストレステスト:
分散クライアント/サーバー システムでは、テストはサーバーからすべてのクライアントに対して実行されます。 ストレス サーバーの役割は、一連のストレス テストをすべてのストレス クライアントに配布し、クライアントのステータスを追跡することです。 クライアントがサーバーに接続すると、サーバーはクライアントの名前を追加し、テスト用のデータの送信を開始します。
一方、クライアント マシンは、サーバーに接続されていることを示す信号またはハートビートを送信します。 サーバーがクライアント マシンから信号を受信しない場合は、デバッグのためにさらに調査する必要があります。 この図から、サーバーは 2 つのクライアント (Client1 と Client2) に接続できますが、Client 3 と 4 から信号を送受信することはできません。
これらのストレス テスト シナリオを実行するには、夜間実行が最適なオプションです。 大規模なサーバー ファームでは、調査が必要なストレス障害が発生したコンピューターを特定するためのより効率的な方法が必要です。
アプリケーションのストレステスト:
このテストは、データのロックとブロック、ネットワークの問題、アプリケーションのパフォーマンスのボトルネックに関連する欠陥の発見に重点を置いています。
トランザクションストレステスト:
XNUMX つ以上のアプリケーション間の XNUMX つ以上のトランザクションに対してストレス テストを実行します。 システムの微調整と最適化に使用されます。
全身性ストレステスト:
これは、同じサーバー上で実行されている複数のシステムにわたってテストできる統合ストレス テストです。 これは、あるアプリケーション データが別のアプリケーションをブロックする欠陥を見つけるために使用されます。
探索的ストレステスト:
これはストレス テストの種類の XNUMX つで、実際のシナリオでは発生する可能性が低い異常なパラメータや条件を使用してシステムをテストするために使用されます。 これは、次のような予期しないシナリオで欠陥を見つけるために使用されます。
- 多数のユーザーが同時にログインした
- すべてのマシンでウイルススキャナが同時に起動した場合
- Web サイトからアクセスしたときにデータベースがオフラインになった場合、
- 大量のデータが同時にデータベースに挿入されると
ストレステストはどうやって行うのですか?
ストレス テストのプロセスは、次の 5 つの主要な手順で実行できます。
ステップ 1) ストレス テストを計画する: ここではシステム データを収集し、システムを分析し、ストレス テストの目標を定義します。
ステップ 2) 自動化スクリプトを作成します。 このフェーズでは、ストレス テスト自動化スクリプトを作成し、ストレス シナリオのテスト データを生成します。
ステップ 3) スクリプトの実行: この段階では、ストレス テスト自動化スクリプトを実行し、ストレス結果を保存します。
ステップ 4) 結果分析: この段階では、ストレス テストの結果を分析し、ボトルネックを特定します。
ステップ 5) 微調整と最適化: この段階では、システムを微調整し、構成を変更し、目的のベンチマークを満たすことを目標にコードを最適化します。
最後に、サイクル全体を再度実行して、調整によって望ましい結果が得られたかどうかを確認します。 たとえば、パフォーマンス目標を達成するためにストレス テスト プロセスを 3 ~ 4 サイクル行う必要があることは珍しいことではありません。
ストレステストに推奨されるツール
LoadRunner
HP の LoadRunner は、広く使用されている負荷テスト ツールです。 Loadrunner によって形成された負荷テストの結果は、ベンチマークとして考慮されます。
jmeter
Jmeterはオープンソースのテストツールです。純粋な Java ストレスへの応用と 性能試験Jmeter は、負荷、機能、ストレスなどのテストの種類をカバーすることを目的としています。機能するには JDK 5 以上が必要です。
ストレステスター
このツールは、Web アプリケーションのパフォーマンスを広範囲に分析し、結果をグラフ形式で提供し、非常に使いやすいツールです。 高レベルのスクリプトは必要なく、優れた投資収益率が得られます。
Neo 負荷
これは、Web とテストを行うために市場で入手可能な人気のあるツールです。 モバイル アプリケーション。 このツールは、負荷下のアプリケーションのパフォーマンスを評価し、応答時間を分析するために、数千のユーザーをシミュレートできます。 また、クラウド統合のパフォーマンス、負荷、ストレス テストもサポートしています。 使いやすく、コスト効率が高く、優れた拡張性を備えています。
ストレステストの指標
メトリクスはシステムのパフォーマンスを評価するのに役立ち、通常はストレス テストの最後に調査されます。 一般的に使用される指標は次のとおりです。
スケーラビリティとパフォーマンスの測定
- ページ/秒: XNUMX 秒あたりにリクエストされたページ数を測定します。
- スループット: 基本メトリック – 応答データ サイズ/秒
- ラウンド: テスト シナリオが計画された回数とクライアントが実行した回数
アプリケーションレスポンス
- ヒット時間: 画像またはページを取得するのにかかる平均時間
- 最初のバイトまでの時間: データまたは情報の最初のバイトを返すのにかかる時間
- ページ時間: ページ内のすべての情報を取得するのにかかる時間
失敗
- 失敗した接続: クライアントによって拒否された失敗した接続の数(弱い Signal)
- 失敗したラウンド: 失敗したラウンドの数
- 失敗したヒット: システムによる失敗した試行の数 (リンク切れまたは表示されていない画像)
まとめ
ストレス テストの目的は、極端な条件下でシステムをチェックすることです。 メモリ、プロセッサ、ネットワークなどのシステム リソースを監視し、システムが通常の状態に回復する能力をチェックします。 ストレスがかかっているときにシステムが適切なエラー メッセージを表示するかどうかをチェックします。
ストレステストの例
- ECサイトがお祭りセールを発表
- 大きなイベントの際のニュース ウェブサイト
- 教育委員会の結果ウェブサイト
- ソーシャルネットワーキングサイトやブログ、アプリなど