発注ラウンジTOP>WEBシステム>ホワイトボックステストとブラックボックステスト、どっちが必要?

ホワイトボックステストとブラックボックステスト、どっちが必要?

Xのアイコン

システム開発におけるテストは、大きく分けて二つあります。
システムの仕様確認を行う「ブラックボックステスト」と、プログラムが想定通りに動いているかを確認する「ホワイトボックステスト」です。
ブラックボックステストは利用者側に立ったテストであるのに対し、ホワイトボックステストは作り手側の視点に立ったテストといえます。
今回は、ホワイトボックステストとブラックボックステストの違いや手法、プログラムに最適なテストについてご紹介します。

 

目次

 

初めてプロジェクト担当者になった方向け
プロが教える「IT基礎知識・用語集」プレゼント

システム開発「はじめの一歩」ITのプロから学ぶ基礎知識

この資料でわかること
・システム開発の流れ
・専門用語の解説
・開発手法によるメリット・デメリット
・失敗を防ぐコツ

 

ホワイトボックステストでは何ができる?

プログラム内部のテストをホワイトボックステスト、プログラム外部のテストをブラックボックステストといいます。まずは、ホワイトボックステストについて、どのようなテストなのかを解説します。

 

●ホワイトボックステストとは?

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

 

●ホワイトボックステストの特徴

ホワイトボックステストは網羅的なテストのため、条件分岐を基準としたテストや例外処理を重視したテストなど、あらゆる事態に対して動作確認を行えます。バグと呼ばれるプログラム上の記載ミスや処理間違いによるエラーがないかなど、単純なミスがないかを検証します。
何をどのようにテストするかというテスト項目は、動作の分岐条件やエラー時における画面表示のメッセージ設定など、プログラム内部の情報について詳細に記載されている詳細設計書を基に作成されます。
また、プログラム作成者の意図と照らし合わせて確認するため、詳細設計書の作成者が間違っている場合は、ホワイトボックステストで対処することができません。

 

ブラックボックステストでは何ができる?

次にブラックボックステストについて解説します。ブラックボックステストは、プログラムの構造など内部を考慮せずに、外部から網羅的にチェックする手法です。

 

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

ブラックボックステストは、システム自体の仕様を満たしているかどうかを確認する機能のテストです。画面表示などユーザーインタフェースの不具合やレイアウト崩れなど、正しい出力ができているかを確認するため、「ユーザー側のテスト」といわれています。

 

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

ブラックボックステストでは内部構造や情報の処理方法などを考慮しないため、プログラムが内部でどのような動きをしているのかわかりません。そのため、情報の処理前と処理後の値の変化や、画面の状態といったインプット・アウトプットの結果のみを確認することで検証を行います。
ブラックボックステストで行うのは、性能の確認だけではありません。使用上の不便さや判断しやすいデザインかどうかなど、ユーザーの目に見える範囲のテストを行うことからUI・UXの観点での確認も含んでいます。

 

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

ホワイトボックステストとブラックボックステストでは、効率良くテストを行うため、それぞれテスト手法が異なります。双方で使われる具体的なテスト手法についてご紹介します。

 

●ホワイトボックステストで使われる方法

<制御フローテスト>

プログラムの処理経路が、網羅的に実行されているかを確認する方法です。条件判定と呼ばれる処理の分岐がある場合、すべての処理経路を通過させる必要があります。一つでも処理経路の実行が確認されないと、プログラムが正常に動作しているかを判断できなくなるため、条件に合わせたテストデータを用意する必要があります。

<データフローテスト>

プログラムのデータや変数が、順番通りに行われているかを確認する方法です。プログラムでは渡された値について変換したり、ほかの文字を付加したりといった加工を行う場合があります。そのため、データフローテストでは、ある処理について実行された結果、想定通りの値が返却されることを確認します。例えば、簡単な足し算を行うプログラムでは、「1+1」の結果が「2」と画面に正しく表示されれば合格です。

 

●ブラックボックステストで使われる方法

<同値分割法>

正常処理とエラー処理が正しく行われるかどうかを確認する方法です。例えば、一年間に存在する月について範囲判定を行うプログラムでは、1~12の値が正常処理に当たります。0以下や13以上の値がエラーと処理されれば正解ということです。

<境界値分析>

処理と処理の境界となる値を確認する方法です。正常となるパターン値と異常となるパターン値を上限下限の両境界についてテストします。

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

 

バランスの良いテストを行う方法

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

 

●グレーボックステスト

グレーボックステストは、内部構造を理解した上で外部からの機能や仕様を確認するブラックボックステストを行うことを指します。通常のブラックボックステストよりも詳細な確認を行えるため、ホワイトボックステストとブラックボックステストの中間といえます。
グレーボックステストを行う際は、多くの場合、内部の構造についてよく理解しているプログラム作成者をテスト実施者にします。プログラム作成者をテスト担当にすると、内部を知らない他者が実施するよりも時間がかからず、スムーズにテストを行えるためです。

 

