サイバー攻撃

ブラックボックステストとは?実施の注意点や主な技法を解説

Written by WizLANSCOPE編集部

ブラックボックステストとは?実施の注意点や主な技法を解説


AI技術の発展やクラウドサービスの普及などにより、短期間でのシステム開発・リリースがますます増えています。

こうした背景の中で、提供するシステムやサービスが、「仕様通りに動くのか」「ユーザー体験に問題はないか」を確認することが重要になっています。

その代表的な手法の一つが、ブラックボックステストです。

本記事では、ブラックボックステストの特徴や、比較されることの多い「ホワイトボックステスト」との違いなどを解説します。

▼本記事でわかること

  • ブラックボックステストの特徴
  • ブラックボックステストとホワイトボックステストの違い
  • ブラックボックステストでは検出できない不具合

ブラックボックステストの基礎を理解したい方は、ぜひご一読ください。

3分で分かる!
脆弱性診断のご案内

LANSCOPE プロフェッショナルサービスの脆弱性診断でできることをわかりやすく解説!ぴったりの診断を選べるフローチャートもご用意しています。

資料をダウンロードする

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


ブラックボックステストとは、システムの内部構造(コードや処理ロジック)を考慮せず、外部から見た機能や動作が正常かどうかを検証するテスト手法です。

テストの主な目的は、要件や仕様書に記載されている通りに機能が動作しているかを確認することです。

対象範囲は「入力」と「出力」に関する部分のみのため、例えば以下のような挙動を確認します。

  • ユーザーが正しいパスワードを入力した場合、マイページにログインできるか
  • ユーザーが間違ったパスワードを入力した場合、エラーが表示されるか
  • ユーザーがパスワードを入力しなかった場合、エラーが表示されるか

このように、システムの品質をユーザー目線で確認できる点が、ブラックボックステストのメリットです。

ブラックボックステストの特徴


ブラックボックステストには、主に以下のような特徴があります。

  • 対応できるテストレベルが広い
  • ユーザー目線で検証できる
  • 費用対効果が高い

これらの特徴を踏まえ、リリース前にどのテスト手法を採用するか検討する際の参考にしてください。

対応できるテストレベルが広い

ブラックボックステストは、内部構造を確認しなくても、仕様書があれば実施できるテスト手法です。

そのため、以下のような幅広いテストレベルで活用されています。

  • 個々の機能が仕様通りに動作するかを確認する「単体テスト」
  • 複数の機能を組み合わせた際の動作を確認する「結合テスト」
  • システム全体の動作を検証する「システムテスト」
  • ユーザーが実利用を想定して検証する「受け入れテスト」

特にテストの後期段階では、システム全体が複雑になり、内部構造をすべて把握したうえでテストを行うのは容易ではありません。

このような場面においても、ブラックボックステストは有効な手法といえます。

ユーザー目線で検証できる

ブラックボックステストは、開発者の視点ではなく、実際にシステムやサービスを利用するユーザーと同じ立場で動作を確認できる点が特徴です。

ユーザーが入力した内容に対して、正しい結果が返ってくるか、エラーメッセージが適切に表示されるか、操作が直感的で問題なく進められるかなど、実際の利用シーンを想定した検証が可能です。

そのため、機能面だけでなく、使いやすさや操作性に関する問題点を発見しやすいというメリットがあります。

費用対効果が高い

ブラックボックステストは、プログラムのコードや内部ロジックを詳細に把握していなくても実施することが可能です。

そのため、開発者以外のテスターや品質保証担当者でも対応することができます。

つまり、専門的な開発知識を持つ人材が不足していてもテストを進められるため、比較的低コストで効率的に品質確認を行うことが可能です。

また、ユーザー視点で不具合や仕様上の問題を発見しやすいため、実際の運用時に発生するトラブルを事前に防ぐ効果も期待できます。

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


ブラックボックステストと比較されるテスト手法として、ホワイトボックステストが挙げられます。

前述の通り、ブラックボックステストはシステムの内部構造を考慮せず、入力・出力部分に焦点を当て、動作を検証するテスト手法です。

一方でホワイトボックステストは、プログラムの内部構造や処理の流れを理解したうえで実施するテスト手法です。

そのため、開発者やプログラムの構造を理解しているテスト担当者が実施することが多く、コードレベルでの品質確認に適しています。

両者の違いを整理すると、以下の通りです。

ブラックボックステスト ホワイトボックステスト
視点 ・第三者
・ユーザー
・開発者
・技術者
目的 ・要件や仕様書の通りに機能が動作しているかを確認すること ・内部構造を網羅的に検証し、バグや処理ミスを早期に発見すること
特徴 ・開発者以外でも実施可能
・UI/UXも検証可能
・内部ロジックを詳細に検証できる
・網羅性が高く、潜在的なバグを見つけやすい

