ホワイトボックステストとは?ブラックボックステストの違いやテスト技法について
ソフトウェア開発において重要なのが、ホワイトボックステストの工程です。開発にはさまざまなテストが発生しますが、ホワイトボックステスはブラックボックステストとはどのような違いがあるのでしょうか。
そこでこの記事では、営業・バックオフィスなど、さまざまな分野の発注先を比較検討できる「アイミツ」が、ホワイトボックステストとはどのような手法なのか、その特徴や複数の技法の種類について解説します。
【関連ページ】
システム開発にかかる費用・相場感や、あなたの目的別にシステム開発会社をお探しいただけます。
システム開発の費用・相場
システム開発会社一覧
最近の更新内容
- 2026.04.21 更新
- システム開発の費用相場について最新情報を調査し、内容をアップデートしました。
ホワイトボックステストとはどんなテスト手法?
ホワイトボックステストとは、あらかじめ想定していた通りにプログラムが動作するかどうかを確認するためのテストです。プログラムの構造やロジックに問題がないか、制御プロセスに問題ないかを確認します。ここでは具体的なテストの特徴や、ブラックボックステストとの違いについて解説します。
ホワイトボックステストの特徴
ホワイトボックステストの特徴は、網羅的に実施するテストである点です。通常のテストは、1つひとつのプログラム単位で実行することが多く、それぞれの機能が正しく動作するかを確認するにとどまります。一方でホワイトボックステストは、条件分岐を正しく行えるか、例外処理が発生した場合の挙動に問題はないか、システムの全てを把握することが目標です。あらかじめ作成した設計書通りに動くことはもちろんですが、設計書だけでは不透明な部分についてもまとめて確認することでディテールの完成度を高めることができます。想定外のエラーについてもこのテストの過程で炙り出し、アップデート対応やインシデントに発生するリスクを未然に防ぐ機会です。
ブラックボックステストとは何が違う?
ホワイトボックステストと似たような言葉に、ブラックボックステストというものがあります。ブラックボックステストは、システムの外部の使用に目を向け、内部の仕様はここでは触れない、つまりブラックボックスの状態で実施することから名付けられました。システムからどのような結果が出力されるのかをテストすることで、ユーザーインターフェース上に問題はないか、出力画面に崩れなどは起こっていないかなどを確認できます。システムの性能そのものを測るだけでなく、ユーザーにとって不便や違和感を与えないシステムとして構築されているかどうか、最終確認を行うフェーズと言えるでしょう。
ホワイトボックステストを実施するメリット・デメリット
ホワイトボックステストを実施することは、開発者に以下のようなメリットやデメリットをもたらします。良い点と悪い点の両方に着目し、実施プロセスに移りましょう。
メリット
ホワイトボックステストを実行するメリットは、とにかく広い範囲でテストを行うことができる貴重な機会である点です。ホワイトボックステストでは、通常の業務では発生しないであろう範囲でシステムを稼働させるので、開発者の意図していなかったエラーなどを発見することができます。通常の業務ではおよそ入力することのない数値もこのテストでは入力するので、誤った値を入力してしまった時でも期待している通りにプログラムが動作するか確認可能です。
システムは必ずしも想定通りに使われるとは限らず、何らかの拍子に異常値を入力することもあるもの。ホワイトボックステストを実施しておかないと、そのような場合に突然システムが強制終了してしまうなど、予期せぬバグが起こってしまうこともあります。本番環境ではあってはならない事態に発展するリスクを回避し、後の不具合の改善負担を解消するためにも、ホワイトボックステストは重要でしょう。
デメリット
ホワイトボックステストには、注意すべきデメリットもあります。まず、このテストはあくまでシステムが正しく動作するかどうかを確認するための工程なので、顧客のニーズに応えられるシステムかどうかまでを評価することはできません。別途評価テストを実行し、納品前に確認する必要があるでしょう。また、そもそもの設計書や仕様書に問題があった場合は、どれだけシステムが正しく動作しても、顧客のニーズに応えられるシステムとして完成することはできません。この点も綿密なコミュニケーションを顧客と重ね、抜け漏れがないように気をつけましょう。
また、ホワイトボックステストは単体での動作を確認するテストであるため、他のシステムとの互換性や連携機能を評価することができない点も注意すべきポイントです。連携での運用を想定している場合、別途テスト環境を用意して確認しなければなりません。いずれにせよ、ホワイトボックステストだけで全てのエラーやトラブルを回避できるわけではないことを覚えておくことが大切です。
「自社にあった会社が見つからない」「会社選びに時間が割けない」とお悩みの方は、お気軽に「アイミツ」にお問い合わせください。数あるシステム開発会社からあなたの要望にあった会社をピックアップして無料でご紹介いたします。
ホワイトボックステストで使われる4種類の技法
ホワイトボックステストは複数のテストを実行する取り組みです。主な技法として、
1.制御フローテスト
2.データフローテスト
3.同値分割法
4.境界値分析
という4つの技法を使い分けながらテストを実施します。それぞれのテストはどのような手順で行い、どんなことを評価するのかについて確認しましょう。
技法1.制御フローテスト
制御フローテストは、関数やメソッド処理に不備がないかを確認するためのテストです。通常、プログラムは順次、分岐、反復という3つのプロセスを持って実行されますが、このフローに不備があると正しくシステム制御が行われません。特に条件分岐が複雑になってくると、フローの順番がおかしくなっていたり、反復処理が行われなかったりと、トラブルが発生しやすくなります。そこで制御フローテストを行い、正しい順序でプログラム処理が行われるかどうかを確認します。
テストを実行する際、処理パターンは複数試しておくのが一般的。1つのパターンで確認するだけでは不十分ですが、別のパターンも確認することで違う原因で制御フローが機能しないこともある場合を予防できます。
技法2.データフローテスト
データフローテストは、制御フローではなくデータの流れ、つまりデータフローを確認するためのホワイトボックステストです。プログラムにおいて、データは常に状態が変化しており、定義、参照、消滅というライフサイクルの流れの中で運用されます。データフローテストでは、そんなデータのライフサイクルに着目。開発者がコーディングミスなどによって生んでしまったエラーを弾き、正しいデータフローの実現を目指すのがポイントです。
例えば定義、参照、消滅のサイクルの中で、2回も定義が実行されている場合、余計な処理が発生していると言え、エラーの原因となります。こういった問題をデータフローテストの中で抽出し、修正を促す作業を繰り返す工程です。
技法3.同値分割法
同値分割法とは、有効となる値、無効となる値からそれぞれ代表例を1つピックアップし、正しく処理が行われるか、高いパフォーマンスを発揮できるかどうかを確認するテスト手法です。この技法の特徴は、代表となる値をピックアップしてテストを実行するため、実行回数そのものは少なく抑えられます。そのためテスト負担は小さく、比較的迅速に終えられるのが強みです。
一方、テストの試行回数が少ないということは、それだけ想定外の値に弱くなってしまうということ。原因不明のエラーを見逃すことがあるため、注意しなければなりません。元々はブラックボックステストで実行されるテスト技法ですが、利便性の高さからホワイトボックステストでも採用されています。
技法4.境界値分析
境界値分析は、そのシステムの仕様として定められている境界値を軸としながらテストを実施する技法です。例えば「未満」や「以上」といった言葉が使われる、最小の値や最大の値などが境界値にあたります。境界値の処理は不具合が起きやすく、コーディングが正しく行われていないと、不適切な値を返してしまうこともあるもの。境界値分析では、そんな曖昧になりやすい値の線引きが正しく機能しているかを確認します。システムの不具合はもちろん、実際のシステムユーザーに不利益をもたらしてしまわないよう、テストを行う上で意義があるでしょう。境界値分析も同値分割法同様、ブラックボックステストに由来するテスト技法ですが、ホワイトボックステストでも用いられています。
ホワイトボックステストは誰が実施するべき?
ホワイトボックステストは、基本的にプログラムを組んだ開発者本人によって行われるべきテストです。開発者でなければ組み上げたコードの仕組みを理解するのに時間がかかり、エラーの特定などに余計なコストがかかってしまうかもしれません。
また、システム開発を外注する場合は、そんなホワイトボックステストを正しく実行してくれる企業を選ぶことも大切です。開発からテスト、運用サポートまで行き届いたサービスを提供してくれる、信頼性の高い外注先を探しましょう。
システム開発の費用相場
システム開発の費用相場は、開発目的や要件によって大きく変動します。たとえば、業務支援システムは100万〜700万円、Webシステムは50万〜500万円程度で構築できるケースが多く、比較的低コストで導入可能です。
一方で、ERPなどの基幹システムは3,000万円〜数億円、医療・ヘルスケアシステムも2,000万〜8,000万円と高額になりやすく、要件の複雑さや安全性への対応が費用を押し上げます。
また、同じカテゴリでもパッケージ導入かフルスクラッチ開発か、外部連携やカスタマイズの有無によって費用は大きく上下します。相場はあくまで目安として捉え、自社の目的と必要機能に応じて適切な投資額を見極めることが重要です。
種類別の開発費用相場
以下では、システムの種類(開発目的)別に費用相場を一覧で整理しています。
| システム種別 | 費用相場 | 開発期間 | 種類・目的 |
|---|---|---|---|
| 業務支援システム |
100万〜700万円 | 3ヵ月〜6ヵ月 | ・勤怠管理 ・顧客管理(CRM) ・予約管理 ・在庫管理 |
| Webシステム | 50万~500万円 ※小規模〜中規模の場合 |
1ヵ月~6ヵ月 | ・LPサイト ・ECサイト(小規模) ・ポータルサイト |
| 基幹システム | 3,000万〜数億円 | 6ヵ月〜1年以上 | ・ERP(統合基幹業務) ・SCM(サプライチェーン管理) ・MES(製造実行システム) |
| Excel業務の システム化 |
100万~2,500万円 | 1ヵ月~6ヵ月 | ・基幹システム連携ツール ・RPA/業務自動化システム |
| 先端技術・専門 システム |
500万~3,000万円 | 3ヵ月~10ヵ月 | ・AI/機械学習システム ・SaaS/サブスクサービス |
| 医療・ヘルスケア システム |
2,000万~8,000万円 | 6ヵ月~20ヵ月 | ・電子カルテシステム ・医療情報連携システム |
より詳しいシステム開発の費用相場や具体的な見積もり事例、費用の算出方法などは以下の記事にて解説しています。ぜひこちらもご覧ください。
種類別に費用相場を把握したうえで、次に重要となる開発手法による違いも紹介します。
開発手法別の費用相場
システム開発費用は「スクラッチ開発」「パッケージ導入」「ノーコード・ローコード活用」などの開発方法があり、自由度が高いほど高額、既存活用が多いほど低コストになる傾向があります。
同じ機能要件でも、どの手法を選ぶかによって初期費用・開発期間・保守性が大きく異なるため、自社の目的と予算に応じた選定が重要です。
| 開発手法 | 費用相場 | 開発期間 | 特徴 |
|---|---|---|---|
| スクラッチ開発 (フルオーダー) |
300万円〜数千万円以上 | 3ヵ月〜1年以上 | 完全オリジナル開発。 自由度が高いがコスト・期間ともに最大 |
| パッケージ導入・カスタマイズ | 100万円〜1,000万円程度 | 1ヵ月〜6ヵ月 | 既存システムをベースに、 必要な部分のみカスタマイズ |
| ノーコード・ローコード開発 | 10万円〜300万円程度 | 数週間〜3ヵ月 | 開発ツールを活用し、 短期間・低コストで構築可能 |
| SaaS導入 (クラウドサービス) |
初期費用0〜50万円 +月額数万円〜 |
数日〜1ヵ月 | 既存サービスをそのまま利用。 初期費用は低いが月額課金が継続する |
種類別と開発手法別にシステム開発の費用相場を解説しましたが、より正確な費用を知りたい方は料金シミュレーターをご利用ください。
【まとめ】システム開発でお悩みならアイミツヘ
この記事では、ホワイトボックステストの概要や実際のテスト技法について紹介しました。ホワイトボックステストは網羅的にテストを実行しますが、単体では確認できる事項に限界もあるため、複数のテストを組み合わせることが大切です。また、システム開発を外注する際にはテストやリリース後のメンテナンス等も含めきちんと対応してくれる会社を探す必要があります。どのシステム開発会社に依頼するべきかお悩みの際には、ぜひアイミツにお問い合わせください。
【相談前にまずは会社一覧を見たいという方はこちら】
システム開発会社一覧
【費用感を知りたいという方はこちら】
システム開発の費用・相場
システム開発会社探しで、こんなお悩みありませんか?
-
一括見積もりサイトだと
多数の会社から電話が・・・ -
相場がわからないから
見積もりを取っても不安・・・ -
どの企業が優れているのか
判断できない・・・
PRONIアイミツなら
発注先決定まで
最短翌日
- 専門コンシェルジュが
あなたの要件をヒアリング! - マッチング実績60万件以上
から業界・相場情報をご提供! - あなたの要件にマッチした
優良企業のみご紹介!
この記事に関連するシステム開発会社一覧
ソフトウェアに関連する記事
-
-
-
-
-
ソフトウェア開発プロセスとは?種類と工程を徹底解説
ソフトウェア -