2011-08-02 18 views
0

従属変数のセットに基づいてテストケースを自動的に生成するアルゴリズムが必要です。実装言語は本当に重要ではありません。簡単な例としてテストケースの生成

私は関数Fテストだと仮定する(A、B、Cと、D)

  1. することができ、A1、A2、
  2. B a3をB1とすることができます、B2
  3. は は
  4. CはC1、C2、C3
  5. DとすることができるD1、D2できる場合= A1を、D2、D3、D4 = a2の場合、D5 = A3
場合

引数の組み合わせをすべて生成するにはどうすればよいですか?

ように、[A1、B1、C1、D1] 〔A2、B1、C1、D3] 〔A2、B1、C1、D4]

と?

答えて

0

これは比較的特殊です。パラメータのためのあなたの条件を定義し

recursiveTestAllCombinations(previousParameters) 
{ 

    if (length(previousParameters) == numberOfParameters) 
    { 
    performTest(previousParameters) 
    return; //end of recursion 
    } 


    possibilitiesForCurrentParameter = getPossibilities(currentParameterIndex, previousParameters) 

    foreach (p in possibilitiesForCurrentParameter) 
    { 
    parameters = previousParameters 
    parameters.append(p); 
    recursiveTestAllCombinations(parameters) 
    } 
} 

recursiveTestAllCombinations([]) 

方法getPossibilities:あなたは一つのパラメータの可能性のリストのみが「前」のパラメータに依存するように、あなたのパラメータを注文したと仮定すると、あなたのような何かを行うことができるはず:

getPossibilities(previousParameters) 
{ 
    if (length(previousParameters) == 0) 
    { 
    return [a1, a2, a3]; 
    } 
    .. 
    if (length(previousParameters) == 3) 
    { 
    if (previousParameters[0] == a1) return [d, d2]; 
    .. 
    } 
} 
1

あなたが見ているのは正式にコンビナトリアルテストと呼ばれています。このhereについて詳しく読むことができます。あなたは多くのツールをオンラインで見つけることができますが、私は成功を収めていますCTE-XLPICT

どちらもコードを生成しませんが、あなたのための組み合わせを生成します。

0

おそらくthe question and answers here might be worth following up onのリンクのいくつか。あなたが尋ねる必要がある基本的な質問は、すべての組み合わせを生成する価値があるかどうかです。 Phadkeのアプローチは、すべての組み合わせのよくサブサンプルされたサブセットを選択することを可能にする。それは網羅的なテストではありませんが、非常に良いカバレッジを与えます。

Phadke'sdesign of experimentsテスト(ソフトウェア)システムのパラメータ値を選択するアプローチ。

簡潔に言えば、このアプローチでは、テスト(メソッド)パラメータの最小値、標準値、最大値を使用し、appropriately chosen Taguchi arrayに従って値を変更します。

+0

Phadkeのリンクが無効です。 – Jon

+0

@ジョン:働いている人が見つかりました。ヘッドアップをありがとう! –

関連する問題