ブラックボックステストとは?システムの外部から確認する方法

ざっくりと

  • 外部からの検証
  • プログラム内部を無視したテスト
  • 一般ユーザー視点の検証

ブラックボックステストとは、外部からの検証です。

概要説明

ブラックボックステストとはソフトウェアの外部機能を検証するテストである。なぜならば、内部のプログラムの仕組みを気にせずに、アプリやソフトウェアがちゃんと働くかどうかを確認したいからだ。

例えば、電卓アプリで2と2を入力した時、出力が4と表示されるかを確かめる。そして、ユーザーがどう使うかを主に考える。

つまり、実際の使用感に近いテストである。だから、実際の運用に近い状態での確認ができる。

職業職種

  • ソフトウェアテスター
    ソフトウェアテスターは、ブラックボックステストをよく使う。なぜなら、ソフトウェアの動作を確認する主要な方法だから。例えば、新しいアプリのリリース前の最終確認。
  • 開発者
    開発者も、ブラックボックステストを使うことがある。なぜなら、自分が書いたコードが実際にどう動くかを確かめたいから。例えば、新機能の実装後の確認。
  • 品質保証(QA)スタッフ
    QAスタッフは、製品の品質を保証するためにブラックボックステストを行う。なぜなら、実際のユーザー視点でのテストが必要だから。例えば、ベータ版のテスト時。

ブラックボックステストは、名前の由来はテスト対象の内部機能を「ブラックボックス(中身の不明なもの)」として扱い、その外部の動作だけをテストする方法から来ています。

手順例

以下は、ブラックボックステストの実行手順です。
  1. テスト計画の立案
    最初にどんなテストを行うのか計画を立てる。なぜなら、計画がないと効果的にテストできないから。例えば、何の機能を重点的にテストするのかを決める。
  2. テストケースの設計
    入力と期待される出力のペアを考える。なぜなら、何をテストするのか明確にするため。例えば、ログイン機能ならば、正しいユーザー名とパスワードのペアを考える。
  3. テストデータの準備
    テストケースに基づいて実際に入力するデータを準備する。なぜなら、テストケースだけではテストは実行できないから。例えば、データベースにテスト用のデータを登録する。
  4. テストの実行
    実際にプログラムにテストデータを入力し、結果を確認する。なぜなら、実際の動作を確認することが目的だから。例えば、エラーが出るか、期待通りの結果が得られるかを見る。
  5. テスト結果の評価
    得られた結果が期待したものと一致しているか評価する。なぜなら、バグがないか確認するため。例えば、期待した出力と異なる場合はバグの可能性があると判断する。

類似語

  • 関数テスト
    関数テストは、ブラックボックステストの一種で、特定の機能が期待通りに動作するか確認する。なぜなら、システム全体ではなく、特定の機能だけをテストするから。例えば、ログイン機能のみをテストする。
  • 受け入れテスト
    受け入れテストは、顧客やエンドユーザーが受け入れられる品質が確保されているかを確認する。なぜなら、実際にユーザーが使う状態を想定してテストするから。例えば、完成したアプリをユーザーに試してもらい、問題がないか確認する。
  • シナリオテスト
    シナリオテストは、実際の使用シナリオを元にテストする。なぜなら、実際の操作手順に基づいて複数の機能を組み合わせてテストするから。例えば、商品を検索してカートに入れ、購入までの一連の流れをテストする。

反対語

  • ホワイトボックステスト
    ホワイトボックステストは、プログラムの内部構造やコードを検査する方法である。なぜなら、内部の動きやロジックを詳しく調査して、問題がないか確認するためだ。例えば、コードにバグがないかをチェックする。

会話例

  • ソフトウェア開発の打ち合わせ時
    「今回のアプリ、どんなテスト方法を使う?」
    「ブラックボックステストを中心に行うよ。ユーザーの使う感じを知るためだ。」
  • テスト実施前のミーティングで
    「ブラックボックステストって、具体的に何を見るの?」
    「入力した値と、それに対する出力を確認するんだ。プログラムの中身は気にしないよ。」
  • テスト結果の報告会で
    「ブラックボックステストの結果はどうだった?」
    「大体良好だったけど、いくつかの入力で予想外の出力があったよ。」

注意点

ブラックボックステストを行う時の注意点は、全ての想定される入力に対する出力を検証することである。なぜなら、外部から見たシステムの動作を確認するテストだからだ。

例えば、一般的な入力だけでなく、境界値や異常な入力に対する反応も確認する必要がある。そして、テスト対象の内部の動作は考慮しないので、外部仕様のみを元にテストケースを設計すること。

だから、しっかりとしたテストケースの設計が必要だ。

ブラックボックステストとユーザーアクセプタンステストは、間違えやすいので注意しましょう。

ブラックボックステストは、システムの外部仕様に基づいて入力と出力を確認するものです。

一方、ユーザーアクセプタンステストは、実際のユーザーが使用する環境での動作を検証するものです。

記事を書いてる人

ガラケー時代からWEB開発やってる自宅SE です。

「○○を知りたい!!」「○○が分からない!!」などありましたら、Twitterでもブログでもコメントいただければ、ご期待に添えるように頑張ります!

ネット事件簿チャンネルを運営しているので、YouTubeもぜひ覗いてみてください!!

雨おやじのSNSを覗く!!
IT用語辞典
雨おやじのSNSを覗く!!
ITkagyo

コメント