COLUMN
コラム
Column 14

ブラックボックステストの特徴とテスト技法について

ソフトウエア開発において、不具合を見落とさずに、効率よくテストするために、様々なテスト技法が用いられます。テスト技法のなかで「ブラックボックステスト」はシステムを利用する立場に立ったテストと言われます。
今回はブラックボックステストの特徴や、テスト手法について紹介させていただきます。

1. ブラックボックステストとは

ブラックボックステストとは、仕様書からテストすべき項目を洗い出し、システムの内部構造を考慮せずに実施するテスト技法です。
テスト対象を「中の見えない箱」として捉え、ブラックボックスと呼ばれています。
具体的には、テスト対象に対して入力を与えた場合に、どのような出力がされるかを確認します。

ブラックボックステストとホワイトボックステスト

プログラムを実際に実行して結果を確認するテストは「ブラックボックステスト」と「ホワイトボックステスト」に分類されます。
「ブラックボックステスト」と「ホワイトボックステスト」は以下のような特徴があります。

ブラックボックステスト 仕様を満たしているか 利用者側の視点でテスト
ホワイトボックステスト 内部構造が正しいか 作り手側の視点でテスト

システム開発では、それぞれの性質を理解した上で適切にテストすることが重要です。

ブラックボックステストのメリット

費用対効果が高い

開発に関わっていない第三者でも実行可能です。
テストにかけるコストに対して最大限の効果を得ることができます。

ユーザーの立場に立った検証

入出力のみに注目するブラックボックステストは、ユーザー視点で行われるテストと言えます。
ブラックボックステストは使いやすさも検証します。
仕様を満たしていることに加え、使いやすいものであれば、ユーザーの満足度は高いものになります。

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

入出力のみ確認するため、誤って処理された場合も、結果が正しく出ていれば不具合を検出することができない場合があります。

ブラックボックステストでカバーできない部分をホワイトボックステストで補います。
ホワイトボックステストでは内部構造を考慮したテストを行うため、ブラックボックステストで検出できない不具合を見つけることができます。
ソフトウエアテストでは、ブラックボックステストとホワイトボックステストを組み合わせることで、不具合を検出し品質を上げることが重要です。

2. ブラックボックステスト技法

ブラックボックステストでは、確認する条件や入出力値の洗い出し、膨大なテスト項目を効率的に絞り込みをするためにさまざまなテスト技法を利用します。
代表的なブラックボックステスト技法について、それぞれの特徴を説明します。

網羅型

テスト対象とするシステムの動作や条件を整理する際に使用するテスト技法です。

デシジョンテーブル

デシジョンテーブルは決定表とも呼ばれ、条件(入力)に対して、プログラムがどのように動作(出力)されるか表形式でまとめたものです。
複雑な論理関係を把握するのに役立ちます。

状態遷移テスト

システムの全体像を状態とイベントに分けて、その因果関係を図表でまとめたものです。
ユーザーの実際のシステム利用状況を整理できます。

削減・標的型

ソフトウエアは、入力値や条件によって処理方法が決まりますが、その組み合わせは膨大になるため、全ての条件をテストすることは出来ません。
効果的にテストを行うため削減・標的型のテスト技法が用いられます。

同値分割法

同じ動作をする条件の集まりをクラス分けしてテストを行います。
膨大な入力値をクラス分けすることで、効率よく不具合を発見する手法です。

境界値分析

同値分割でクラス分けした結果を使用して、バグが潜みやすい「境界」に対してテストを行います。
同値分割と境界値分析を組み合わせることで効果的なテストが行えます。

テスト技法の特徴を把握しておくことで、検証対象やテスト工程によって最適なテスト技法を選択することができ、効果的なテストができます。

3. まとめ

今回は、ブラックボックステストの特徴とテスト技法について紹介しました。
ブラックボックステストを開発者でない第三者がテストした場合、多角的な視点でテストすることで、品質向上に繋がります。
また、「ユーザーが見やすいか」「使いやすいか」というユーザーインターフェース(UI)、ユーザーエクスペリエンス(UX)もブラックボックステストで確認します。
ユーザーにとって快適なシステムとするために、ブラックボックステストは重要な役割を果たしています。

ページトップへ戻る