ソフトウェアテストにおける安定性テスト
安定性試験
安定性試験 ソフトウェア アプリケーションが長期間継続して機能する効率と能力を測定するために実行される非機能ソフトウェア テストの一種です。 安定性テストの目的は、ソフトウェア アプリケーションがクラッシュするか、通常の使用時にフェイルオーバーするかどうかを、その使用範囲全体を実行して、いつでも確認することです。
安定性テストは、開発された製品の通常の動作能力を超えた効率性をチェックするために行われます。多くの場合、ブレークポイントまで行われます。通常の状況下でのシステムの動作をチェックするよりも、高負荷下での製品のエラー処理、ソフトウェアの信頼性、堅牢性、スケーラビリティの方が重要です。
安定性テストは、安定性の問題を評価します。このテストは主に、ソフトウェア コンポーネントに最大限のストレスをかけることを目的としています。これは非機能的手法です。
安定性テストは、負荷または 耐久試験.
テスト対象のシステムが安定性テストを受けていない場合のリスク
多数のユーザーが導入されるテスト対象のアプリケーションや、再起動せずに数か月間実行する必要があるアプリケーションの場合、次のような多くの問題が発生する可能性があります。
起こり得るエラーに直面する可能性がありますが、
- システムが遅くなる
- システムに機能上の問題が発生しました
- システムは有線動作を示します
- システムが完全にクラッシュする
ソフトウェアエンジニアリングでは、 安定性試験 通常、ヘビー ユーザー (仮想) でシステムを実行し、パフォーマンス パラメーターを測定して、システムが予想される負荷をサポートできるかどうかを確認します。
安定性テストを行う理由
この種のテストは、ユーザーが実際の状況でシステムがどのように動作するかを理解するのに役立ちます。
したがって、安定性テストでは次のことを確認できます。
- テスト対象のシステムの安定性に自信を与えます。
- システムが大規模なプログラムを処理できることを確認してください。
- システムの有効性を監視します。
- ストレス下でのシステムの安定性をテストします。
これは、リリース前にテスト対象のソフトウェア製品の限界を判断したり、製品が実際に稼働する前または本番環境に移行する前にさらに改善すべき領域を判断したりするために使用されるため、製品開発において重要な役割を果たします。
安定性テスト手法の非常に一般的な例は次のとおりです。
Online S跳躍 Portals: 安定性テストは、Web サイトがどのように動作するかをチェックします –
- ピーク時に大量のデータが入力される
- 特定の時間におけるヒット数
- 同時にページ読み込みの問題も発生
- システムの動作
- システムの応答性やその他多くのことが当てはまります 安定性試験
もう一つの例
A CPU テストは安定性テストの一般的な形式です。 性能試験 技術。 このテストでは、プロセッサの安定性をチェックし、プロセッサのワークロードが増加したときのパフォーマンスも監視します。
安定性テストの方法
- テストの範囲と目的を決定するには、ロード テストの実行中にアプリケーション サーバーがクラッシュしないことを確認する必要があります。
- ビジネス上の問題を特定するには、エンド ユーザーの観点からシステムのパフォーマンスと負荷を確認します。
- テスト計画の作成など、さまざまな責任と役割を割り当てるには、 テストケース 設計、テストケースレビュー、テスト実行など
- 指定された時間内にテスト成果物を確実に提供するため
- 適正を確保するために 負荷テスト ツールと経験のチームも同様に存在します。
- リスクとコストを測定するにはテストが必要です。 これにより、CPU 使用率とメモリの観点から各実行のコストが決まります。
- を決定する 欠陥 追跡とレポート、およびそれらと要件との適切なマッピング。
CPU パフォーマンスの安定性テストのテスト ケース
- システムの上限を確認します。
- システムがクラッシュまたは回復する方法。
- リクエストごとに完了したトランザクションの合計数。
- トランザクションの応答が安定しているか、時間の経過とともに増加するか。
- 高負荷時にシステムがどのように動作するか。
- 高負荷時の応答と動作。
安定性試験の試験報告書
テスト実行中にいくつかの統計が収集され、測定されます。これらの数値はレポートを生成し、パフォーマンスの問題の可能性を特定するために分析されます。
テストで収集される統計の例は次のとおりです。
- トランザクションの応答時間: テスト中のトランザクションの実行にかかる平均時間です。 この統計は、サーバーのパフォーマンスが、システムに定義されている許容可能な最小および最大トランザクション パフォーマンス期間内にあるかどうかを評価します。この情報は、Web サーバーによるリクエストの処理とアプリケーション サーバーへの送信にかかる時間を評価します。ほとんどの場合、データベース サーバーにリクエストが行われます。
- XNUMX 秒あたりのヒット数: ユーザーがサーバー上で行ったヒット数。 これらの統計は、ヒット数に関してユーザーが生成する負荷の数を判断するのに役立ちます。
- スループット: テスト中の Web サーバーのスループット量 (バイト単位で測定)。 スループットとは、ユーザーが一定の時点でサーバーから受信したデータの量を意味します。 この統計は、ユーザーが生成する負荷の量を評価するのに役立ちます。
- XNUMX 秒あたりのトランザクション: これらは、テスト中に実行された完了したトランザクション (成功と失敗の両方) の合計数です。 この統計は、システム上の実際のトランザクション負荷を確認するのに役立ちます。
- CPU: テスト中に費やされた CPU 使用率。
- メモリ: テスト中のメモリ使用量。
- ディスク: テスト中に消費されたディスク領域の使用率。
安定性試験の基礎
安定性試験 パフォーマンス テストは、安定性、信頼性、可用性などのソフトウェアの品質特性の一部をチェックするために実行される手法です。
このテストは、特定のワークロード下でシステムまたはサブシステムがどれだけ速く実行されるかを判断するために使用されます。
パフォーマンス テストにはさまざまな種類があり、安定性テストもその XNUMX つです。
- ストレステスト: システムの能力を超えたシステムの堅牢性をチェックするテストタイプです。
- スパイクテスト: システムの負荷を瞬時に上げて、システムの動作を確認するために使用されます。 目的は、どの時点でシステムにパフォーマンスの問題が発生するか、または問題が解決するかを確認することです。
- スケーラビリティテスト: これは、システムの機能をチェックするために使用されます。システムが、増大するニーズ、サイズの変化、ボリュームの変化に対してどの程度効果的に動作するかを確認します。
- ボリュームテスト: これは、テスト対象のソフトウェアが大量のデータにさらされ、それに応じてシステムの動作がチェックおよび検証される非機能テスト手法です。
- 負荷または安定性のテスト: (すでに上で説明しました)
安定性試験ツール
パフォーマンス テスト用のツールには次のようなものがあります。
- ウェブロード
- LoadRunner
- アパッチ JMeter
- Neo負荷
- クラウドテスト
- ロードストーム
- ロードUI
- ワプト
- 負荷影響
- ロードスター
- Httpperf
- OpenSTA
まとめ
安定性テストは、最大負荷を適用してアプリケーションの動作をテストする非機能的なプロセスです。 これは、特定の環境におけるシステムのスケーラビリティを調べるために実行されます。