BUSINESS TIPS発注担当者の方へ、発注成功の為のお役立ち情報

ブラックボックステストとは?特徴・技法・発見しづらい不具合まで徹底解説

目次

ブラックボックステストとは?特徴・技法・発見しづらい不具合まで徹底解説

システム開発を委託する際、テスト方法について記載されていても、基本的な知識がなければ理解が難しいかもしれません。基礎知識を習得することで、「品質はどの程度担保されるのか」「信用できる開発会社か」など比較検討の判断材料として活用できるでしょう。

そこで今回はブラックボックステストについて、特徴や技法を解説します。ホワイトボックステストとの違い、ブラックボックステストでは発見しにくい不具合なども解説するので、ぜひ参考にしてみてください。

システムテストの依頼先探しなら リカイゼン にお任せください!

システムテスト実績を多数持つ会社の中から、ご要望に合う会社を厳選して 無料 でご紹介します。企画段階からのご相談も受付中!気軽に相談できるプロをご紹介いたします。

お電話でのご相談は03-6427-5422
受付時間:平日10:00~18:00

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

ブラックボックステストとは、入力・出力の結果のみにフォーカスして行うテストです。システムの内部構造を考慮しないため、ブラックボックス(中身が見えない)といわれています。次項では、ブラックボックステストの特徴とホワイトボックステストとの違いについて見ていきましょう。

内部構造を意識せず、正しく動作するかを検証するテスト

ブラックボックステストは、システムの内部構造(処理内容・方法)を意識せず、正しく動作しているか検証するためのテストです。たとえば、在庫管理を行うシステムの場合、商品IDを入力・検索し、意図した出力結果(商品名や在庫数など)が表示されればテストクリアとなります。

UI/UXの観点からもテストが実施されるため、ユーザーと同じ手順で操作し、問題なく動作しているかも検証します。

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

ブラックボックステスト・ホワイトボックステストの特徴から、それぞれの違いを見ていきましょう。

項目ブラックボックステストホワイトボックステスト
テストの対象システムの動作(振る舞い)システムの構造や処理内容
テストの視点ユーザー開発者
テスト実施者ソフトウェアの知識がある人開発者
チェックされるポイント入力に対する出力結果内部構造(ソースコードや詳細設計)
【ブラックボックステスト・ホワイトボックステストとの違い】

ブラックボックステストは、入力に対する出力結果が仕様通りかチェックするテストです。一方、ホワイトボックステストは、開発者視点で内部構造にフォーカスしてテストを行います。それぞれのテストを実施することで、システムの不具合を多角的な視点から発見し、品質向上につながります。

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

ここでは、ブラックボックステストのメリットを3つご紹介します。

システムテストの依頼先探しなら リカイゼン にお任せください!

システムテスト実績を多数持つ会社の中から、ご要望に合う会社を厳選して 無料 でご紹介します。企画段階からのご相談も受付中!気軽に相談できるプロをご紹介いたします。

お電話でのご相談は03-6427-5422
受付時間:平日10:00~18:00

ユーザー視点での検証ができる

ブラックボックステストは、出力される数字やレイアウト、操作画面なども確認できるため、ユーザー視点での検証が可能です。ボタンの配置や画面遷移など、システムの利便性も検証することで、製品としての品質・顧客満足度の向上に期待できます。

コードの知識がなくても実施できる

ブラックボックステストは、プログラミング(ソースコード)の知識を持たない人でも実施できます。あくまでも仕様通りの動作をするか確認・検証を行うテストであるため、技術的なハードルを考慮する必要がありません。仕様書をもとにテスト項目を洗い出す作業は必要ですが、テスト実施へのハードルが低いのはブラックボックステストならではのメリットです。

費用対効果が高い

ブラックボックステストはテスト対象が限定的なので、余計なリソースを省きつつ、効率的なテストを実施できます。ブラックボックステストの対象はシステムの動作(振る舞い)であり、前述したとおり技術的な知識・スキルは求められません。

テストケースの設計期間を短縮できるほか、テスト実施の外部委託も可能です。開発者のリソースを最小限に抑えられるため、費用対効果の高いテストを実施できるでしょう。

ブラックボックステストの主な手法と手順

ここからは、ブラックボックステストの主な手法と実施手順を解説します。

システムテストの依頼先探しなら リカイゼン にお任せください!

システムテスト実績を多数持つ会社の中から、ご要望に合う会社を厳選して 無料 でご紹介します。企画段階からのご相談も受付中!気軽に相談できるプロをご紹介いたします。

お電話でのご相談は03-6427-5422
受付時間:平日10:00~18:00

同値分割法

同値分割法とは、同じ条件で動作するテストケースをクラス分けし、最小限の工数でテストを実施する方法です。同じ出力結果となる入力値をひとつのクラス(同値クラス)として仕分けることで、すべての入力値をテストする必要がなくなり、工数を削減できます。

