C2カバレッジが複合条件網羅(MCC)かどうか
C2カバレッジが複合条件カバレッジ(multiple condition coverage; MCC)であるとするものが出てきてしまったので真偽を調べる
MCCをC2カバレッジとしている例
カバレッジとは?ソフトウェア分野における基準や計測方法を解説|ソフトウェアテストのSHIFT. 2023-11-01
コードカバレッジ 7つの種類とコード例を紹介!知っておくべき落とし穴| Qbook. 2025-01-30
ISTQB Glossaryによる定義
テストスイートが遂行した条件結果のパーセンテージ。条件カバレッジを100%にするには、各判定ステートメントの全ての単一条件に対し、真と偽をテストする必要がある。
ref: 条件カバレッジ(condition coverage) - ISTQB Glossary https://glossary.istqb.org/ja_JP/term/condition-coverage
if (A && B) {...}
A && Bはステートメント、判断文
A, Bは単一条件
これはテストケースに寄るが、下記の2パターンがある。
(1) (T, F), (F, T)
(2) (T, T), (F, F)
すべての単一条件(A, B)に対して真、偽をテストしているため、(1), (2)のどちらでも100%のカバレッジを達成している。
テストスイートが遂行した一つのステートメントの中にある全ての単一条件結果の組み合わせのパーセンテージ。100%の複合条件カバレッジは、100%の改良条件判定カバレッジを意味する。
ref: 複合条件カバレッジ(multiple condition coverage) - ISTQB Glossary https://glossary.istqb.org/ja_JP/term/multiple-condition-coverage?term=複合条件&exact_matches_first=true
複合条件カバレッジ(MCC)は、「全ての単一条件結果の組み合わせのパーセンテージ」と言っているので(T, T), (T, F), (F, T), (F, F)の4種類を要求しているように見える。
Most professional software developers use C1 and C2 coverage. C1 stands for statement coverage and C2 for branch or condition coverage.
ref: Code coverage - Wikipedia
テストツールのベンダー企業もC2は条件網羅率としている。
C2カバレッジは、条件網羅率であり、コード内のすべての条件を少なくとも1回は実行されているかどうかを計測します。
ref: C2カバレッジ | 静的解析ツール・単体テストツール C/C++test | テクマトリックス株式会社
メモ
条件カバレッジ(condition coverage) - ISTQB Glossary
複合条件カバレッジ(multiple condition coverage) - ISTQB Glossary
C2カバレッジ | 静的解析ツール・単体テストツール C/C++test | テクマトリックス株式会社
分岐カバレッジ(C1/C2)とgcovのカバレッジの違い #ソフトウェア品質 - Qiita
カバレッジの種類~C0・C1・C2・MCC~ - NRIネットコムBlog