stability testing software testing
安定性テストはパフォーマンステストの一部です。このチュートリアルでは、安定性テストの目的、重要性、および必要性を例を挙げて説明します。
安定性テストは「非機能的」テストです。ここでは、チームはサイトの機能と基本機能をテストしていません。ただし、「堅牢性」、「エラー処理」、「信頼性」、製品の安定性などのソフトウェア製品の機能をテストします。
市場から新製品を購入する人を考えてみましょう( 例えば、 携帯電話)。購入者は、製品が故障することなく、長期間にわたって均一に機能することを期待します。同様に、ウェブサイトとモバイルアプリのユーザーは、対応するウェブサイトまたはモバイルアプリが高い信頼性と安定性で動作することを期待します。
ここで、eコマースポータルから商品を購入しようとしているユーザーの場合を考えてみましょう。膨大な数のユーザーが同じポータルを同時に使用している場合、Webサイトのパフォーマンスが低下する可能性が高くなります。また、セッション中に応答時間が遅くなったり、メモリリークが発生したりすることもあります。
これらの問題は、開発者と利害関係者の両方に脅威をもたらします。これらの問題を見つけて、エンドユーザーに届く前に開発チームに報告するのは、テストチームの責任です。このタイプのテストは、パフォーマンステストの対象になります。安定性テストは、パフォーマンステストの一部です。
学習内容:
安定性試験の概要
前述のように、安定性テストは「非機能」テストとしても定義されています。ここで、テストチームは、堅牢性、エラー処理、信頼性、および製品の安定性をチェックします。
このテストは、「耐久性テスト」または「ソークテスト」とも呼ばれます。これは「極度の負荷テスト」としても知られています。
このタイプのテストでは、テスターは、多数のアクティブユーザーがWebサイトを同時に使用したときにオンラインポータルがどのように応答するかを確認します。テスターは、このような環境でシステムの応答を確認する必要もあります。
多くの場合、Webサイトは、サーバーを再起動する機会なしに、数週間(場合によっては数か月)継続して実行する必要があります。そのようなウェブサイトのアクティブユーザー(現在ウェブサイトを使用しているユーザー)は途方もない可能性があり、各ユーザーはシームレスなパフォーマンスを期待します。
テスターの役割は、開発者に信頼を提供し、トラフィックが多い場合でも障害やメモリリークが発生することなく、システムをインデントされた状態で使用できることをエンドユーザーに保証することです。この目的のために、アプリケーションは最大の負荷にさらされ(アプリケーションのブレークポイントまで)、そのような条件下でシステムの動作がチェックされます。
このテストは通常、ソフトウェアのリリース前に行われます。テスターは、アプリケーションがWebサイトへの予想される負荷を処理できることを確認する必要があります。負荷が大きいためにシステムがクラッシュしたり、速度が低下したり、予期しない動作を示したりすることがあります。
ソフトウェアの安定性は、上記のストレスの多い条件下でのシステムのシームレスなパフォーマンスに大きく依存します。したがって、安定性テストは非常に重要な役割を果たします。
安定性試験の目的
目的は以下のとおりです。
- システムの耐久性を見つけるため。
- アプリケーションの安定性を見つけて、開発者の信頼を高めます。
- ストレスの多い環境でシステムの欠陥を見つけます。
- 製品の全体的な評価と有効性。
- システムが大規模なプログラムを処理できることを確認するため。
- アプリケーションの応答時間をテストします。
- データベース接続を確認します。
安定性テストに関する事実
いくつかの有用な事実を以下に示します。
- 安定性テストには、適切なテスト環境が必要です。
- より良い結果を得るには、安定性テストには、十分に計画され構造化されたアプローチが必要です。
- それは時間のかかるプロセスです。テストプロセスにかかる時間は、クライアントの要件、製品の種類、および会社のポリシーによって異なる場合があります。
- この形式のテストでは、システムの分離が重要です。アプリケーションの安定性テストを行っている間、データが永久に失われたり破損したりする可能性があります。
- 耐久性テストはアプリケーションコンポーネントの障害を引き起こす可能性があるため、エンドユーザーは未処理の例外を観察する可能性があります。
ソフトウェアシステムの安定性と信頼性の違い
ソフトウェアアプリケーションの信頼性と安定性には大きな違いがあります。これは例の助けを借りて説明することができます。
例:
ユーザーが自分の携帯電話に新しいアプリをインストールして起動したとします。インストールされたアプリケーションが3分ごとの使用後にクラッシュする場合、それは確かにユーザーを苛立たせます。ただし、ユーザーがアプリの再起動後にデータを失うことなく復元できれば、アプリケーションの信頼性は失われません。このようなアプリケーションは信頼できると見なすことができますが、安定しているとは見なされません。
最高のハードドライブのデータ復旧会社
一方、アプリケーションデータが適切に保存されていないシナリオを考えてみましょう。ここでは、アプリケーションは正常に機能し、クラッシュしません(3分ごとなど)。このようなアプリケーションは、信頼できると見なされる場合と見なされない場合がありますが、「安定している」と見なすことができます。
信頼性と安定性は、同じコインの両面のようなものです。したがって、信頼性と安定性の両方がビジネスの観点から製品にとって重要であるという事実を覚えておいてください。
安定性テストの例:
ユーザーが新しい携帯電話を購入すると、故意または無意識のうちに安定性テストを実行するのが一般的なアプローチです。ユーザーは多くの画像、写真、ビデオ、ドキュメントなどをデバイスのメモリに保存し、保存されているデータが多すぎてデバイスのパフォーマンスに影響がないかどうかを確認します。これは、安定性テストの特定の例です。
膨大なデータが保存されているため、デバイスがハングアップすることがあります。ユーザーは、デバイスのパフォーマンスを回復させるために、一部のデータを削除するか、一時ファイルをクリアする必要があります。このテストの後、ユーザーはシステムの容量について明確なアイデアを得ることができます。
もう1つのリアルタイムの例は、オンライン購入ポータルです。 「セール/フェスティバル」シーズン中、多くの人がこれらのタイプのWebポータルから商品を購入します。 Webサイトのパフォーマンスは、ユーザーの期待を満たさなければなりません。
したがって、テスターは、当時これらのサイトで発生する可能性が高いと予想される「ラッシュ」を念頭に置いて、サイトをテストする必要があります。
インターネット接続の安定性テスト
ここでのテストケースは、インターネット接続がどれだけ安定しているかを確認することです。インターネットを介して接続を確立し、Webページを要求している間、パケット損失のために、ユーザーはWebページを表示する際に一貫性のない遅延に苦しむ必要があります。
宛先に到達できない場合、パケット損失が発生することがあります。 Skypeビデオ通話を使用しているとき、インターネット経由でゲームをプレイしているとき、またはインターネットからランダムに切断されているときに、多くの人が同様の問題に遭遇した可能性があるのは、パケット損失が原因です。
インターネット接続をテストするための前提条件:
- インターネットの安定性をテストするには、ファイアウォールが無効になっているWebブラウザが必要です。
- Webアドレスを選択しました( 例えば、 https://www.google.com/ )失敗する可能性は低いです。
- GoogleスプレッドシートまたはMicrosoftExcelを使用して結果を記録します。これは、ユーザーにとって理解しやすく、読みやすいためです。
- インターネット接続、デバイスを再確認し、接続をもう一度確認してください。次に、以下のテストを実行します。
インターネット接続のテストに使用される方法:
接続をテストする最良の方法は、次のサイトにアクセスすることです。 SpeedTest 。(さらに読む前に、サイトにアクセスしてください)。 SpeedTest.netには、サーバーを選択するためのプロビジョニングがあります。お近くのサーバーを選択して実行します。
その後、サイトはいくつかの事前定義されたアルゴリズムに基づいていくつかの計算を実行し、インターネット接続の品質を即座に決定するレポートを表示します。レポートには、パケット損失の割合が含まれています。 「0%」である必要があります。
「0%」のパケット損失は、接続の高い安定性を決定します。 「0」より大きい数値は、接続が不安定であることを示します。
2番目の方法は、「cmd」プロンプトを使用して、コマンド「ping」を入力することです(下の図を参照してください)。ここでは、コマンドプロンプトを使用して、インターネットの安定性と遅延をリアルタイムでテストすることもできます。
図では、「Ping統計」セクションを確認してください。
ここに、
送信されたパケットの数= 4
受信したパケット数= 4
失われたパケットの数= 0
結果は、接続が非常に安定していることを示しています。
使用したプロセス:
ステップ1: テスターは、上記の2つの方法のいずれかを選択します。
ステップ2: テスターはプロセスを実行し、インターネット接続への応答として取得された必要な情報をスプレッドシートに記録します。
ステップ3: 彼らはこのプロセスを週に3、4回繰り返します。
(安定性テストは一定期間にわたって行われるため、テスターは少なくとも週に2回以上プロセスをスケジュールする必要があります。)
ステップ4: 結果はスプレッドシートに記録されます。
テスターは、プロセスの実行日を書き留める必要があります。各日付で得られた結果を比較して、現在のネットワークの安定性についてのアイデアを取得します。
注意: ブレークポイント は、さらに負荷がかかったときにシステムが崩壊するシステムの状態です。システムの容量を定義します。
仕様書は、チームリーダーからテスターに渡される文書であり、システムの予想される負荷に関する詳細が含まれます。安定性テストでは、テスターは仕様書で提供されているガイドラインに基づいてシステムブレークポイントをチェックします。
テストチームは、仕様書で指定されたブレークポイントの上下の負荷でアプリケーションをテストすることにより、システムをチェックします。これは、負荷テストの場合とは異なります。
xbox360用バーチャルリアリティメガネ
安定性テストでは、予想される負荷のみをテストに使用しますが、負荷テストでは、アプリケーションに予期しない負荷がかかり、テスターがアプリケーションの容量をチェックします。
安定性テストに基づくソフトウェアテストのライフサイクル
のさまざまなフェーズ ソフトウェアテストのライフサイクル 以下に参加しています:
- 要件分析
- テスト計画
- テストケース開発
- テスト環境のセットアップ
- テストケースの実行
- テストクロージャ
上記のすべてのフェーズを詳しく理解しましょう。
C ++で書かれたソフトウェア
#1)要件分析
このフェーズでは、テストチームが、アプリケーションで実行するさまざまなタイプのテストを決定します。それは純粋にクライアントの要件とアプリケーションのタイプに依存します。 例えば、 テスターは銀行のアプリケーションをテストしており、この場合、最も優先度の高いテストはセキュリティテストです。テスターが不動産アプリケーションをテストしている場合、テスターは機能テストを優先します。
#2)テスト計画
このフェーズでは、テストの範囲について説明します。テスターは自動化の必要性について話し合います。安定性テストの場合、テストプロセスは面倒であり、特定の期間にわたって何度も繰り返す必要があるため、自動化が適しています。 「LoadStrom」は、自動化を使用して安定性テストを実行するための優れたツールです。
このフェーズでは、クライアントとテストの予算と時間制限について話し合います。テストには時間がかかるため、予算と制限時間はテスト計画を満たす必要があります。
#3)テストケースの開発
このフェーズでは、アプリケーションをテストするためのテストケースが作成されます。
#4)テスト環境
テスト環境は、安定性をテストするための重要な要素です。実稼働環境のレプリカである適切なテスト環境が必要です。テスト中にサイトがクラッシュしたり、データが失われたりする可能性があるため、元の環境は使用しないでください。
#5)テストの実行
このフェーズでは、テストケースが実行され、テスト結果が検証されます。これは時間のかかるフェーズです。このフェーズでテスターが直面する一般的な問題は、メモリリーク、データ接続の問題、応答時間の遅さなどです。
#6)テストクロージャ
このフェーズでは、すべてのチームメンバーがプロジェクトで使用される終了基準を満たし、話し合います。終了基準は、検出された欠陥の数やテストに使用された時間などの要因によって異なります。
安定性テストで使用されるツール
次のツールが使用されます。
- LoadRunner
- OpenSTA
- LoadUI
- WebLOAD
- LoadComplete
- Appvance
- LoadUI
- Rational Performance Tester
耐久性テストにApacheJMeterを使用する方法は?
Apache JMeter 耐久性テストに適したツールです。テストを開始する前に、テスターはビジネス目標について十分な知識を持っている必要があります。その後、テスターはテストスクリプトを作成します。次に、JMeterでスレッドグループ設定を構成します。
JMeterを使用して耐久性テストを行う際には、次の要素を指定する必要があります。
- スレッドの数: これは、サイトの予想ユーザー数を示します。
- 立ち上げ期間: これは、各スレッドが完了するのにかかる時間を示します。 5つのスレッドがある場合、ランプアップ期間は50秒です。
- ループカウント: これは、プロセスが繰り返される回数を示します。耐久性テストでは、永久に設定されています。
- スケジューラー: このテストでは、スケジューラー機能を使用します。要件に応じてスケジューラー構成を指定する必要があります。
結論
多くのアプリケーションは不適切に設計されており、使用後にデバイスのメモリを解放しません。これは徐々に記憶喪失につながります。安定性テストで問題を克服できます。したがって、安定性テストは非常に重要です。これは非機能テストです。これは、アプリケーションの特性にのみ関係します。ここでのテストは、システムの動作に関するものではありません。
安定性テストの重要性と必要性を理解していただければ幸いです。
推奨読書
- ソフトウェアテストQAアシスタントジョブ
- ソフトウェアテストコース:どのソフトウェアテスト機関に参加する必要がありますか?
- ソフトウェアテストテクニカルコンテンツライターフリーランサーの仕事
- キャリアとしてのソフトウェアテストの選択
- 初心者テスターのためのソフトウェアテストのアドバイス
- ソフトウェアテストコースのフィードバックとレビュー
- ソフトウェアテスターでモチベーションを維持する方法は?
- ソフトウェアテストにおけるモンキーテストとは何ですか?