リファレンスリクエスト:ブロックデザインのソフトウェアテストへの適用


8

私は発生構造とコンビナトリアルデザイン(可能性のある動機:一般化された自己組織化でいくつかの構造の上限を設定すること)を検討し始めました、そしてWikipediaの記事は次の興味深いまだ説明されていない声明を出します:ブロックデザインはソフトウェアテストに適用できます。(主張のあるウィキペディアのページはこちらです)。

私のgoogle-fuは、このアプリケーションの適切なリファレンスを取得していません。誰かが私にリードを与えることはできますか?

回答:


8

n個の変数s 1、s 2、...、s nのリストを含むソフトウェアがあり、これらの各変数が値の範囲をとることができると仮定します。ここで、双方向の相互作用についてプログラムをテストしたいとします。つまり、プログラムが変数s iとs jのすべてのペア、およびこれらの変数が取り得るすべての可能な値に対して正しく実行されることをテストするとします。

ブルートフォースでこれを行うには-iとjの各ペアを1つずつ処理し、次にs iとs jの各許容値をテストします(他のものを任意に選択しながら)-膨大な数のテストが必要になりますケース。

ただし、1つのテストで複数の双方向の相互作用をテストできます。たとえば、3つの変数s 1、s 2、およびs 3があり、s 1 = 1、s 2 = 2、およびs 3 = 0のときにテストする場合、3つの可能な双方向相互作用を同時にテストしました。

カバリング配列に基づいて、プログラムのテストスイートを設計できます。列は変数を表し、行は実行する特定のテストを表します(そのため、行数は少ないほど優れています)。強度2をカバーする配列では、任意の2つの列iおよびj内に、変数s iおよびs jのすべての可能なペアが存在します。t方向の相互作用をテストできる、より高い強度のカバーアレイがあります(ただし、通常、相互作用はいくつかのコンポーネントのみの結果です)。

相互に直交するラテン方格(およびその他のさまざまなブロックデザイン)のセットは、特に効率的なカバーアレイを形成します。



弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.