ソフトウェアテストにおける耐久性テストとは? (例あり)

耐久試験

耐久試験 非機能タイプのソフトウェア テストでは、継続的な使用下でのソフトウェア アプリケーションの動作を評価するために、長時間にわたって高負荷をかけてソフトウェアをテストします。 耐久性テストの主な目的は、アプリケーションが応答時間の低下なしに長時間の負荷を処理できるかどうかを確認することです。

このタイプのテストは、パフォーマンス実行サイクルの最終段階で実行されます。 耐久性テストは長いプロセスであり、場合によっては XNUMX 年にも及ぶこともあります。 これには、インターネット トラフィックやユーザー アクションなどの外部負荷の適用が含まれる場合があります。 これにより、耐久性テストは次のようなものになります。 負荷テスト通常、2、3 時間ほどで終了します。

耐久性とは容量を意味するため、言い換えれば、耐久性テストを容量テストと呼ぶことができます。

耐久試験の目標

  • 耐久テストの主な目的は、メモリ リークをチェックすることです。
  • 継続的な使用下でシステムがどのように動作するかを確認するため。
  • 長期間経過後も、システムの応答時間がテスト開始時と同じか、それ以上であることを保証するため。
  • 特定のシステムがサポートし、パフォーマンス目標を達成できるユーザーおよび/またはトランザクションの数を決定します。
  • 将来の負荷を管理するには、将来の使用をサポートするためにどれだけの追加リソース (プロセッサー容量、ディスク容量、メモリー使用量、ネットワーク帯域幅など) が必要になるかを理解する必要があります。
  • 耐久性テストは通常​​、システムに過負荷をかけるか、特定のシステム リソースを削減してその結果を評価することによって行われます。
  • これは、比較的「通常」と考えられる使用期間後に欠陥やメモリ リークが発生しないようにするために実行されます。

耐久テストで何を監視するか

耐久試験

耐久テストでは以下のことがテストされます。
  • メモリリークをテストする– チェックは、システムまたは OS のクラッシュを引き起こす可能性のあるアプリケーションにメモリ リークがないかどうかを確認するために行われます。
  • システムの層間の接続の終了をテストする – システムの層間の接続が正常に閉じられない場合、システムの一部またはすべてのモジュールが停止する可能性があります。
  • データベース接続のテストが正常に終了しました– データベース接続が正常に閉じられない場合、システムクラッシュが発生する可能性があります。
  • テストの応答時間 – システムの長時間使用によりアプリケーションの効率が低下するため、システムの応答時間についてテストされます。

耐久試験の実施方法

以下は耐久テストの基本的なテストアプローチです。
  • テスト環境 – 耐久テストに必要なハードウェア、ソフトウェア、オペレーティング システムを特定し、チーム内の役割と責任を割り当てます。テスト実行前に環境を準備しておく必要があります。また、一般的なデータベースの生産規模と年間成長を見積もる必要があります。これは、1 年後、2 年後、または 5 年後にアプリケーションがどのように応答するかをテストする必要があるため必要です。
  • テスト計画、シナリオの作成 – テストの性質 (手動か自動か、あるいは両方の組み合わせ) に基づいて、 テストケース 設計、レビュー、実行を計画する必要があります。 システムに負荷をかけるテスト、ブレークポイントテストなどもテスト計画に含める必要があります。 システムに負荷をかけるテストによって、アプリケーションのブレークポイントが決まります。
  • テストの見積もり – テスト段階が完了するまでにどれくらい時間がかかるかを見積もってください。 関与するテスターの数と必要なテスト サイクルの数に基づいて分析する必要があります。
  • リスク分析 – リスクを分析し、予防のために適切な措置を講じます。 リスク要因に従ってテスト ケースに優先順位を付け、耐久テスト中にテスターが段階的に行う可能性がある以下のリスクと問題を特定します。
  • パフォーマンスは時間が経っても一定に保たれますか?
  • まだ検出されていない他の小さな問題はありますか?
  • 対処されていない外部干渉はありますか?
  • テストスケジュール – 予算を決め、期限内に成果物を完成させる。 として 耐久試験 トランザクションの巨大ではあるが自然な負荷配置をシステム/アプリケーションに継続的に適用します。

耐久試験例

一方、 ストレステスト テストされたシステムを限界まで引き上げ、 耐久試験 アプリケーションを限界まで引き上げる の経時変化の追跡たとえば、メモリ リーク、データベース サーバーの使用率、システムの応答停止など、最も複雑な問題は、ソフトウェアを長時間実行した場合に発生します。耐久テストを省略すると、展開前にこのような欠陥を検出できる可能性は非常に低くなります。

耐久試験ツール

  • ウェブロード
  • ロードコンプリート
  • Apache JMeter
  • LoadRunner
  • 前倒し
  • ロードUI
  • OpenSTA
  • Rational Performance Tester

耐久試験のメリット

  • これは、負荷がかかっているシステムがワークロードをどのように処理できるかを判断するのに役立ちます。
  • 顧客がインフラストラクチャのニーズを検証または強化するために使用できる正確なデータを提供します。
  • システムを長期間にわたって高レベルで実行した後に発生する可能性のあるパフォーマンスの問題を特定します。
  • 一般的な問題は、対象を絞った小規模なパフォーマンス テストで特定されます。これは、非常に短いスパンタイムで巨大な負荷が発生した場合でも、アプリケーションが確実に利用可能な状態を維持できることを意味します。
  • 耐久性テストは、長時間実行した後にパフォーマンスの低下がないかどうかを確認するためにも使用されます。

耐久試験のデメリット

  • どれくらいのストレスをかける価値があるのか​​を定義するのは難しいことがよくあります。
  • 耐久性テストは、アプリケーションやネットワークの障害を引き起こす可能性があり、次の場合に重大な中断を引き起こす可能性があります。 テスト環境 孤立していない。
  • システムに過剰な負荷がかかると、永久的なデータの損失や破損が発生する可能性があります。
  • ストレスが除去された後も、リソースの使用率は非常に高いままです。
  • 一部のアプリケーション コンポーネントが応答に失敗します。
  • 未処理の例外はエンド ユーザーによって監視されます。

まとめ

  • In ソフトウエアエンジニアリング, 耐久テストは負荷テストのサブセットです。
  • 耐久性テストは長いプロセスであり、場合によっては XNUMX 年かかる場合もあります。
  • 確認のためにチェックが行われます
  • メモリリークをテストする
  • テストの応答時間
  • データベース接続のテストなど。