ブラックボックステストは「外部から見た動作」を確認するために実施し、ホワイトボックステストは「内部の処理や構造」を確認するために実施します。

実際のソフトウェア開発では、これらを組み合わせて実施するケースが一般的です。

両者のテスト手法を活用することで、より高い品質を確保することができます。

グレーボックステストとは

グレーボックステストとは、ブラックボックステストとホワイトボックステストの中間に位置するテスト手法です。

システムの内部構造の一部(アルゴリズムや設計など)を把握したうえで、外部仕様に基づいてテストを実施します。

例えば、データベースの構造やシステムの設計資料、処理の概要などを把握したうえでテストケースを作成し、機能の動作やデータのやり取りを確認します。

このように、ブラックボックステストよりも効率的に問題点を発見しやすく、ホワイトボックステストほど詳細なコード理解を必要としない点が特徴です。

主に結合テストやシステムテストの工程で活用されることが多く、ブラックボックステストとホワイトボックステストの長所をバランスよく取り入れたテスト手法として位置づけられています。

ブラックボックステストの主な技法


ブラックボックステストでは、効率的にバグや問題点を発見するために、さまざまなテスト技法が用いられます。

代表的な技法は、以下の通りです。

同値分割法 ・入力データをいくつかのグループに分類し、各グループから代表値を選んでテストする技法
・すべての数値を試す必要がないため、効率的な検証が可能
境界値分析 ・入力範囲の上限や下限、またその周辺の値を重点的にテストする技法
・不具合が生じやすい境界付近の値を集中的に検証することで、効率的に不具合を発見できる
デシジョンテーブルテスト ・複数の条件と処理の関係を表で整理することで、組み合わせごとの結果を検証する技法
・複雑な条件分岐を整理してテストするため、仕様漏れや条件ミスを発見しやすい
状態遷移テスト ・ユーザーの操作やイベントによって状態がどのように変化するかを整理し、それぞれの遷移が正しく行われるかを検証するテスト技法
・状態が多いシステムやワークフローが複雑なシステムのテストに適している
組み合わせテスト ・複数の入力条件やパラメータの組み合わせを考慮してテストを行う技法
・ペアワイズ法などにより、テストケースを抑えながら、多くの条件パターンを効率的にカバーできる

5つの技法について、それぞれの特徴を詳しく確認していきましょう。

同値分割法

同値分割法(Equivalence Partitioning)とは、入力データをいくつかのグループ(同値クラス)に分類し、それぞれのグループから代表的な値を選んでテストを行う方法です。

同じグループに属するデータは同じ結果になると考え、効率的にテストケースを設計します。

例えば、入力可能な値が「1〜100」の場合、以下のようにグループ分けを行います。

  • 正常な値(1〜100)
  • 異常な値(1未満の値)
  • 異常な値(100を超える値)

分類したグループの中から代表的な値を選んでテストすることで、すべての数値を試す必要がなくなります。

このように、テストケースの数を減らしながら、効率的に検証できる点が同値分割法の特徴です。

境界値分析

境界値分析(Boundary Value Analysis)とは、入力値の「境界付近」で不具合が発生しやすいという考え方に基づいたテスト技法です。

入力範囲の上限や下限、またその周辺の値を重点的にテストします。

例えば、入力可能な値が「1〜100」の場合、次のような値をテスト対象とします。

  • 境界値(1、100)
  • 境界のすぐ内側(2、99)
  • 境界のすぐ外側(0、101)

このように、境界付近の値を集中的に検証することで、不具合を効率的に発見できます。

また、境界値分析は同値分割法で定義した範囲の境界を、より厳密に検証するために使用されることが一般的です。

デシジョンテーブルテスト

デシジョンテーブルテストとは、複数の条件とそれに対応する処理の関係を「表(テーブル)」で整理し、条件の組み合わせごとの結果を検証するテスト技法です。

例えば、「会員かどうか」「購入金額が一定以上かどうか」といった複数の条件がある場合、それぞれの組み合わせに応じた処理(割引の有無など)を表に整理し、テストケースを作成します。

条件/ケース ケース(1) ケース(2) ケース(3) ケース(4)
会員か × ×
購入金額がxx円以上か × ×
割引適用 × ×

複雑な条件分岐を整理してテストできるため、仕様漏れや条件ミスを発見しやすい点が特徴です。

状態遷移テスト

状態遷移テストとは、システムが持つ「状態(ステート)」の変化に着目してテストを行う技法です。

