カバレッジテストは、「C0」「C1」「C2」に分けられることが多いですが、
- C0:命令網羅(ステートメント・カバレッジ)
- C1:分岐網羅(ブランチ・カバレッジ)
- C2:条件網羅(コンディション・カバレッジ)
と分けられます。
例として、以下のようなソースのテストを行うと考えます。
具体的には、C0カバレッジテストの場合は、ステートメントを一度通れば良いとされているので、一例として以下のルートで全てのステートメントを網羅することが可能です。
条件A、B、Cの各ステートメントを経由しているため、C0カバレッジは成立します。
つまり、C0カバレッジテストの場合、1項目の試験を行うことで網羅することができます。
続いて、C1カバレッジテストの場合、すべての処理を網羅する必要性があり、例えば以下の試験方法によりすべての処理を経由することができます。
各条件にブランチ、つまりルートA-1、A-2、B-1、B-2、C-1、C-2各ルートを網羅しているため、C1カバレッジテストの場合は、3項目ということになります。
最後に、C2カバレッジテストの場合は、すべての組み合わせにおける試験項目が必要となりますので、以下の組み合わせとなります。
フローチャートに書き出すとわかりづらくなりますので、表で表すと右図のようになります。
すべての組み合わせを網羅するには、5項目が必要ということになります。
テストの目的に応じてC0~C2の使い分けや、さまざまなテスト技法を使い分ける必要性があります。
これは一例ですので、さまざまなテスト技法を今後も紹介させていただきたいと思います。