●両方のメリットを織り交ぜるのが最適

ホワイトボックステストとブラックボックステストは両方のメリットを生かし、織り交ぜて行うのが最もバランスが良い方法といえます。
ホワイトボックステストは内部の確認なので、デグレーションチェックまでは網羅できません。また、内部構造について理解していることを前提にテストを行うため、プログラムの規模が大きくなればなるほど理解するまでに時間がかかり、その分コストが増大します。
一方、ブラックボックステストは、外部からの確認のみで済むため、理解するのに時間はかかりません。ただし、内部についての詳細な確認はできないため、潜在的なバグを検知しきれない可能性があります。

ホワイトボックステストかブラックボックステストか、どちらか一方に偏ったテストでは、プログラム開発に必要な最低限の確認を網羅できません。工数や工期などを考慮して、どちらのテストをどこまでやるかを検討しましょう。

 

プログラムにとって最適なテストを行うのに必要なこと

プログラム開発におけるテストは、内部と外部の双方からチェックをするのが前提です。
クライアントの要件を満たしているかを確認するためには、内部もしくは外部の一方だけを確認しても意味を成さないためです。
実際の現場で、ホワイトボックステストとブラックボックステストを明確に分けて行うことはあまりありません。
しかし、処理側の観点と表示側の観点でテスト項目書が作られることはあります。
両方の観点を理解しておけば、幅広いプログラムのテストに対応可能になり、プログラムに合わせてバランス良く行うことができるでしょう。

 

システム開発の最適な発注先をスムーズに見つける方法

システム開発会社選びでお困りではありませんか?
日本最大級のシステム開発会社ポータルサイト「発注ナビ」は、実績豊富なエキスパートが貴社に寄り添った最適な開発会社選びを徹底的にサポートいたします。
ご紹介実績:22,000件(2024年10月現在)

外注先探しはビジネスの今後を左右する重要な任務です。しかし、

「なにを基準に探せば良いのか分からない…。」
「自社にあった外注先ってどこだろう…?」
「費用感が不安…。」

などなど、疑問や悩みが尽きない事が多いです。
発注ナビは、貴社の悩みに寄り添い、最適な外注探し選びのベストパートナーです。
本記事に掲載するシステム会社以外にも、最適な開発会社がご紹介可能です!
ご相談からご紹介までは完全無料。
まずはお気軽に、ご相談ください。 詳しくはこちら

 

 

初めてプロジェクト担当者になった方向け
プロが教える「IT基礎知識・用語集」プレゼント

システム開発「はじめの一歩」ITのプロから学ぶ基礎知識

この資料でわかること
・システム開発の流れ
・専門用語の解説
・開発手法によるメリット・デメリット
・失敗を防ぐコツ

 

■システム開発に関連した記事

システムテストに強いおすすめのシステム開発会社

システムテストに強いおすすめのシステム開発会社10社【最新版】

東京でおすすめのシステム開発会社

東京でおすすめのシステム開発会社25社【最新版】

即戦力のシステム開発会社を探すなら「発注ナビ」

希望ぴったりの外注先がラクして見つかる
soudan_banner

人気記事

関連記事

関連特集

offer_banner
即戦力のシステム開発会社を探すなら発注ナビロゴ
発注ナビは、システム開発に特化した
発注先選定支援サービスです。
紹介実績
19000
対応社数
5000
対応
テクノロジー
319
紹介達成数
92%
システム開発の発注先探しで
こんなお悩みありませんか?
checkbox
なかなかいい外注業者
見つからない。
checkbox
ITの知識がなくて
発注内容をまとめられない。
checkbox
忙しくて外注業者を探す
時間がない
悩んでいる人物
発注ナビの主な特徴
IT案件に特化
IT案件に特化
日本最大級5000社以上のシステム開発・WEB制作会社が登録。IT専門だから細かい要望が伝わり、理想的なパートナーが見つかる。
ITへの不安を徹底サポート
ITへの不安を徹底サポート
専門コンシェルジュがしっかりヒアリングするので、IT知識に不安があっても、まだ要件が固まっていなくても大丈夫。
完全無料・最短翌日紹介
完全無料・最短翌日紹介
コンシェルジュに発注内容を話すだけで最短翌日に開発会社をご紹介。しかも完全無料・成約手数料も無し。
さらに
東証プライム上場
「アイティメディア株式会社」
グループが運営
ご相談内容は一般公開しないため、クローズド案件でも安心。
ご紹介企業は第三者調査機関にて信用情報・事業継続性を確認済です。

発注先探しの
ご相談フォーム

発注ナビは貴社の発注先探しを
徹底的にサポートします。
お気軽にご相談下さい。
必須
必須
必須
■必要な機能・課題■ご予算■スケジュールなど
■企画書やRFPの添付が可能です(10MBまで)

会員登録には、
発注ナビ 利用規約  及び 個人情報の取扱い 
「当社からのメール受信」への同意が必要です。