ユーザーの操作やイベントによって状態がどのように変化するかを整理し、それぞれの遷移が正しく行われるかを検証します。

例えば、ログインシステムでは「未ログイン」と「ログイン中」といった状態があります。

ログイン操作を行うと、「未ログイン→ログイン中」に遷移し、ログアウト操作を行うと「ログイン中→未ログイン」に戻ることを確認します。

このように、状態の変化や遷移の正しさを検証できるため、状態が多いシステムやワークフローが複雑なシステムのテストに適しています。

組み合わせテスト

組み合わせテスト(Combinational Testing)とは、複数の入力条件やパラメータの組み合わせを考慮してテストを行う技法です。

機能によっては、複数の設定や条件が組み合わさることで不具合が発生する場合があります。

一方で、すべての組み合わせをテストすると膨大な数になってしまいます。

例えば、ECサイトでログイン状態とログアウト状態で表示される金額が異なるケースを想定します。

この場合、下記の組み合わせすべてを検証しようとすると、12通りのテストが必要になります。

ブラウザ ・Google Chrome
・Safari
・Microsoft Edge
OS ・macOS
・Windows
ログイン状態 ・ログイン状態
・ログアウト状態

そこで、2つの要素の組み合わせを優先してテストする「ペアワイズ法」を活用することで、効率的かつ網羅的にテストケースが作成できます。

このケースの場合、12通りのテストを6通りに絞ることができます。

ケース ブラウザ OS ログイン
ケース(1) Google Chrome macOS あり
ケース(2) Google Chrome Windows なし
ケース(3) Safari macOS あり
ケース(4) Safari Windows なし
ケース(5) Microsoft Edge macOS あり
ケース(6) Microsoft Edge Windows なし

このように、テストケースを抑えながら、多くの条件パターンを効率的にカバーできる点が特徴です。

ブラックボックステストで検出できない不具合・バグ


ブラックボックステストは、システムの内部構造を考慮しないという性質上、検出できない不具合やバグも存在します。

具体的にどのようなものは検出することができないのか確認していきましょう。

潜在的なバグ

潜在的なバグとは、プログラム内部に問題が存在しているものの、通常の操作やテストでは表面化しない不具合のことです。

ブラックボックステストは、入力と出力に関する部分に焦点を当てたテスト手法です。

そのため、仕様書通りの正しい出力が返ってくる場合は、内部ロジックに問題があったとしても不具合として検出できないことがあります。

例えば、「不要な処理が含まれている」「将来的にエラーを引き起こす可能性があるコードが存在する」といった内部構造の問題は、ブラックボックステストでは検出が困難です。

このような問題を検出したい場合は、コードの構造を確認するホワイトボックステストが適しています。

仕様自体の矛盾

ブラックボックステストは、基本的に要件や仕様書をもとにテストケースを作成します。

そのため、仕様書の内容そのものに矛盾や誤りがあった場合は、その問題に気づかないままテストが進んでしまう可能性があります。

例えば、仕様書通りに動作しているにも関わらず、実際の利用シーンでは不便であったり、他の機能と矛盾する挙動になっていたりするケースです。

このような問題は、仕様レビューや設計段階での確認、ユーザーテストなどを通じて発見する必要があります。

非機能的な要件による不具合

ブラックボックステストは主に機能面の動作確認に焦点を当てるテスト手法です。

そのため、性能やセキュリティ、可用性といった「非機能要件」に関する問題は、十分に検証できない場合があります。

例えば以下のような問題は、別のテスト手法での確認が必要です。

  • システムの処理速度が遅い
  • 大量アクセス時にシステムが停止する
  • セキュリティ上の脆弱性がある

このように、ブラックボックステストだけでは検出が難しい不具合やバグが存在します。

そのため、リリース前には検証したい内容や目的に応じて、複数のテスト手法を組み合わせて実施することが重要です。

特にセキュリティ上の問題は、ユーザーの個人情報の漏洩やクレジットカード情報の窃取など、重大な事故につながり、サービスの提供元の責任が問われるリスクが高いです。

検証項目自体に抜け漏れがないようにすることはもちろん、目的に応じて適切なテスト手法が選択することが重要です。

セキュリティリスクの網羅的な把握に「LANSCOPE プロフェッショナルサービス」


ブラックボックステストはユーザー視点での品質確認に有効ですが、セキュリティ上のリスクを網羅的に把握するには、別のアプローチが必要です。

公開前のアプリケーションやネットワーク環境に対しては、第三者の脆弱性診断を組み合わせることで、より実効性の高いリスク対策が可能になります。

