ブラックボックステストとは?内部構造を知らずに動作を検証するテスト手法

システム開発・テクノロジー
ブラックボックステストとは?ざっくりと3行で
  • ソフトウェアの内部構造を見ずに、仕様書に基づいて入力に対して正しい出力が得られるかどうかを検証するテスト手法のこと
  • 「中身がどうなっているか知らなくても、使い方と期待結果が分かれば実施できる」という特性からユーザー視点・仕様書視点でのテストに向いており、QAエンジニアでも実施できる
  • 同義語として「機能テスト」「仕様ベーステスト」があり、対になる概念がホワイトボックステスト(内部構造を知った上でのテスト)だ

【深掘り】これだけ知ってればOK!

ブラックボックステストの代表的な技法:同値分割(入力値を有効・無効なグループに分けて各グループから代表値を1つテストする)・境界値分析(バグが多い境界値を重点的にテストする)・デシジョンテーブル(条件の組み合わせを表にして全パターンを網羅する)・状態遷移テスト(システムの状態変化を図にして全状態・遷移をテストする)。

境界値分析の実例:年齢入力欄が「0〜150」の範囲を受け付けるシステムをテストする場合、境界値分析では-1・0・1・149・150・151という境界付近の値を重点的にテストする。-1と151は無効・0と150は有効として正しく処理されるかを確認することで、バグが発生しやすい境界付近を効率よく検証できる。

ブラックボックステストとホワイトボックステストの使い分け:ブラックボックステストはシステム結合テスト・受け入れテスト・機能テストに向く。ホワイトボックステストは単体テスト・コードカバレッジの向上に向く。両者を組み合わせることで品質の高いテストが実現できる。

ブラックボックステストで特に重要な探索的テスト(Exploratory Testing)という手法がある。テストケースを事前に全て設計せず、テスターが実際に動かしながら探索的にテストを進める手法だ。仕様書では想定されていなかった異常系・エッジケースを発見するのに効果的で、AI・複雑なUIのテストで特に有効だ。

ブラックボックステストの限界として、テストカバレッジを内部コードと紐付けて把握することが難しい点がある。この限界を補うためにホワイトボックステストと組み合わせることで、コードカバレッジと機能カバレッジの両面から品質を担保することが大規模なシステム開発の標準的なアプローチだ。

よくある誤解

ブラックボックステストはコードが読めない人がやるものだと思っている

ブラックボックステストはコードを見ないことが設計上の理由だ。ユーザー視点・仕様視点でのテストに集中することで内部実装に引きずられないテストが実現できる。エンジニアがブラックボックステストを実施することも多い。

境界値だけテストすれば十分だと思っている

境界値分析は効率的な手法だが全てのバグを発見できるわけではない。同値分割・デシジョンテーブル・状態遷移テスト・探索的テストを組み合わせることで多角的なテストが実現できる。

会話での使われ方

ITKAGYO運営者デプロイ太郎のアイコン画像

年齢の入力欄、0と150と151と-1で境界値分析をやりました。151を入力したらエラーが出ないバグが見つかりました。

QAエンジニアが境界値分析でバグを発見した場面。

ITKAGYO運営者デプロイ太郎のアイコン画像

この機能、仕様書ベースでテストケースを設計しているのでブラックボックステストです。コードを見なくてもテストできています。

テストリーダーがテスト設計の方針を説明している場面。

ITKAGYO運営者デプロイ太郎のアイコン画像

仕様書の全パターンをデシジョンテーブルにまとめました。条件の組み合わせが8パターンあるので全部テストケースを作ります。

QAエンジニアがデシジョンテーブルテストの設計を報告している場面。

【まとめ】3つのポイント

  • 仕様書に基づいて入力と出力を検証するユーザー視点のテスト:内部構造を知らなくても仕様書があればテスト設計できるためQAエンジニアが仕様通りに動くかを検証するシステムテスト・受け入れテストに最適だ
  • 同値分割・境界値分析・デシジョンテーブルが代表的な設計技法:全ての入力パターンを網羅することは不可能なため同値クラスから代表値を選ぶ同値分割とバグが集中する境界値に注目する境界値分析を組み合わせることでテストの効率と効果を最大化できる
  • ホワイトボックステストと組み合わせてコードカバレッジと機能カバレッジの両面を担保:ブラックボックスは仕様視点・ホワイトボックスはコード視点でそれぞれ異なる種類のバグを発見するため両者を組み合わせることが高品質なソフトウェア開発の基本だ

よくある質問

Q
ブラックボックステストとホワイトボックステストはどちらが優れていますか?
A

どちらが優れているということはなく、それぞれ異なる目的と強みがあります。ブラックボックスはユーザー視点の仕様確認に、ホワイトボックスはコードの内部ロジック検証に向いています。両者を組み合わせることが効果的です。

Q
境界値分析はどのような場面で使いますか?
A

数値の入力範囲・文字数の制限・日付の有効範囲など有効な値と無効な値の境界が存在する仕様に対して使います。

Q
探索的テストとは何ですか?
A

テストケースを事前に全て設計せず、テスターが実際に動かしながら探索的にテストを進める手法です。仕様書では想定されていなかった異常系やエッジケースの発見に効果的です。

Q
ブラックボックステストはIT試験でも出題されますか?
A

はい。基本情報技術者試験・応用情報技術者試験でブラックボックステスト・同値分割・境界値分析は頻出テーマです。

【出典】参考URL

https://www.ipa.go.jp/shiken/mondai-kaiotu/index.html :IPAソフトウェアテスト関連試験問題
https://jstqb.jp/syllabus.html :JSTQB「ソフトウェアテスト標準用語集」
https://e-words.jp/w/%E3%83%96%E3%83%A9%E3%83%83%E3%82%AF%E3%83%9C%E3%83%83%E3%82%AF%E3%82%B9%E3%83%86%E3%82%B9%E3%83%88.html :IT用語辞典「ブラックボックステスト」

コメント

「IT用語、難しすぎて心が折れそう……」という方のための、ハードル低めな用語辞典です。

情報レベルは「基礎中の基礎」。会話を止めないためのエッセンスだけを抽出しています。分かりやすさを追求するあまり、時々例え話が暴走しているかもしれませんが、そこは「ほどよく」聞き流していただけると幸いです。
ほどよくIT用語辞典システム開発・テクノロジー
デプロイ太郎のSNSを見てみる!!
タイトルとURLをコピーしました