ホワイトボックステストとは、ソフトウェアの内部構造やプログラムのアルゴリズムを理解した上で行うテスト手法のことです。すべての命令を実行したり、すべての条件分岐のtrue/false両方のパターンがテストされているかを確認します。ホワイトボックステストでは開発者自らがテストし、コードを網羅しながら詳細な確認をしていきます。
ホワイトボックステストは、「透明ボックステスト」「クリアボックステスト」「グラスボックステスト」「構造テスト」「コードベーステスト」「ロジックベーステスト」とも呼ばれます。
ホワイトボックステストの反対は、ブラックボックステストです。ブラックボックステストでは、ソフトウェアの内部構造は気にせずに、外部からの入力と出力の関係をテストします。一般的にユーザー視点のテストに近くなり、開発者以外のテスターやQA担当者が実施します。
ブラックボックステストでは、ユーザーが遭遇するであろう課題を先回りしてチェックできる反面、ソースコード内のバグを見逃すリスクがあります。また、プログラムの分岐や処理をどの程度網羅してテストできているかを把握しずらい側面があります。
ブラックボックステストとしては以下の手法があります。
- 同値分析:同値クラスの数値などをいくつか入力してテストする。1・30・50・100等の入力
- 境界値分析:境界付近の前後値をテストする。0・1・100・101等の入力
- 決定表テスト:条件と結果の組み合わせをテストする。IDとパスワードの組み合わせで、それぞれ「正」と「誤」のパターンでテストする
- 状態遷移テスト:システムの状態遷移をテスト。カード挿入→暗証番号入力→金額入力→引き出し等をテストする
- エラー推測:経験や勘を頼りに、バグっていそうなところを重点的にテストする
ホワイトボックステストとブラックボックステストの両方を実施することで、確かな品質を保証します。