ソフトウェアのテストにおける「網羅基準」は、ソフトウェアの品質を確保するために重要な概念です。以下に、主なテスト方式を列挙し、それぞれの特徴を詳しく説明します。
1. 命令網羅(Statement Coverage)
- 概要: プログラム内のすべての命令を少なくとも1回は実行することを目指すテスト方式。
- 目的: コード全体が実行されることを確認し、未実行の命令がないようにする。
- 例:
if
文やfor
ループなど、すべての命令が実行されるようにテストケースを作成。
2. 分岐網羅(Branch Coverage)
- 概要: プログラム内のすべての分岐条件(
if
やswitch
など)について、真(True)と偽(False)の両方をテストする。 - 目的: 分岐ごとの動作を確認し、条件による挙動の違いを検証。
- 例:
if (x > 5)
の場合、x = 6
(True)とx = 4
(False)の両方をテスト。
3. 条件網羅(Condition Coverage)
- 概要: 分岐条件を構成する各条件式が、真(True)と偽(False)の両方を取るようにテストする。
- 目的: 各条件式が正しく評価されることを確認。
- 例:
if (A > 5 && B == 3)
の場合、A > 5
とB == 3
のそれぞれが真と偽を取るようにテスト。
4. 複数条件網羅(Multiple Condition Coverage)
- 概要: 分岐条件を構成するすべての条件式の組み合わせを網羅する。
- 目的: 条件式のすべての可能な組み合わせを検証し、複雑な条件の動作を確認。
- 例:
if (A > 5 && B == 3)
の場合、A
とB
の4通りの組み合わせ(True/False)をテスト。
5. パス網羅(Path Coverage)
- 概要: プログラム内のすべての実行経路(パス)を網羅する。
- 目的: すべての可能な経路を検証し、ロジックの欠陥を発見。
- 例: ループやネストされた条件分岐を含む複雑なコードで使用。
6. ブラックボックステストの補足的手法
- 同値分割: 入力データをグループ化し、各グループから代表的な値を選んでテスト。
- 境界値分析: 入力データの境界付近の値を重点的にテスト。
これらのテスト方式は、プログラムの品質を確保するために重要です。どの方式を選ぶかは、システムの複雑さや要件に応じて異なります。