先日公開したATestCovの使い方の一例紹介です。
ATestCovでは、実行時引数「--info」(-i)の付与で、テストケースで網羅できていないパラメータ組み合わせを検出できます。
実行例として、以下のファイルを入力して実行します。
SampleParameter.txt(パラメータ入力ファイル)
#パラメータと値の一覧 麺:細麺,太麺 スープ:豚骨,醤油,味噌
SampleTestCase.txt(テストケース入力ファイル)
#テストケース一覧 麺,スープ 細麺,豚骨 太麺,醤油 細麺,醤油
今回、この入力ファイルを用いて、テストケースで網羅できていない、2つのパラメータの組み合わせを調べます。
調べ方は、2ワイズカバレッジ(2因子間網羅率)計測コマンドに、「--info」を付与します。実行コマンドは次のようになります。
./atestcov --testcase SampleTestCase.txt --param SampleParameter.txt --upper 2 --lower 2 --info
すると、2ワイズカバレッジに加えて、次のように「[info]」ログが出力されます。
atestcov(ver.0.04) *** [info]measurering:2wise coverage [info]uncover:麺:細麺 スープ:味噌 [info]uncover:麺:太麺 スープ:豚骨 [info]uncover:麺:太麺 スープ:味噌 [coverage report] number of test case: 3 number of parameter: 2 2wise coverage: 50.00%(3/6)
このうち「[info]uncover:」の行で表示された組み合わせが、テストケースで網羅できていない組み合わせです。例えば「細麺の味噌スープ」を、テストケースが網羅できていないと読み取れます。
特定の組み合わせを調査対象から外す
網羅できていない組み合わせをピックアップする際、特定の組み合わせはピックアップから除外したい場合があります(例えば禁則の組み合わせなど)。その際は排他制約の文をパラメータに追加します。
例えば「太麺の豚骨スープ」は網羅しなくてよいならば、次のように@mutexで明記します。
SampleParameter.txt(パラメータ入力ファイル)
#パラメータと値の一覧 麺:細麺,太麺 スープ:豚骨,醤油,味噌 #禁則 @mutex 麺:太麺, スープ:豚骨
すると、出力で「[info]uncover:麺:太麺 スープ:豚骨 」が表示されなくなります。