what is endurance testing software testing
ソフトウェア耐久性テストの概要:
この記事では、Enduranceソフトウェアのテストについて詳しく説明します。
最初に、耐久性テストが正確に何であるかを理解してから、それに関するすべての詳細を調べてみましょう。この記事は、Endurance TestConceptを初めて使用する人にとって本当に完璧なガイドになると確信しています。
この記事では、耐久性テストの意味、必要性、期間、利点、課題、および関連する手順を含む完全な概要を、概念を完全に理解できるようにするための簡単な用語で例とともに説明します。
学習内容:
耐久試験とは何ですか?
持久力という言葉は、「何かが長持ちする、または摩耗に耐える能力」を意味します。単に、耐久性、持続力、または寿命と呼ぶことができます。
ソフトウェアの世界では、耐久性テスト(ソークテストまたは寿命テストまたは容量テスト)は、ソフトウェアシステムが長期間にわたって継続される巨大な予想負荷の下で持続できるかどうかを確認するために行われる非機能テストの一種です。時間の。
これは、パフォーマンステストタイプの1つであり、負荷テストのサブタイプです。
なぜ耐久試験?
このテストを実行する主な目的は、潜在的なメモリリークを特定することです。したがって、このテスト中、メモリ使用率は綿密に監視されます。メモリリークの概念を知っていることを願っています。それでも、この用語に不慣れな人にとって、メモリリークが実際に何であるかを簡単に説明しましょう。
に メモリーリーク 廃棄されたメモリを解放するソフトウェアプログラムの障害であり、パフォーマンスの低下または障害を引き起こします。
Windows10用の無料レジストリクリーナーのダウンロード
メモリリークは短期的な影響はないかもしれませんが、長期的にはシステムの速度を低下させ、空きメモリを残さないため、最終的にアプリケーションまたはシステムのクラッシュにつながります。メモリリークは、一定期間後にのみ明らかになる問題です。
したがって、このような問題を明らかにするには、耐久性テストが必要です。
ただし、非常に大きな負荷がかかると、アプリケーションが1時間などの一定期間正常に動作する可能性があります。ただし、同じ量の負荷に3〜4時間などの長期間連続してさらされると、リソースの問題とディスク容量の不足により、アプリケーションがクラッシュします。
耐久性ソフトウェアのテストで特定するもう1つの重要な問題は、パフォーマンスの低下です。長期間使用した後のスループットまたは応答時間は、テストの開始時と同等または改善されていることを確認する必要があります。
データベース接続の問題は、耐久性テストでも識別されます。データベース接続が正常に閉じられない場合、システムがクラッシュする可能性があります。
耐久性テストでは、システムのレイヤー間に適切な接続が閉じられているかどうかも確認されます。そうしないと、システムの特定のモジュールがハングします。
一言で言えば、耐久性テストの目的は、システムが長期間の持続的な使用に対してどのように動作するかを判断することであると言えます。耐久性テストの一部として特定された主な問題は、メモリリーク、パフォーマンスの低下、データベース接続の問題などです。
耐久試験の期間
24時間年中無休のノンストップ運用プロジェクトの場合、理想的には耐久性テストを72時間実行する必要があります。その理由は、アプリケーションが週末に無人で実行できる十分な機能を備えている必要があるためです(週末のサポートは組織にとってコストがかかるため)。
そのため、週末よりもわずかに長い期間、大きな負荷にさらされたシステムをテストする必要があります。ただし、72時間のテストの実行は煩雑になる可能性があるため、通常、12時間の耐久性テストを実行します。
さらに、ソークテストの期間中の厳格なルールはありません。これは主に、クライアントの関与、実際の製品の使用などの要因に依存します。場合によっては、耐久性テストも1年間実行されます。
耐久性試験の利点
このテストから得られる利点を以下に示します。
- これにより、アプリケーションの適合性が保証されます。
- 他のパフォーマンステストでは見つけることができないバグを明らかにします。 例えば 、ボリュームテストまたはストレステスト中にメモリリークの問題が見つからない場合があります。
- アプリケーションを堅牢にします。 巨大な連続負荷の下で発生する可能性のあるパフォーマンス低下の問題を特定し、それらの問題を修正することでアプリケーションがより堅牢になります。
- 長期的には、負荷がかかった状態でのシステムの動作について説明します。つまり、システムの持続可能性を長期にわたってチェックします。
- 耐久性テストの結果データは、お客様がインフラストラクチャのニーズを検証または強化するために使用できます。
耐久性試験の課題
このテストに伴う課題は次のとおりです。
- それは非常に時間のかかるものです。そのため、非常に厳しいスケジュールのプロジェクトで耐久性テストを実行することは困難です。
- 手動で行うことはできません。自動化ツールとそのツールの知識を持つ専門家が必要です。
- 適用する価値のある負荷を判断するのは難しいことがよくあります。
- テスト環境が実際の本番環境から適切に分離されていない場合、耐久性テストでのアプリケーションまたはネットワークの障害により、作業システム全体が妨げられ、永続的なデータ損失/データ破損が発生する可能性があります。
- 未処理の例外は、お客様によって観察されます。
例
耐久性テストが必要であり、使用できる例は、バンキングアプリケーションです。
銀行の休業日に、アプリケーションは、システムが継続的な予想される負荷または多数のトランザクションの下で長期間持続できるかどうかを知るためにテストされます。
これは、耐久性テストの完璧な例です。
このテストを実行する手順
以下は、このテストを実行するためのアプローチです。
#1)テスト環境を確立します。
これには、耐久性テストを実行するために必要なハードウェア、ソフトウェア、データベース(および、テストの期間とともに大きくなるサイズ)、およびOSを把握することが含まれます。
また、耐久性テストを実行するためのチームを作成し、チーム内で役割と責任を割り当てることも含まれます。テスト環境は、テストを実行する前に準備ができている必要があり、実際のライブシステムから適切に分離されている必要があります。
#2)テスト計画とテストシナリオの作成:
テストケースは、設計、レビュー、および完成させる必要があります。このステップでは、テスト実行戦略も構築する必要があります。
アプリケーションのブレークポイントを決定し、耐久性テスト中にアプリケーションにかかる負荷を確定する必要があります。
#3)テストサイクルの見積もり:
これには、各テストフェーズの期間と、必要なテストサイクルの数の分析が含まれます。
#4)リスク分析:
これは、このテストで非常に重要なステップです。テストケースは、リスク要因に基づいて優先順位が付けられます。
テスターが耐久性テスト中に遭遇する可能性のあるリスクと問題を以下に示します。
- パフォーマンステストは時間と一貫性を保ちますか?
- まだ差し引かれていませんが、他に小さな問題はありますか?
- まだ対処されていない外部干渉はありますか?
#5)テストスケジュール:
予算、成果物、および時間枠を決定します。
#6)テストの実行:
これには、最終的に耐久性テストを開始することが含まれます。
#7)テストサイクルの閉鎖:
テスト計画フェーズで設定された終了基準に基づいて、テストサイクルを閉じます。見つかった欠陥、テストの期間などに基づいている可能性があります。
耐久性試験ツール
市場には複数のツールがあります。
以下に、最も人気があり便利な耐久性テストツールのいくつかを示します。
結論
この記事では、耐久性テストとは何ですか?どのように行う必要がありますか?その長所と短所、および利用可能なさまざまなツール。
重要なポイントのいくつかは次のとおりです。
- 耐久性テスト(ソークテストまたは寿命テストまたは容量テスト)は、ソフトウェアシステムが長期間にわたって継続される巨大な予想負荷の下で持続できるかどうかを確認するために行われる非機能テストの一種です。
- これは、負荷テストのサブセットです。
- このテストの一部として特定された主な問題は、メモリリーク、パフォーマンスの低下、データベース接続の問題などです。
- 耐久性テストの期間は、ビジネス、プロジェクト、およびクライアントの要件によって異なります。それは5-10時間または数日または月または時には1年さえ続くかもしれません。
- これにより、アプリケーションがより堅牢になり、継続的な高負荷の下で持続できるようになります。
- 非常に時間がかかるため、耐久性テストを手動で行うことは避けてください。ほとんど自動化されています。
- 分離されたテスト環境を確立することから始め、テスト計画を作成し、テストサイクルの期間を見積もり、リスクを分析し、テストスケジュールを準備し、耐久性テストを実行し、最後にテストサイクルを閉じます。
- 耐久性テストに最適なツールには、Apache Jmeter、LoadStorm、LoadRunner、LoadUI、Appvance、OpenSTA、WebLoad、IBM Rational PerformanceTesterなどがあります。
参考文献:
- 2018年のトップ15パフォーマンステストツール:負荷テストツールリスト
- パフォーマンステストに関するSTHの詳細記事–例付き
- ApacheJMeterを介してこのテストを実行するときに知っておく必要のある4つの耐久性テストのヒント
推奨読書
- 最高のソフトウェアテストツール2021 (QAテスト自動化ツール)
- ソフトウェアテストQAアシスタントジョブ
- HPLoadRunnerチュートリアルを使用した負荷テスト
- ソフトウェアテストコース:どのソフトウェアテスト機関に参加する必要がありますか?
- キャリアとしてのソフトウェアテストの選択
- ソフトウェアテストテクニカルコンテンツライターフリーランサーの仕事
- いくつかの興味深いソフトウェアテストのインタビューの質問
- ソフトウェアテストコースのフィードバックとレビュー