<同値分割法の手順>
  1. 異なる入力値で同等の出力結果となる値を仕分け、ひとつのクラス(同値クラス)とする
  2. 各同値クラスの代表値を決める
  3. 代表値に従ってテストケースを設計する

上記の手順により、多くのテストケースを数件程度に抑えられます。

境界値分析

境界値分析は、同値分割法でクラス分けしたテストケースの境界値を用いてテストを行う手法です。

<境界値分析の手順>
  1. 同値クラスを定義する
  2. 各同値クラスの境界値を設定する
  3. 境界値をもとに、テストケースを設計する

たとえば、「1以上11未満」の条件式がある場合、最小の境界値は1、最大の境界値は10です。この境界値を用いてテストを行うことで、不具合が発生しやすいとされる境界値付近での不具合発見につながります。

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

デシジョンテーブルテストは、入力条件と出力(動作)結果を表として整理し、テスト漏れを防ぐ手法です。

<デシジョンテーブルテストの手順>>/dt>
  1. システムの条件を洗い出す
  2. 条件後の動作を洗い出す
  3. 条件のパターン(組み合わせ)を洗い出す
  4. パターン別の動作を指定する
  5. 作成したテーブルに矛盾や重複がないか確認する

デシジョンテーブルテストのイメージは、以下のとおりです。1~10の整数を入力したときのみ、その数字が表示されるケースを例に見ていきましょう。

1234
条件
1~10の整数YNNN
1未満NYNN
11以上NNYM
動作
数字の出力X---
エラー表示-XXX
【デシジョンテーブルテストのイメージ】

数字の1~4は条件のパターン、条件の真偽をY・N、動作をXとして記載します。上記のようなテーブルを作成することで、テスト時の条件・検出漏れを防ぎやすくなります。

状態遷移テスト

状態遷移テストとは、システムの状態遷移によって不具合発生のリスクを確認するテストです。規模が大きく複雑化したシステムは、動作の流れがイメージしにくく、テスト設計時のミスにつながります。網羅的なテスト設計を行えるよう、全体の状態遷移を図・表として視覚化する手法が状態遷移テストです。

<状態遷移テストの手順>
  1. 遷移する状態とトリガーとなるイベントを洗い出す
  2. 状態・イベントをもとに、遷移モデル(図もしくは表)を作成する
  3. 遷移モデルをもとにテストケースを設計する

状態遷移モデルをもとにテストケースを設計することで、ユーザーがアクションを起こした際の不具合の発見・防止につながります。

組み合わせテスト

組み合わせテストとは、複数の条件を組み合わせて実行した際の不具合・バグを検出するためのテストです。組み合わせテストでは、条件を因子、条件別のパターンを水準と呼びます。

<組み合わせテストの手順>
  1. 考えられる因子を洗い出す
  2. 因子別に水準を洗い出す
  3. 理論上ありえない組み合わせを除外する
  4. 因子・水準をもとに、テストパターンを表で可視化する
  5. 完成した表をもとに、テストケースを設計する

たとえば、因子をOS・ブラウザ・言語とした場合、水準はWindowsやChrome、日本語などです。システム稼働における因子・水準を洗い出すことで、あらゆる条件での稼働状況に応じた不具合の発見につながります。

ブラックボックステストで不具合を検出できないケース

ここでは、ブラックボックステストで不具合を検出できないケースを3つご紹介します。

システムテストの依頼先探しなら リカイゼン にお任せください!

システムテスト実績を多数持つ会社の中から、ご要望に合う会社を厳選して 無料 でご紹介します。企画段階からのご相談も受付中!気軽に相談できるプロをご紹介いたします。

お電話でのご相談は03-6427-5422
受付時間:平日10:00~18:00

要求仕様に矛盾や欠落がある場合

ブラックボックステストは、仕様書をもとにテストケースを設計するため、要求仕様に矛盾・欠落があれば不具合を検出できません。ブラックボックステストは、入出力の結果にフォーカスしたテスト方法です。

仕様書に記載の入力・出力が間違っていれば、実際のテスト結果が正しいかどうかを判断できません。仕様書のレビューや第三者によるチェックなど、事前に矛盾・欠落がないか確認する必要があります。

仕様変更が反映されていない場合

仕様変更が反映されていない場合、ブラックボックステストでは不具合を検出できません。前述したとおり、ブラックボックステストは仕様書をもとに実施します。変更があったとしても、テスト結果が正しければ異常とみなされません。そのため、ホワイトボックステストも併用して行い、システム内外の問題点を発見することが大切です。

システム内部に起因している場合

