組み合わせテスト設計の補助用に、nワイズカバレッジを計測する簡易的なツールATestCovをリリースしました。
ツールの想定用途は、既存のテストケースの網羅度チェックや、組み合わせのばらつきの評価です。
計測対象のnワイズカバレッジは、テストケース中に、n個のパラメータ組み合わせがどれぐらい出現するかを、網羅率で示したものです。
具体的な公知のテスト技法との関係として、同値分割テストの網羅率では、1ワイズカバレッジを評価に用います。オールペア法(ペアワイズ法)や直交表技法の網羅率では、2ワイズカバレッジの網羅に重点を起きます。
使い方
使い方ですが、テストケース記述ファイルと、パラメータ記述ファイルを実行引数に指定して実行します。
パラメータ記述ファイルは、以下のようなテスト条件のパラメータと値を列記したファイルです(PICTの入力ファイルと同じです)。
#パラメータ記述ファイル.txt 麺:硬め,普通,柔らかめ スープ:塩,醤油 あぶら:多め,普通,少なめ 飯:あり,なし
テストケース記述ファイルは、以下のようなテストケースを羅列したファイルです(PICTの出力結果と同じです)。
#テストケース記述ファイル.txt 麺 スープ あぶら 飯 硬め 塩 あり あり 普通 醤油 なし なし 硬め 醤油 なし なし
これを以下のように実行します。
atestcov.exe --param パラメータ記述ファイル.txt --testcase テストケース記述ファイル.txt
すると、以下のように、nワイズカバレッジを一覧表示します。
[coverage report] number of test case: 3 number of parameter: 4 1wise coverage: 90.00%(9/10) 2wise coverage: 45.95%(17/37) 3wise coverage: 20.00%(12/60) 4wise coverage: 8.33%(3/36)
その他の使い方
排他制約にも対応しています。排他制約は以下のように「@mutex」を付与して記述します。
#パラメータ記述ファイル.txt 麺:硬め,普通,柔らかめ スープ:塩,醤油 あぶら:多め,普通,少なめ 飯:あり,なし @mutex 麺:硬め, あぶら:多め
排他制約で指定された組み合わせは、カバレッジ計測から除外されます。
その他、追加の実行時引数で、網羅できていない組み合わせの表示や、組み合わせテストのメトリクスの表示を追加できるようにしています。