ソフトウェアテストの品質を向上させるうえで欠かせないのがホワイトボックステストにおける分岐網羅(Branch Coverage)です。
この記事では、分岐網羅の基本概念から、その重要性、他のカバレッジとの違い、実践的な活用方法までを詳しく解説します。
テストエンジニアや開発者にとって必須の知識となるため、ぜひ最後までご覧ください。
分岐網羅(Branch Coverage)とは?
分岐網羅の定義
分岐網羅(Branch Coverage)とは、プログラム中に存在するすべての条件分岐に対して、true/false 両方のパスを少なくとも一度は実行することを指します。
このカバレッジ手法は、ソフトウェアの動作がすべての分岐において適切であるかどうかを確認するための指標です。
分岐網羅率(Branch Coverage Rate)
分岐網羅率は、全ての分岐のうちテストで実行された分岐の割合をパーセンテージで示します。
例:
-
条件分岐が10個あり、そのうち8個のtrue/false両方が実行された場合:
→ 分岐網羅率 = 80%
他のカバレッジ指標との比較
命令網羅(C0 Coverage)との違い
命令網羅(C0)は、すべての命令が最低1回実行されることを保証しますが、分岐のtrue/false両方をチェックするわけではありません。

💡 ポイント: 分岐網羅100% ⇒ 命令網羅も100%になるが、逆は成立しない。
条件網羅(C2 Coverage)との違い
条件網羅(C2)では、複数の条件を持つ複雑な式のすべての条件がtrue/falseになるようにテストします。
分岐網羅よりもさらに詳細な網羅性を求めるテストレベルです。
分岐網羅の活用方法と実践
テストケース作成の手順
-
条件分岐の抽出:プログラム内のif, while, for, switchなどの構造を特定
-
分岐の組み合わせを洗い出す:各条件でtrue/falseのシナリオを洗い出す
-
テストケース設計:分岐を網羅するような最小限のテストケースを設計
-
ツールで測定:JUnit + JaCoCo や Pytest + Coverage.py などのツールで網羅率を測定