ホワイトボックステストとは?4つの網羅条件やブラックボックステストを解説

最終更新日:2024年01月31日
 株式会社ラテラルリンク
監修者
代表取締役 岩井昌弘
ホワイトボックステストとは?4つの網羅条件やブラックボックステストを解説
この記事で解決できるお悩み
  • ホワイトボックステストとは?
  • ブラックボックステストとは?
  • ホワイトボックステストの具体的な方法は?

「ホワイトボックステストは何のテストかわからない...システム開発に必要なの?」とお悩みのシステム開発担当者、必見です。

ホワイトボックステストとは、すべてのプログラムが意図したとおりに動作しているかを確認するためのものです。システムを開発した際に、作り手側のテストとして用いられています。

本記事では、ホワイトボックステスト・ブラックボックステストの概要やホワイトボックステストの4つの網羅条件を解説します。記事を読み終わった頃には、ホワイトボックステストを理解して開発後のシステム確認に役立てられるでしょう。

Webシステム開発にお困りではありませんか?

もしも今現在、

  • どの開発会社に依頼したらいいかわからない
  • APIの利用や管理が適切か不安
  • マッチングサイトを作りたい

上記のようなお困りがありましたら、比較ビズへお気軽にご相談ください。比較ビズでは、複数のシステム開発会社に一括で見積もりができ、相場感や各社の特色を把握したうえで業者を選定できます。見積もりしたからといって、必ずしも契約する必要はありません。まずはお気軽にご利用ください。

Webシステム開発に対応できる業者を一覧から探す

ホワイトボックステストとは内部構造が意図どおりに動作するか確認するもの

ビジネス_建物

ホワイトボックステストは、すべてのプログラムが意図したとおりに動作しているかを確認するためのテストです。プログラムの構造やエンジニアが作成したロジックや制御の流れなどが、正常であるのか検証します。

条件分岐を基準としたテストや例外処理を重視したテストなど、あらゆる事態に対して動作確認が可能です。プログラム上の記載ミスや処理間違いによるエラーがないなど、単純なミスがないか検証します。

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

システム開発におけるテストは大きく分けて2つあります。プログラムが意図したとおりに動くかを確認するホワイトボックステストと、システムの仕様確認を行うブラックボックステストです。

テストの仕様から、ホワイトボックステストは作り手側のテスト、ブラックボックステストはユーザー側のテストといわれています。システム開発には両方の目線でテストする必要があり、両方を組みあわせて効果的なテストを行うことが重要です。

ホワイトボックステストの4つの網羅基準

ビジネス 歯車

ホワイトボックステストには以下の4つの網羅基準があります。各基準の特徴をつかんで最適なテストケースを設計するようにしましょう。

  1. 命令網羅
  2. 判定条件網羅
  3. 条件網羅
  4. 複数条件網羅

1. 命令網羅

命令網羅は、すべての命令が少なくとも1度は実行されるようにテストケースを設計する網羅基準です。条件分岐が含まれる場合には「真」と「偽」の両方のデータを準備して、内部処理が正しく動作することを確認します。

2. 判定条件網羅

判定条件網羅は、すべての判定条件が「真」と「偽」の両方の場合で少なくとも1度は実行される網羅基準です。すべての分岐を網羅できる入力データを準備して、内部処理が正しく動作することを確認します。

3. 条件網羅

条件網羅は、すべての条件式の組みあわせが少なくとも1度は実行される網羅基準です。入力値AとBが1度ずつ「真」と「偽」が試せるような組みあわせをテストします。試験パターンは以下のとおりです。

テストデータ「例1」入力値A入力値B
パターン1
パターン2
テストデータ「例2」入力値A入力値B
パターン3
パターン4
テストデータ「例3」入力値A入力値B
パターン5
パターン6

テストデータ「例1」「例2」「例3」のどのデータを使っても条件網羅の目的は達成できます。

4. 複数条件網羅

複数条件網羅は、想定される条件の組みあわせをすべて網羅する基準です。入力値Aと入力値Bに「真」と「偽」の値が入る場合、以下の4パターンのデータを試します。

試験パターン入力値A入力値B
パターン1
パターン2
パターン3
パターン4

入力値Aと入力値Bの条件の組みあわせすべてを網羅するものが複数条件網羅です。

ホワイトボックステストの手法

ビジネス_パソコン

ホワイトボックステストの手法は、主に「制御フローテスト」と「データフローテスト」の2つです。各手法の特徴を知ることで、制作したプログラムに対し適切なテストを実施できるようになります。

制御フローテスト

制御フローテストは、プログラムの処理経路が網羅的に実行されているかを確認するテストです。制御フローは、1つの処理に対してソフトウェアがどのように動くかをフローチャートにしたものを指します。

入力値や条件を組みあわせたときの処理の流れが、設計図どおりに動作するかの確認が制御フローテストの目的です。プログラムの論理構造をフローチャートにして視覚化し、テストで着目する要素を決め、結果を確認します。

データフローテスト

データフローテストは、プログラムのデータや変数が順番どおりに行われているかを確認する方法です。Aの処理を実行した結果、想定どおりの結果が出力されることを確認します。

データフローとは、プログラム内で使用されるデータや変数処理の流れのことです。データに着目して意図した順序で正しく処理されているか、無駄なデータ処理をされていないかの確認ができます。

ブラックボックステストとは内部構造が正しく動作するか検証するもの

