コンビナトリアルテスト
Feb24, 2020
はじめに:
今日では、ソフトウェアシステムは多様で複雑であり、多くの可能な構成を持っています。 ソフトウェアシステムのこれらの質そして特徴は独特に設計され、革新的な、また創造的な特徴がある適用およびソフトウェアの要求を始めた。 これらとは別に、クライアントとユーザーは、指数関数的なパフォーマンス、機能性、品質、拡張性、有効性などを要求します。 これらの目標を達成し、顧客や消費者の要求を満たすために、ソフトウェアエンジニアは、さまざまな革新的な技術や方法論を使用して製品を開発し、厳格なテストを実行します。テストが不十分でリリースされた製品は、クライアントだけでなく、アプリケーションをインストールしたり、ソフトウェアを使用しているユーザーに取り返しのつかない損害や損失を引き起こす可能性があるためです。 さらに、それはまた、大きな経済的損失やセキュリティ侵害をもたらすだけでなく、日常生活の質に影響を与える可能性があり、身体的危害を引き起こ しかし、ソフトウェアテスターは多くの場合、時間と予算が限られているため、ソフトウェアを徹底的にテストすることはできません。 さらに、テスターは予想される欠陥を直感的にテストすることがよくありますが、予測されていない欠陥は見落とされ、テストされません。 このような状況を克服する最善の方法は、ソフトウェアとアプリケーションで組み合わせテストを実装することです。 コンビナトリアルテストは、管理可能な数のテストでシステム設定を体系的に調べることができ、t-way相互作用を体系的にカバーするアプローチです。 したがって、ここでは、その重要性、方法および他の主要な資質を定義するために、組み合わせテストに関する解説された議論があります。
コンビナトリアルテストの説明:
コンビナトリアルテストは、低コストで高品質のテストを生成する実用的なアプローチです。 これは、定量化および監視することができ、ツールによって部分的にサポートされる分析活動と合成活動を分離することによって、問題を段階的に攻撃す さらに、組合せ検定は非常に簡単に適用できます。 仕様ベースの技術として、テスト対象の実装に関する知識は必要ありません。 組み合わせテストは、ソフトウェアの多くのエラーは、二つ以上のパラメータの相互作用からのみ発生する可能性があるという前提に基づいています。 したがって,組合せ試験は,複数の構成パラメータを持つソフトウェアを試験するための有効な技術である。 主に変数の組合せによって引き起こされる相互作用の欠陥を検出することを使用します。 組合せ試験によって生成される試験のタイプは、’t’が与えられた被覆強度であるすべてのt-wayパラメータの組み合わせをカバーする被覆を生成するこ 基本的な組み合わせ検定は、別々に、または同時に使用することができる2つの方法で使用することができます。 これらの方法は次のとおりです:
- すべての構成の組み合わせに対して実行される同じテストの助けを借りて、カバー配列が構成可能なパラメータの値を選択するために使用される構成
- カバー配列は、入力データ値を選択するために使用され、その後、完全なテストケースの一部となり、アプリケーションのテストスーツを作成します。 この形式の組み合わせテストを現実のソフトウェアに適用することは、非常に大きなテストが必要になる可能性のある、より高い程度の相互作用を提示するため、挑戦的です。
コンビナトリアルテストのスーツを生成するために使用される方法:
コンビナトリアルテストの人気は、近年著しく増加しています。 多数の利点のためにそれはさまざまなテストのレベルのソフトウェアテスターによって利用される。 モデル、ユニット、統合、システム、受け入れテストから、黒、白、モデルベースのテストなどに至るまで、テスターは組み合わせテストを実装して、費用対効果の高いレートで効果的な結果を得ることができます。 さらに、組み合わせテスト用のテストスーツを生成するために、ソフトウェアエンジニアは膨大なツールを使用しているため、ソフトウェアのテスト これらの組み合わせテストスーツは、より高いt-wayカバレッジの配列を生成すると、かなりの計算リソースを消費し、大きな結果を生成することがで さらに、組合せ検定のためのアルゴリズムの大部分は、2方向検定の特殊なケースに焦点を当てています。 また,組合せ試験のためのテストスーツを手動で構築するために,三つの方法を用いた。 これらの方法はテスターにさまざまな利点を提供し、出力ができるだけ正確であることを保障する。 これらの方法/アルゴリズムは次のとおりです:
- 代数的方法:これは時間に関して効率的な構成を提供しますが、広範かつ一般的な様々な入力で正確な結果を生成することは困難です。
- : これらは、時間と精度に関して比較的効率的であることが判明しているため、被覆配列の構築のためのよく研究されたタイプのアルゴリズムである。
- ヒューリスティック検索:特に刺激アニーリング(SA)の適用は、いくつかのインスタンスで最も正確な結果を提供していますが、ヒューリスティック検索。 このローカル検索方法は、異なるシステム構成のための最小のテストスイートの多くを提供してきましたが、テストスイートを生成するための実行時間
ペアワイズ検定:
一般に全ペアテストとして知られているペアワイズテストは、システムへの入力パラメータの各ペアについて、それらのパラメータの可能なすべての離散 これは、百パーセントのテストカバレッジを提供するテスト設計技術です。 プログラム内で最も一般的なバグは、通常、入力パラメータまたはパラメータのペア間の相互作用によって発見され、トリガされます。 三つ以上のパラメータ間の相互作用を伴うバグは、徐々にあまり一般的ではなく、徐々に見つけるのがより高価です。 この場合、すべてのペアのようにテストケースを選択するための組み合わせ技術は、機能カバレッジを大幅に損なうことなくテストケースの数を大幅に削減することを可能にする非常に有用なコスト便益の妥協点です。 したがって,ペアワイズ試験技術は,複数のパラメータを含むアプリケーションの試験を設計するのに非常に有用である。 そのテストスーツは、すべての組み合わせをカバーし、したがって、それはバグを見つけるのに非常に効果的なまだ網羅的ではありません。 ペアワイズテストは組み合わせを劇的に減らすことができますが、障害検出の点ではまだ本当に効果的であり、最高のテスト努力と優れた有効性を約束するスマートなテスト設計手法です。
組合せ検定の利点:
組合せ検定に関する上記の議論は、その意義と有用性を反映しています。 これは、複数の設定可能なパラメータを持つソフトウェアをテストするため、最も効果的なソフトウェアテスト技術の1つです。 さらに、組合せ試験の助けを借りて、パラメータの組み合わせによって引き起こされる相互作用障害を容易に検出することができる。 この種のテストのもう一つの利点は、ソフトウェア開発者やテスターを助けるだけでなく、製品が開発されている組織にも利益をもたらす、非常に費用対効果の高いレートで高品質のテストを生成することです。 したがって、このアプローチの他の利点は次のとおりです:
- は、テスト計画を定義する際にカバレッジの懸念を処理します。
- は、テストの体系的な計画を可能にします。
- は、あらゆるソフトウェアやさまざまなレベルの抽象化に事実上適用できます。
- より高いテストカバレッジとより良い品質保証。
- は内部ソースコードSUTへのアクセスを必要としません。
- テストされた各シナリオの値を最大化します。
- テスト数の大幅な削減。
- リスクをコントロールすることができ、レビューが容易です。
:
ソフトウェアシステムは複雑であり、可能なテストの指数関数的な数が発生する可能性があります。 適切なテストなしでリリースされた製品は、組織だけでなく、ユーザーにとっても重大な危険になる可能性があります。 従って、ソフトウェアが解放された後そのような状態か問題が起こらないことを保障するために、ソフトウェアテスターは厳密なテストを行う。 さらに、それらは多数の構成可能変数のソフトウェアを容易にテストできるので、さまざまなテストのレベルで頻繁に組合せのテストを使用する。 要するに、組み合わせ試験は、パラメータの組み合わせによって引き起こされる相互作用障害を検出するために使用されます。 コンビナトリアルテストの有効性の基礎となる重要な洞察は、1999年から2004年にかけてNISTによって行われた一連の研究と研究に起因しています。 これは、管理しやすい数のテストでシステム設定を体系的に調べることができる非常に有用なアプローチです。 非常に費用効果が大きい率で良質のテストを作り出し、実行するのはアプローチである。 さらに、それは可能な限り早期にカバレッジの懸念を処理することができ、効果的なテスト計画手法です。 したがって、ソフトウェアエンジニアが最良のテスト結果を取得したい場合は、ソフトウェア開発ライフサイクル(SDLC)の初期段階で組み合わせテス