マルチコンディションカバレッジ
テスト全体に対して、どれくらいの確認が終わったか?だよ
テスト方針は複合条件網羅だよ
複合条件網羅そのものを意図している場合もあるよ
簡単に書くよ
マルチコンディションカバレッジ(英:multiple condition coverage)とは
「複合条件網羅率」のこと。
用語の中身としては
「条件によって分岐する処理が出てきたとき、取り得るすべてのパターンを確認するぜ!」になるように設定してやるテスト(複合条件網羅でやるテスト)における「テストを全部やると、これだけ確認できるはずだよ。それに対して今はこれだけの確認が終わってるよ」な割合のこと
です。
あるいは
複合条件網羅(「枝分かれ条件の組み合わせパターンを、すべて確認できたらOK!」なテスト方針)のこと
を意図している場合も あります。
詳しく書くよ
順番に見ていきましょう。
まずは予備知識として
・カバレッジ(テストカバレッジ)
・複合条件網羅
・複合条件網羅率
について説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。
カバレッジ(テストカバレッジ)は「全部で、これだけ確認するよ」に対する「これだけ確認できたよ」の割合です。
テスト全体で、これくらいの確認をします。
そのうち、これくらいの確認が終わりました。
確認が終わった範囲、言い方を変えると、確認が終わった割合がテストカバレッジです。
日本語で「網羅率」と表現されたりもします。
ちなみに「カバレッジ」自体の意味は「カバーしている(した)範囲」です。
日本語だと「影響範囲」とか「適用範囲」が近いですかね。
複合条件網羅は「条件によって分岐する処理が出てきたとき、取り得るすべてのパターンを確認するぜ!」なテスト方針です。
「条件」とか言われても、よく分からない人は
「ここの値が変わったら処理の行き先が変わるかもね」な要素
と解釈してください。
「ここの値が変わったら処理の行き先が変わるかもね」な要素が複数ある場合に、すべての組み合わせパターンを最低1回は確認するのが複合条件網羅です。
例えば、そうですね。
ここにピヨ太プログラムが ありました。
ピヨ太プログラムは
1.お腹が空いた
2.嫌なことがあった
のどちらかの条件を満たすと、ケーキを食べます。
そんな役立たずなプログラムです。
ピヨ太プログラムの処理を、もう少しプログラムっぽく書くと以下のようになります。
if((お腹が空いた? == Yes) or (嫌なことがあった? == Yes)){
ケーキを食べる
}
ピヨ太プログラムにおける枝分かれの行き先が変わる要素(条件)は
1.お腹が空いた?
2.嫌なことがあった?
の2つです。
それぞれの条件は、YesかNoになります。
つまり、条件の組み合わせは
1.お腹が空いた? → Yes、嫌なことがあった? → Yes
2.お腹が空いた? → Yes、嫌なことがあった? → No
3.お腹が空いた? → No、嫌なことがあった? → Yes
4.お腹が空いた? → No、嫌なことがあった? → No
の4パターン考えられます。
この4パターン全部を確認できるようにテストするのが「複合条件網羅」です。
ピヨ太プログラムを
1.お腹が空いた? → Yes
2.嫌なことがあった? → Yes
にして動かすテストと
1.お腹が空いた? → Yes
2.嫌なことがあった? → No
にして動かすテストと
1.お腹が空いた? → No
2.嫌なことがあった? → Yes
にして動かすテストと
1.お腹が空いた? → No
2.嫌なことがあった? → No
にして動かすテストをやれば複合条件網羅になります。
難しく考える必要は ありません。
「複合条件」と書いてあると難しく見えますけどね。
意図するところは「条件の組み合わせ」です。
すべての複合条件(枝分かれの行き先が変わる要素の組み合わせ)を網羅したらテストを終わりにしよう!
なテスト方針が複合条件網羅です。
複合条件網羅率は「複合条件網羅でテストをやってるんだけどさ~。何割くらい確認が終わったかな?」を何となく数字で表したものです。
ピヨ太プログラムを例にとると、複合条件網羅で確認することは
1.お腹が空いた? → Yes、嫌なことがあった? → Yes
2.お腹が空いた? → Yes、嫌なことがあった? → No
3.お腹が空いた? → No、嫌なことがあった? → Yes
4.お腹が空いた? → No、嫌なことがあった? → No
の4パターンです。
そのうち2パターンの確認が取れていれば、複合条件網羅率は50%になります。
以上を踏まえて
複合条件網羅率をカッコ付けて……かどうかは知りませんが横文字にしたの
が「マルチコンディションカバレッジ」です。
マルチコンディションカバレッジと複合条件網羅率は同じものだと解釈して かまいません。
あるいは「率」の付いていない「複合条件網羅」そのものを意図してマルチコンディションカバレッジと表現する人もいます。
どちらを意図しているかは文脈から判断してください。
なお、私自身は
複合条件網羅率 = マルチコンディションカバレッジ
と判断しています。
カバレッジ(テストカバレッジ)の意図するところが「これだけ確認できたよ」な割合だからです。
・カバレッジ(テストカバレッジ):確認済みの割合
・複合条件網羅:テスト方針
・複合条件網羅率:確認済みの割合
・マルチコンディションカバレッジ:確認済みの割合
と解釈しています。
一言でまとめるよ
まぁ「マルチコンディションカバレッジ」って単語が出てきたら「枝分かれ条件の組み合わせパターンをすべて確認できたらOK!な方針でやっているテストにおける、確認が終わった部分の割合なんだな~」と お考えください。
おまけ
■訳してみるよ
「multi(マルチ)」の意味は「複数の」とかです。
「condition(コンディション)」の意味は「状態」とか「状況」とか「様子」とか「様相」とか「条件」とかです。
「coverage(カバレッジ)」の意味は「適用範囲」とかです。
何となく くっつけると
複数の条件の適用範囲
となります。
■検索してみる?