ブラックボックステストは、システムの仕様を満たしているかどうかを確認するテストです。画面表示やメニューボタンなど、ユーザーインタフェースやレイアウトが正しく出力できているかを確認します。

プログラムの内部構造を検証するホワイトボックステストとは異なり、プログラムの内部構造は意識しません。システムが、入力値に対して適切な出力を行うかを検証します。

ブラックボックステストの手法

ブラックボックステストの手法は、主に「同値分割法」と「境界値分析」の2つです。各テストの特徴を知ることで、システムのユーザー満足度を上げられるでしょう。

同値分割法

同値分割法は、正常処理とエラー処理が正しく行われるかを確認する方法です。1カ月に存在する日数の範囲判定を行うプログラムでは「1〜31の値」が正常処理にあたります。「0以下や32以上の値」がエラーと処理されると正解です。

同値分割法を活用することでテストにかける時間を短縮し、効率的に不具合を見つけられます。テストにかける時間が短縮する一方で、イレギュラーな不具合を見逃してしまいやすいため注意が必要です。

境界値分析

境界値分析は、処理と処理の境界となる値を確認する方法です。正常となるパターン値と異常となるパターン値の「上限・下限の両境界」のテストをします。1カ月に存在する日数の範囲判定を行うプログラムでは「0と1」「31と32」を入力するテストです。

境界値分析と同値分割法は、独立してそれぞれで実施されることはほとんどありません。一般的には、同値分割法で正常な値を決定したあとに、その数値の境界が正常かどうかを境界値分析で確認します。

バランスのいいテスト方法がおすすめ

ビジネスイメージ

ホワイトボックステストとブラックボックステストのどちらか一方しか行わないシステムは、ほとんどありません。両テストを組みあわせて、いかに効果的なテストを行うかが重要になります。

両者のメリットを織り交ぜた方法がベスト

ホワイトボックステストとブラックボックステストは両方のメリットを生かし、織り交ぜて行うことが最もバランスのいい方法です。どちらか一方に偏ったテストでは、プログラム開発に必要な最低限の確認は網羅できません。

ホワイトボックステストは、内部構造の理解を前提にテストを行うため時間がかかる傾向があります。ブラックボックステストは、外部からの確認のみで済むため時間はかかりません。工数や工期を考慮して、両方のテストをどこまで行うか検討しましょう。

グレーボックステストはプログラム制作者が対応

グレーボックステストは、内部構造を理解したうえで外部からの機能や仕様を確認する「ブラックボックステスト」を行います。通常のブラックボックステストよりも詳細な確認を行えるため、ホワイトボックステストとブラックボックステストの中間といえるテストです。

グレーボックステストは、内部の構造をよく理解しているプログラム作成者をテスト担当にするとスムーズに行えるでしょう。内部を知らない人間がテストするよりも時間がかかりません。

まとめ

ホワイトボックステストとは、すべてのプログラムが製作者の意図したとおりに動作するかチェックするためのテストです。ホワイトボックステストには「制御フローテスト」と「データフローテスト」の2つの手法があります。

内部を確認するホワイトボックステストに対し、ブラックボックステストはユーザー目線でシステムの仕様を満たしているか確認するテストです。ホワイトボックステストとブラックボックステストを織り交ぜると、最もバランスよくテストできるでしょう。

比較ビズでは、多数のシステム開発会社のなかから気になる業者を無料で比較できます。システム開発でお悩みの方は、ぜひ比較ビズを利用してください。

監修者の一言

システムテストにおける開発者側のテストとしては、機能要件で定義した個々の機能がシステム設計書の通りに実装されているかに着目した単体テスト。それぞれの機能間や他システムとの連携を見る結合テスト、システム全体が業務要件で定義したフロー通りの機能を満たしているかどうかを確認する総合テストといったものがあります。このうち、ホワイトボックステストは、単体テストで用いられる手法の1つです。

これからテストを計画する際には、テストの範囲や、次のテストに進むための完了条件はもとより、連携体制、具体的には、どのレベルの障害が発生した時に、誰に報告をするのか、テスト期間中のミーティングの計画といったことも合わせて決めておきましょう。

 株式会社ラテラルリンク
代表取締役 岩井昌弘
監修者

徳島県出身 名古屋大学情報文化学部卒業。同大学院人間情報学研究科修士課程修了。2006年有限会社ラテラルリンクを設立。名古屋市で、Webシステム開発を中心に、Web構築全般、Web活用支援に従事。クライアントは、中小・零細企業から東証一部上場企業、国立大学まで幅広いニーズに対応。経済産業省認定「スマートSMEサポーター」。

比較ビズ編集部
執筆者
比較ビズ編集部では、BtoB向けに様々な業種の発注に役立つ情報を発信。「発注先の選び方を知りたい」「外注する際の費用相場を知りたい」といった疑問を編集部のメンバーが分かりやすく解説しています。
Webシステム開発にお困りではありませんか?

もしも今現在、

  • どの開発会社に依頼したらいいかわからない
  • APIの利用や管理が適切か不安
  • マッチングサイトを作りたい

上記のようなお困りがありましたら、比較ビズへお気軽にご相談ください。比較ビズでは、複数のシステム開発会社に一括で見積もりができ、相場感や各社の特色を把握したうえで業者を選定できます。見積もりしたからといって、必ずしも契約する必要はありません。まずはお気軽にご利用ください。

Webシステム開発に対応できる業者を一覧から探す