そこで本記事では、12,000件以上のサービス提供実績と90%以上のリピート率を誇る「LANSCOPE プロフェッショナルサービス」の「脆弱性診断・セキュリティ診断」を紹介します。

本サービスでは、システムやネットワークなどを対象に調査を行い、セキュリティホールや不正アクセスのリスク、内部不正につながる要因など、さまざまなセキュリティリスクを洗い出します。

例えば、以下のような領域への診断を実施します。

Webアプリケーション脆弱性診断 ・インターネットやローカルネットワークに接続されたサーバー上のWebアプリケーションに対して、設計や開発の不備によるセキュリティ上のリスクを可視化し、発見された脆弱性に対する対策を提案します
ネットワーク診断 ・外部ネットワークからの攻撃および内部ネットワークへのマルウェア感染などを想定し、サーバーやネットワーク機器の脆弱性や設定の不備によるリスクを可視化し、発見された脆弱性に対する対策を提案します
スマートフォンアプリケーション脆弱性診断 ・サーバー上のアプリケーションとスマートフォンにインストールされたアプリケーション両方の視点からセキュリティ上のリスクを可視化し、発見された脆弱性に対する対策を提案します
ゲームセキュリティ診断 ・Webアプリケーションやスマートフォンで提供されるゲームアプリケーションに対し、チート行為によるゲームバランスの崩壊やサービス妨害などのリスクを可視化し、発見された脆弱性に対する対策を提案します
IoT脆弱性診断 ・インターネットやローカルネットワークに接続した IoTシステム(IoTデバイス、スマートフォンアプリケーション、Webアプリケーション、ネットワーク機器など)の各レイヤーに対するセキュリティリスクを可視化し、発見された脆弱性に対する対策を提案します

また、診断結果はレポートして提供され、セキュリティレベルが数値で可視化されるため、専門的な知識がなくても理解しやすい内容となっています。

さらに、発見された脆弱性への具体的な対策や修正提言も掲載されるため、効率的かつ網羅的に改善を進めることが可能です。

「どの診断を選べばいいかわからない」という方に向けて、ぴったりの診断を選べるフローチャート付きの資料もご用意しました。

ほかにも、「まずは簡易的に脆弱性診断を行いたい」というお客様向けに、低コスト・短期で診断が実施できる「セキュリティ健康診断パッケージ」も提供しています。

ぜひ自社にぴったりの診断を選択し、セキュリティリスクの可視化と対策の強化にお役立てください。

関連ページ

セキュリティ健康診断パッケージ|LANSCOPE プロフェッショナルサービス

3分で分かる!
脆弱性診断のご案内

LANSCOPE プロフェッショナルサービスの脆弱性診断でできることをわかりやすく解説!ぴったりの診断を選べるフローチャートもご用意しています。

資料をダウンロードする

まとめ

本記事では「ブラックボックステスト」をテーマに、その特徴やホワイトボックステストとの違い、主な技法などを解説しました。

本記事のまとめ

  • ブラックボックステストとは、システムの内部構造(コードや処理ロジック)を考慮せず、外部から見た機能や動作が正常かどうかを検証するテスト手法
  • ブラックボックステストには、「対応できるテストレベルが広い」「ユーザー視点で検証できる」「費用対効果が高い」といった特徴がある
  • ブラックボックステストは「外部から見た動作」を確認するテストであるのに対し、ホワイトボックステストは「内部の処理や構造」を確認するテストという違いがある
  • ブラックボックステストでは、「潜在的なバグ」「仕様自体の矛盾」「非機能的な要件による不具合」などは検出できないため、検証したい内容や目的に応じて別のテスト手法を組み合わせる必要がある

ブラックボックステストは、ユーザー目線で品質を確認できる有効な手法であり、費用対効果も高いというメリットがあります。

一方で、潜在的なバグや仕様自体の矛盾など、内部構造に関するバグは検出が難しいという側面もあります。

そのため、ホワイトボックステストや非機能テストなどと組み合わせて実施し、総合的に品質を高めることが重要です。

LANSCOPE プロフェッショナルサービスの脆弱性診断では、ブラックボックステストだけでは把握が難しいセキュリティリスクを網羅的に洗い出し、具体的な対策までを提案します。

より実効性の高いリスク対策を検討している企業・組織の方は、ぜひLANSCOPE プロフェッショナルサービスの「脆弱性診断・セキュリティ診断」をご検討ください。

3分で分かる!
脆弱性診断のご案内

LANSCOPE プロフェッショナルサービスの脆弱性診断でできることをわかりやすく解説!ぴったりの診断を選べるフローチャートもご用意しています。

資料をダウンロードする