ソフトウェアテストの種類とは?ホワイト/ブラックを解説

ソフトウェアテストの種類とは?ホワイト/ブラックを解説

ソフトウェアテストの種類に悩む初心者
「テストの種類って、なぜこんなに多いの?」
「ホワイトボックスとブラックボックス、何が違う?」
「V字モデルって、結局どこで使われるの?」

そんな疑問を抱える、開発工程を学び始めたあなたへ。

結論から言えば、
ソフトウェアテストは、設計図を見て検証するホワイトボックスと、利用者目線で挙動を確かめるブラックボックスに大別されます
と整理されるのが一般的です。

 

「ソフトウェアテスト」とは、開発した成果物が要求どおりに動くかを確認する品質確保の活動のこととされています。

 

この記事では、目的・ホワイト/ブラックの違い・同値分割と境界値分析・V字モデルによる工程対応を、あなた向けにやさしくまとめました。基本情報技術者のマネジメント系対策にも役立ちます。

 

1. テストの目的と種類

テストの目的を整理して考えるイメージ

あなたが「ソフトウェアテスト」という言葉に出会ったとき、まず押さえたいのは欠陥を早く見つけ、品質を保証するための活動という基本目的です。

 

テストの目的は、欠陥の検出・仕様との一致確認・品質への信頼性の積み上げの3つに整理されるとされています。これらを1つの技法で満たすのは難しく、視点の違うテストを組み合わせるのが一般的です。

 

ここでイメージしてほしいのが、「箱」の例です。中身の設計図を開いて確認するのがホワイトボックステスト、外から触って動きを確かめるのがブラックボックステスト。同じ箱を別の角度から見る関係にあると言われています。

 

テスト技法を学ぶ要点は、視点(内部構造 / 外部仕様)と工程(単体・結合・システム・受入)の2軸で整理することにあるとされています。種類が多いのは、欠陥が紛れ込む層も多様だからです。

 

2. ホワイトボックステスト(網羅基準)

内部構造を読み解くイメージ

あなたがコードを書く立場でテストを設計するなら、まずホワイトボックステストの考え方が土台になります。

 

ホワイトボックステストは、プログラムの内部構造(条件分岐や繰り返し)を見ながら、どの経路が実行されるかを確認する技法です。設計図を持つ人だけができる検証と言えます。

 

どこまで網羅して確かめるかを示す指標として、命令網羅・分岐網羅・条件網羅といった網羅基準が知られています。命令網羅は文を1回は実行する、分岐網羅は各分岐の真偽両方を通す、というイメージです。

 

網羅基準 確認する単位 厳しさ
命令網羅 各文を1回は通す 緩い
分岐網羅 各分岐の真偽を通す
条件網羅 各条件式の真偽組み合わせを通す 厳しい

 

ホワイトボックステストの要点は、網羅基準を上げるほど検出力が増すが、テスト工数も増える関係にあるとされています。プロジェクトのリスクと工期に応じて、どこまで網羅するかを選ぶ運用が一般的です。

 

別の観点として、ホワイトボックステストは主に単体テスト工程で活躍します。開発者本人がコードを把握している段階で実施すると、修正コストを低く抑えられる傾向にあります。

 

3. ブラックボックステスト(同値分割・境界値分析)

利用者目線で挙動を確かめるイメージ

あなたが「利用者の立場で動作を確かめたい」と考えるなら、ブラックボックステストの出番です。

 

ブラックボックステストは、内部のコードを見ずに、入力と出力の仕様だけを根拠に挙動を確かめる技法です。要件定義や外部設計書を片手に、想定どおりの結果が返るかを確認します。

 

代表的な技法に、同値分割と境界値分析があります。同値分割は、入力を「同じ扱いをされるグループ」に分けて、各グループから代表値を選ぶ考え方です。あらゆる入力を試さなくても、効率よく欠陥を見つけられるとされています。

 

境界値分析は、グループの境目(最小値・最大値の前後)を狙ってテストする技法です。欠陥は境界に集中しやすいとされています。

 

たとえば「年齢を0〜120で受け付ける」入力なら、同値分割では「不正値(負の数)」「正常値(0〜120)」「不正値(121以上)」の3グループに分け、境界値分析では「-1, 0, 1」「119, 120, 121」を試す、という具合です。

 

ブラックボックステストの要点は、同値分割で広く・境界値分析で深くカバーすることにあるとされています。2つの技法は対立ではなく組み合わせて使うのが基本姿勢です。

 

4. V字モデルと工程対応(単体・結合・システム・受入)

工程の流れを示すイメージ

あなたが開発工程の全体像を掴みたいとき、V字モデルはとても見通しのよい地図になります。

 

V字モデルとは、左側に設計工程(要件定義 → 基本設計 → 詳細設計 → 実装)、右側にテスト工程(単体 → 結合 → システム → 受入)を並べ、対応関係をV字型で示した考え方です。設計とテストは鏡合わせの関係と整理できます。

 

設計工程 対応するテスト工程 主な観点
詳細設計 単体テスト 1つの関数・モジュールの正しさ
基本設計 結合テスト 複数モジュール間の連携
要件定義(システム要件) システムテスト システム全体としての動作
要件定義(利用者要件) 受入テスト 利用者から見た受け入れ可否

 

V字モデルが便利なのは、テスト計画を設計段階から逆算できる点にあるとされています。要件定義の時点で「受入テストで何を確かめるか」を意識すると、後工程の手戻りが減る傾向にあります。

 

V字モデルの要点は、設計と同じ粒度のテストを対応させることにあるとされています。設計図がない範囲をテストできないように、テスト計画は設計と一体で組み立てるのが一般的です。

 

→ 設計工程をどう表現するかを押さえたい時は、UMLとモデリングとは で図の使い分けを整理できます。

 

→ テスト工程を含む全体管理の視点は、プロジェクトマネジメントとは でつながりが見えます。反復型開発のテストの位置づけは アジャイル開発とは も参考になります。

 

5. まとめ: 今日からできる、最初の一歩

今日からの一歩を示すイメージ

ここまで読んだあなたは、ソフトウェアテストの輪郭をしっかり押さえられたはずです。要点を3つに整理します。

 

  1. テストは「内部構造を見る白」と「外部仕様を見る黒」の2視点で整理する
  2. 代表技法は網羅基準(白)/ 同値分割・境界値分析(黒)を押さえる
  3. V字モデルで設計工程とテスト工程の対応を地図化する

 

ソフトウェアテストは、基本情報技術者 マネジメント系・ソフトウェアテストの中核テーマです。ホワイト/ブラックの対比とV字モデルは頻出のため、ここを押さえると周辺の品質管理用語も一気に整理しやすくなります。

 

あなたが今日からできる、最初の一歩を3つ用意しました。

 

  1. 用語整理: 「ホワイトボックス」「ブラックボックス」「同値分割」「境界値分析」「V字モデル」を1行メモにまとめる(3分)
  2. 関連記事: UMLとモデリングの記事に進み、設計工程の表現手段を押さえる(5分)
  3. 試験全体俯瞰: 基本情報技術者試験全体概要に戻り、マネジメント系での位置づけを確認(2分)

 

たった10分で、ソフトウェアテストの種類は輪郭のある知識に変わります。完璧に覚えてから動くより、まず関連記事を1本読んでみる。それが、あなたにとっていちばん速い学び方です。

 

次のステップ