0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【テスト設計】ブラックボックステストとホワイトボックステスト

Last updated at Posted at 2025-10-23

1. テストとはなにか?

プログラムを特定の条件下で動作させ、「実際の動作」「期待する動作」 を比較すること。

テストの目的は「正しく動くことを確認する」だけでなく、仕様通りに動いているかを検証し、欠陥を早期に発見することにある。


2. テストケースとはなにか?

最小の時間と労力でエラーを発見できるように設計されたテストの単位。
テストケースは次の3つで構成される:

  • 入力:何を与えるか
  • 出力:何を期待するか
  • 手順:どう実行するか

明確なテストケースを作成することで、テストの再現性や網羅性を確保し、属人的な判断を防ぐことができる。


3. テストの種類

種類 対象 特徴
ブラックボックステスト 要件・仕様 内部構造を考慮せず、外部からの入力と出力のみを確認する 利用者視点で機能を検証できるため、ユーザー体験に直結する品質確認が可能
ホワイトボックステスト 内部実装 コードや制御構造を分析し、内部ロジックを確認する 内部の誤動作や見落としを技術者視点で発見できる

4. テストのレベル

レベル 対象 目的
単体テスト 関数・モジュールなど最小単位 部品が正しく動作するか確認 早期にエラーを発見でき、修正コストが低い
統合テスト 結合されたモジュール群 機能間の連携を確認 モジュール間のデータや制御の受け渡しミスを防ぐ
システムテスト 全体のアプリケーション 全体としての品質確認 リリース前に仕様通りに動くかを総合的に評価
受け入れテスト 顧客による検証 システムが要求を満たしているか確認 納品判断の最終段階であり、信頼性を確立する重要な工程

5. ブラックボックステストの手順

  1. 仕様書を分析する
    →どのような動作が期待されているかを理解する
  2. 有効な入力値と無効な入力値を選定する
    →入力の幅を明確化
  3. 入力値ごとの期待出力を決定する
    →正しい結果を定義
  4. テストケースを作成する
    →再現可能な形にまとめる
  5. テストを実施する
    →実際に動作を確認
  6. 実際の出力と期待の出力を比較する
    →結果を検証
  7. 正常に機能しているかを判定する
    →合否を明確化

6. ブラックボックステストのメリットとデメリット

メリット:

  • 有効で効率的なサブセットを選択できる
    →限られたテストで最大効果
  • 投資対効果が高い
    →リソースを効率的に使用

デメリット:

  • 内部のどこをテストできたか不明
    →カバレッジが測定困難
  • 内部ロジックの欠陥を発見できない
    →実装ミスを見逃す可能性

7. ブラックボックステストの代表的な技法

技法 内容 理由
同値クラステスト 同じ結果を返す入力群から代表値を選ぶ 入力の冗長なテストを省き、効率的に網羅できる
境界値テスト 上限・下限・その前後を確認 エラーは境界で発生しやすいため重要
デシジョンテーブルテスト 条件と結果を表形式で整理 複雑な条件分岐を体系的に漏れなくテストできる
ペア構成テスト 変数のすべてのペアを網羅 組み合わせ爆発を防ぎつつ、相互作用の欠陥を発見できる
状態遷移テスト 状態と遷移をモデル化 状態ごとの不正遷移を防止できる
ドメイン分析テスト 上限+1、下限-1、中央値などを選定 入力範囲の正確な扱いを確認できる
ユースケーステスト 実際の利用シナリオで確認 現実的な利用パターンで信頼性を評価できる

8. ホワイトボックステストの手順

  1. 実装を分析する
    →構造・分岐を理解
  2. パスを識別する
    →実行経路を把握
  3. 各パスを実行する入力を選定する
    →再現可能な形にまとめる
  4. テストを実施する
    →実際に動作を確認
  5. 実際の出力と期待出力を比較する
    →結果を検証
  6. 正常に機能しているか判定する
    →合否を明確化

9. ホワイトボックステストのメリットとデメリット

メリット:

  • テストの到達範囲(カバレッジ)を正確に把握できる
  • 内部の誤動作やロジックエラーを発見できる

デメリット:

  • テストケースが膨大になりやすい
  • 入力データに依存する欠陥を見逃す可能性
  • 高いプログラミングスキルが必要

10. ホワイトボックステストの技法

技法 内容
制御フローテスト 分岐処理・条件文の網羅 全ての分岐を確認することで未実行経路を防ぐ
データフローテスト 変数の定義・使用・破棄の流れを確認 変数の誤使用・未初期化エラーを防ぐ
カバレッジ分析 実行率を数値化 テストの達成度を定量的に評価できる

参考資料

はじめて学ぶソフトウェアのテスト技法

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?