ホワイトボックステスト
ほわいとぼっくすてすと
ひとことで言うと
ソースコードの内部構造に基づきすべての処理経路を網羅するよう設計する、開発者視点のテスト手法。
解説
プログラムの内部構造(ソースコード)を把握した上で、すべての処理経路が正しく動作するかを検証するテスト手法。命令網羅、分岐網羅、条件網羅などのカバレッジ基準に基づいてテストケースを設計する。主に単体テストの段階で開発者自身によって実施される。
くわしく解説
ホワイトボックステストは、テスト対象プログラムの内部構造(ソースコード・制御フロー)を把握した上で、すべての処理経路(パス)が正しく動作するかを検証するテスト手法である。プログラムを「中身が見える白い箱」として扱うことからこの名称がある。テストの十分性を測る指標として「カバレッジ(網羅率)」が用いられ、代表的な基準として、①命令網羅(C0):すべての命令文を少なくとも1回実行、②分岐網羅(C1):すべての条件分岐の真偽両方を実行、③条件網羅(C2):各条件の真偽のすべての組み合わせを実行などがある。網羅度はC0<C1<C2の順に厳密になる。主に単体テスト(ユニットテスト)の段階で開発者自身が実施する。
具体例で考えよう
IF文(年齢>=18の場合はA処理、そうでない場合はB処理)のコードに対して、年齢=20(真)と年齢=15(偽)の両方のケースでテストを実施してすべての分岐を通過させるのが分岐網羅の例。
試験対策ポイント
ホワイトボックス(内部構造網羅)とブラックボックス(入出力検証)の対比が最重要。C0(命令)・C1(分岐)・C2(条件)のカバレッジ基準と網羅度の順序も頻出事項。