ブラックボックステストはユーザー視点で実施するテストであり、システム内部の要因による不具合は検出できません。たとえば、内部処理が想定通りに動いていないにもかかわらず、画面処理などが要因で出力結果のみが正しい場合、テスト結果は良好とみなされます。そのため、ホワイトボックステストとの併用で、テスト品質の向上を狙うことが大切です。

ブラックボックステストとホワイトボックステストを使い分けることが重要

ブラックボックステストは入出力の結果、ホワイトボックステストは内部構造のチェック、それぞれ目的が異なるため、正しく使い分けることが重要です。どちらかに偏ったテストでは、システムを網羅的にチェックできず、致命的な不具合が残されるかもしれません。双方のメリットと開発工期を考慮しつつ、どちらのテストをどのレベルまで実施すべきか検討しましょう。

まとめ

ブラックボックステストは内部構造を考慮せず、入出力の結果のみにフォーカスしたテスト方法です。ユーザー視点で不具合をチェックできるため、ユーザビリティの向上に役立てられています。

ただし、ブラックボックステストでは、すべての不具合をチェックできません。ホワイトボックステストも併用しつつ、網羅的にシステムを確認し、不具合を検出することが重要です。システム開発を委託する際は、テスト手法も確認し、納品物の品質が担保される開発会社を選びましょう。

ソフトウェア・業務システム開発依頼先探しなら、
リカイゼンにおまかせください!

相談するだけ!プロがあなたにぴったりの会社をご紹介いたします!

かんたん3ステップ
お急ぎの方はお電話で 03-6427-5422
※サポートデスク直通番号
受付時間:平日10:00〜18:00

ソフトウェア・業務システム開発依頼先探しでこんなお悩みはありませんか?

お悩み
  • 会社の選び方がわからない
  • 何社も問い合わせるのが面倒くさい
  • そもそも依頼方法がわからない
  • 予算内で対応できる会社を見つけたい

発注サポート経験豊富な専任スタッフが
あなたのご要望をお聞きし、最適な会社をご紹介いたします!
ご相談から会社のご紹介まで全て無料でご利用いただけます。
お気軽にご相談ください!

ソフトウェア・業務システム開発
依頼先探しなら
リカイゼンにおまかせください!

相談するだけ!プロがあなたにぴったりの会社を無料でご紹介いたします!

サポートデスク

まずはご質問・ご相談なども歓迎!
お気軽にご連絡ください。

この記事の監修
リカイゼン サポートデスク 
吉田・新町
BtoBマッチングサービスであるリカイゼンにおいて、発注企業からのご相談のヒアリング、企業選定のフォローなどを行う部門の担当です。出展企業であるシステム開発やWEB制作、クリエイティブ制作会社ともコミュニケーションを取りながら、年間数百件の受発注のサポートを行っています。

ソフトウェア・業務システム開発の関連記事

負荷テストとは?目的・種類・実施手順とおすすめツールを解説

負荷テストとは?目的・種類・実施手順とおすすめツールを解説

Webシステムやアプリを利用するユーザーが増える場合、多くのアクセスでもシステムを耐えられるようにする必要があります。そこで、システムのパフォーマンスを事前に検証し、トラブルを未然に防ぐために重要なのが「負荷テスト」です。 ...

ノーコード開発とは? メリットやデメリット、ツールの選び方を解説

ノーコード開発とは? メリットやデメリット、ツールの選び方を解説

近年、プログラミングの知識がなくても、アプリやWebサービスを開発できる「ノーコード開発」が注目を集めています。IT人材の不足や開発コストの高騰が課題となるなか、専門スキルをもたなくてもシステムを構築できるノーコードは、多く...

プログラミングの開発環境とは?初心者からプロまで使えるおすすめ7選を紹介

プログラミングの開発環境とは?初心者からプロまで使えるおすすめ7選を紹介

プログラミングの開発環境とは、パソコンやキーボード、使用するソフトウェアなど、開発に用いられる各種ツールを指します。適切な環境を構築するには、判断基準となる基本的な知識が欠かせません。 そこで今回は、プログラミングの開発環境...

情報セキュリティの3要素とは?定義や重要性、実施方法について解説

情報セキュリティの3要素とは?定義や重要性、実施方法について解説

情報セキュリティの3要素をご存じでしょうか?「機密性」(Confidentiality)、「完全性」(Integrity)、「可用性」(Availability)という3つの要素について考えることで、どうすれば情報セキュリテ...

予約管理システムとは?導入するメリットや機能、選び方について解説

予約管理システムとは?導入するメリットや機能、選び方について解説

ホテルや美容院、飲食店などで予約管理システムを利用できれば、利用者が便利になるだけでなく、企業側も業務効率の改善や生産性の向上につながるので、多くのメリットを得られます。 この記事では、予約管理システムの基本情報や導入するメ...

記事を探す

キーワードで探す

カテゴリーで探す