WRブログ

ブラックボックステスト~概要、技法、テスト観点について~

ブラックボックステスト~概要、技法、テスト観点について~

ソフトウェア開発において、製品の品質を左右するテスト。
その中でも「ブラックボックステスト」とは、どのようなものなのでしょうか?
ここでは、実際の例を交えてブラックボックステストについてご紹介します。
■「テスト」には、さまざまな種類がある
ソフトウェア開発でのテストには、各工程に合わせてさまざまな種類があります。
プログラムのモジュール単位でのテストを「単体テスト」、それらを組み合わせて行うテストを「結合テスト」、組み合わせたプログラムをひとつの機能としてテストする「機能テスト」、
プログラムが仕様通りに動くかを検証するための「システムテスト」、システムを発注して納品されたときに行う「受け入れテスト」、その中にもさらに細かいテストがあります。
そのため、製品開発以上の時間をかけてテストを行うこともあります。
■外部から見た機能を検証する「ブラックボックステスト」とは
ブラックボックステストとは、システムの内部構造は考慮せず、仕様を満たしているかどうかのみを検証するテスト技法のことを指し、主に複数のプログラムが組み合わさった、機能テストやシステムテストで使われます。

例えば、店舗の検索システムをテストする場合、店舗名やIDを入力し、必要な値をデータベースから引き出す必要があります。
このとき、内部でプログラムがどのような処理をしているのかは考えず、欲しい値が出力できているかのみを確認するのがブラックボックステストです。


black_box

■「同値分割法」と「境界値分析」
次に、ブラックボックステストを行うときに重要な「同値分割法」と「境界値分析」について解説します。

同値分割法とは、「有効同値(正常処理ができる値)」と「無効同値(エラーとなることが期待される値)」を使って、それぞれ正常処理とエラー処理をテストする方法です。
このとき、例えば、0〜100歳までの顧客データから20〜29歳までをメインターゲットと判定するプログラムの場合、
−5歳(無効同値)、10歳(有効同値)、25歳(有効同値)、65歳(有効同値)、150歳(無効同値)といった値をテストデータにして、テストを行います。

black_box02

境界値分析とは、有効同値と無効同値を組み合わせるなどして、処理と処理の境界となる値(境界値)をテストする手法です。
例えば、0〜100歳までの顧客データから20〜29歳までをメインターゲットと判定するプログラムの場合、
−1歳、0歳、19歳、20歳、29歳、30歳、100歳、101歳のデータを使ってテストを行います。

black_box03

今回は整数のデータを使って説明しましたが、これに小数点が発生する場合、さらに境界値を「19.9と20.0」とするか、四捨五入をするかどうか…など、複雑になってくるため、事前に仕様の確認や、認識のズレを取り除いておくことが重要になります。

★まとめ
★1.テストには、各工程に合わせてさまざまな種類がある

★2.ブラックボックステストとは、システムの内部構造は考慮せず、仕様を満たしているかどうかのみを検証するテスト技法のこと

★3.ブラックボックステストは、「同値分割法」と「境界値分析」を使って行う

ブラックボックステストについて理解を深めることができましたか?ソフトウェア開発において、製品の質はお客様の信頼に直結します。
そのため、時間をかけて、さまざまなテスト行うことが重要です。今回ご紹介したブラックボックステストとは反対に、システムの内部構造をテストする「ホワイトボックステスト」というものも存在します。


【参考文献】:
『ソフトウェアテスト教科書 JSTQB Foundation 第3版』

【参考URL】:
http://qiita.com/ktarow/items/8c3d94d6c21a0c86b799,(参照 2016年7月30日)