ソフトウエアやシステムの内部構造に着目するホワイトボックス・テストでは,処理の複雑さや機能の重要度などを考慮して,適切なカバレッジ基準を選択してテストを実行することがポイントになります。
ホワイトボックスのテスト設計技法として最も有名なのは,「制御パス・テスト」という技法です。一般的に「単体テストではカバレッジを確認するようにしてください」という指示がある場合は,たいてい制御パス・テストで計測できるカバレッジを指しています。
制御パス・テストは関数やメソッドのロジックの処理経路(パス)を動かすテスト方法です。制御パス・テストには,複数のカバレッジ基準があります。JSTQB*1の用語集から,どのような基準があるかを図1に整理してみました。カバレッジといってもこのようにいろいろなものがあり,どのカバレッジ基準を適用するかによってどこまでテストをすれば良いかが大幅に変わってきます。
では,図1から代表的なカバレッジ基準についていくつか詳しく説明していきましょう。
ステートメント・カバレッジ
ステートメント・カバレッジでは,テスト対象のコード中の実行可能ステートメント(命令文)のうち,テストによって何パーセントを実行したかをカバレッジ基準として評価します。ステートメント・カバレッジの例として図2のメソッドをテスト対象として説明しましょう。

図2のソースコードをフローチャートで表現すると図3のようになります。

ステートメント・カバレッジでは,フローチャートの命令文を表現している部分(四角の部分)をすべて実行していることを確認します。例えば図3のフローチャートの場合は,引数にそれぞれ【a=4,B=0,C=7】というデータを与えてテストをすれば,ステートメント・カバレッジを100%満たしたテストを実施できたことになります(図4)。
したがって,ステートメント・カバレッジのためのテスト・ケースは以下の一つで良いことになります。
テスト・ケース1
入力値【a=4,B=0,C=7】 期待結果 7
⇒命令(1),(2),(3),(4)を通過