ホワイトボックステスト
1. 概要
- プログラムの内部構造に重点をおいたテスト、またテスト戦略
- ホワイトボックスはブラックボックスの対義語
- ブラックボックスは内部の動作仕様が公開されていない状態を指すが、ホワイトボックスは内部の動作仕様(コード)が公開されている状態を指す
- ホワイトボックステストではプログラムの具体的な処理に対してテストを行う
- 主にユニットテスト(単体テスト)で行うことになる
2. 網羅基準
命令網羅
- 全ての命令(ステップ)を網羅するテスト(またはテストケース)
- C0、ステートメントカバレッジとも呼ばれる
分岐網羅
- 全ての分岐を網羅するテスト
- 分岐網羅を達成すると必然的に命令網羅も達成される
- C1、ブランチカバレッジとも呼ばれる
条件網羅
- 個々の分岐の条件を網羅するテスト
- C2、条件カバレッジとも呼ばれる
複数条件網羅
- 条件の組み合わせによる分岐を網羅するテスト
- マルチコンディションカバレッジ
3. テスト手法
制御フローテスト
データフローテスト
4. 実施方法
ユニットテスト
- ほぼ全てのプログラミング言語にはユニットテストフレームワークが存在する
- ユニットテストフレームワークにはカバレッジの計測ツールが統合されていることが多いので、原則的にそれらを使っていくことになる
- いかにユニットテストが書きやすいコードを書けるかが重要な要素になる
参考資料