本文へ移動

ぶらっくぼっくすてすと

ブラックボックステスト

Black-box test = 内部構造を考慮しないテスト

プログラムの内部構造を意識せず、入力と出力のみに着目して仕様通りに動作するかを確認するテスト手法です。

詳しい説明

1. 定義

ブラックボックステストとは、プログラムの内部構造(ソースコードや設計の細部)を知らない状態で、外部から入力を行い、期待通りの出力が得られるかを検証するテストです。

このテストでは、ソフトウェアが仕様書通りに機能しているかに焦点を当てます。内部がどのように作られているかは関知せず、あくまで利用者視点で「入力に対して正しい結果が返るか」を確認するものです。

2. 仕組みと種類

主な手法として、同値分割法や境界値分析があります。同値分割法は、入力データを有効な範囲と無効な範囲にグループ分けし、代表的な値でテストします。境界値分析は、範囲の境目となる値(ギリギリの値)が正しく処理されるかを重点的に確認します。

他にも、原因結果グラフやデシジョンテーブルを用いて、複雑な条件の組み合わせを網羅的にテストする手法もあります。これらは仕様書から期待される動作を導き出し、それに従ってテストケースを作成します。

3. 試験ごとの視点

ITパスポート試験では、システム開発におけるテスト工程の役割として問われます。完成したシステムが仕様を満たしているかを確認する「受入れテスト」として利用されるのが一般的です。

基本情報技術者試験では、テスト設計手法(同値分割、境界値分析)の具体的内容が頻出します。ホワイトボックステストとの対比で、入力と出力に注目するという目的と、テスト設計の論理的な手法が問われます。

4. 紛らわしい語との違い

ホワイトボックステストは、内部構造を見てテストします。ブラックボックスは内部を見ず、入力と出力の結果のみを検証します。開発者が行う単体テストはホワイトボックスが多く、仕様に基づく結合テストやシステムテストはブラックボックスが中心です。

グレーボックステストは、内部構造の一部を考慮して行うテストです。ブラックボックスとホワイトボックスの中間に位置し、内部の仕様を知った上で、入力に対する出力を検証する際に用いられます。

5. 身近な例

電卓アプリのテストを例にすると、足し算ボタンを押すときにコードの中身は見ません。「1+1」を入力して「2」と表示されるかを試します。これがブラックボックステストです。

また、通販サイトのログイン機能では、正しいIDとパスワードを入力したらログインでき、間違ったパスワードならエラーになるかを確認します。内部のプログラムがどう動いているかは気にせず、画面の挙動だけを検証します。

試験で問われること

ITパスポート試験

  • 内部構造を意識せず、仕様通りに動くかを確認するテストであることを押さえる。
  • システムテストや受入れテストで主に用いられることを理解する。
  • 利用者視点のテストであることを把握する。

基本情報技術者試験

  • 同値分割法、境界値分析、デシジョンテーブルなどの手法を理解する。
  • ホワイトボックステストとの目的と観点の違いを明確にする。
  • 網羅基準(条件網羅やパス網羅)がホワイトボックスの手法であることを押さえる。