ブラックボックステストとは?ホワイトボックステストの違いや技法を解説!【2024年最新版】
システム開発において、いち早く不具合を見つけて修正するテスト工程は非常に重要な工程です。テスト工程ではさまざまな種類のテストを行いますが、ブラックボックステストとはどんなテストなのか知りたいという方も多いのではないでしょうか。
そこでこの記事では、営業・バックオフィスなど、さまざまな分野の発注先を比較検討できる「アイミツ」が、ブラックボックステストの概要やブラックボックステストの技法、具体的なやり方などをわかりやすく解説します。
【関連ページ】
システム開発にかかる費用・相場感や、あなたの目的別にシステム開発会社をお探しいただけます。
システム開発の費用・相場
システム開発会社一覧
そもそもブラックボックステストとは?
内部がどのようになっているのかが不明なことをブラックボックスと言い、ビジネスでは業務のプロセスが分からなくなることを「ブラックボックス化する」と表現します。このように、比較的悪い意味で使われることの多い言葉ですが、システム開発におけるブラックボックステストに悪い意味はありません。
システム開発におけるブラックボックステストとは、システムの内部をあえてブラックボックス化し、入力したデータが内部でどのように処理されているかは無視して、データのインプットとアウトプットが正しいかのみに着目して実施されるテストのこと。例えば顧客情報システムの場合、顧客のIDをシステムに打ち込んだとき、氏名や住所、電話番号といった顧客情報が正しく表示されるかを検証するのがブラックボックステストです。
システム開発のテストレベルは、単体テスト、結合テスト、システムテスト、受入テストがありますが、ブラックボックステストはすべてのテストレベルで使用することが可能です。ただし、ソフトウェアの内部仕様が原因となる不具合やバグは発見できない可能性があります。
ホワイトボックステストとの違いは?
ブラックボックステスト | ホワイトボックステスト | |
---|---|---|
特徴 | システムの内部構造を無視し、データのインプットとアウトプットが正しいかのみに着目するテスト | システムの内部構造が正しいかどうかを確認するテスト |
主な技法 | 同値分割法 境界値分析 |
命令網羅 判定条件網羅 条件網羅 複数条件網羅 |
システム開発の分野で、ホワイトボックスとはシステムの内部構造や仕様が明らかになっていることを指します。そのためホワイトボックステストとは、システムの内部だけに着目するテストのことです。ブラックボックステストと真逆の考え方のテストと言っていいでしょう。ホワイトボックステストの目的は、プログラムが設計通りに動作するかを検証することである一方、ブラックボックステストの役割は入力したデータが意図した通りに出力されているかを確認することにあります。
ホワイトボックステストは、システムの詳細設計やコードなどといった内部構造が正しいかどうかを確認するテストのため、テストを行う人にはプログラミングの知識が欠かせません。通常はテストエンジニアではなく、システムの開発者がテストに参加します。
反対に、ブラックボックステストはインプットとアウトプットの整合性のみを確認するテストのため、必要なのはテストに関する知識だけ。実行者にプログラミングの知識がなくてもテストを行えます。
ブラックボックステストの2つの技法
ブラックボックステストでよく使用される技法に、同値分割法と境界値分析があります。技法ごとの特徴をつかんでおくことで、不具合やバグの発見につながる効果的なテスト設計ができるようになるでしょう。ここでは、ブラックボックステストで代表的な2つの技法の特徴を詳しくお伝えします。
技法1.同値分割法
ブラックボックステストで用いられる代表的な技法の1つが同値分割法です。出力結果が同じ結果となる値を分類したうえでテストを実行します。システムへ受け入れられる値を「有効同値クラス」、受け入れられない値を「無効同値クラス」に分類し、それぞれテストを実行するという流れです。
たとえば、身長ごとの適正体重が表示されるシステムがあるとしましょう。仮に、入力できる身長が130センチから200センチという仕様だとします。このとき、「有効同値クラス」は130センチから200センチ、「無効同値クラス」は129センチ以下、あるいは201センチ以上となります。テストする値を絞り込めるため、テスト工程にかかる時間や手間を削減できるのが大きなメリットです。
技法2.境界値分析
ブラックボックステストにおけるもう1つの代表的な技法が境界値分析です。仕様条件の境界となる値とその両隣の値に対して、欠陥がないかを検証していくテストのことで、仕様条件の境界となる値の前後に対するテストであることから、境界値分析と呼ばれています。
境界値付近に限定してテストを行う理由は、そこに欠陥が潜んでいる可能性が高いから。たとえば、境界値を表す表現には、「〇〇より大きい」「〇〇より小さい」「〇〇以下」「〇〇以上」「〇〇未満」などがあります。日本語でも以下と未満の使い方を間違えることが多いように、プログラミングコードを記述でも間違いが発生しやすくなります。そういった誤りを効率的に発見するのが境界値分析の目的です。
「自社にあった会社が見つからない」「会社選びに時間が割けない」とお悩みの方は、お気軽に「アイミツ」にお問い合わせください。数あるシステム開発会社からあなたの要望にあった会社をピックアップして無料でご紹介いたします。
ホワイトボックステストの4つの技法
ブラックボックステストと対をなす考え方のホワイトボックステスト。ホワイトボックステストもブラックボックステストと同様、複数の技法が使われます。ホワイトボックステストの代表的な技法の特徴や目的を以下から詳しく見ていきましょう。
技法1.命令網羅
システム開発の分野では、システムの機能を指定し、実行させることを命令と言います。命令網羅とはその名が示す通り、すべての命令がきちんと実行されるかどうかを検証するテストのことです。システムが実行する可能性があるプログラムを洗い出し、それぞれのプログラムが設計通りにきちんと動作するかを1つひとつ検証していきます。
命令網羅の目的は、すべてのプログラムがきちんと実行されるかにあり、実行する可能性があるプログラムを最低1回はテストをしなければなりません。実行する可能性のあるプログラムのうち、テストが行われた割合を「命令網羅率」と言います。
技法2.判定条件網羅
すべての命令がきちんと実行されることをテストするのが命令網羅であるのに対して、すべての分岐でプログラムが実行されるかどうかを検証するのが判定条件網羅です。分岐網羅とも言われています。分岐点に差し掛かると、Aという行先とBという行先に枝分かれするプログラムがあるとしましょう。そのとき、きちんとAとBの両方にたどり着けるか、たどり着いた先でプログラムが意図した通りに実行されるかどうかを検証するテストが判定条件網羅です。分岐点の数だけ最低1回ずつはテストを行います。
技法3.条件網羅
条件によって処理が分岐するプログラムで、個々の条件のYESあるいはNOを最低1回は検証することを条件網羅と言います。条件という言葉が使われていることから、条件網羅率と判定条件網羅率は混同されることも少なくありません。どちらもプログラムのうち条件分岐処理に焦点を当ててテスト内容が決められるという意味では同じですが、着目するポイントが異なるので要注意。処理が分岐したときの行先に着目するのが判定条件網羅である一方、条件網羅は行先が変わる条件に着目しています。すべての条件のうち、テストが進行した割合を「条件網羅率」と言います。
技法4.複数条件網羅
プログラム中に1つの条件だけでなく、複数の条件が組み合わさることで分岐が生じる場合に行うテストが複数条件網羅です。複合条件網羅と同意語として使われています。
条件網羅と複数条件網羅の違いが分からないという方も多いかもしれませんが、条件網羅で着目するのは「それぞれの条件」で、条件同士が組み合わさることはありません。一方、複数条件網羅は複数の「それぞれの条件の組み合わせ」に着目してテストを設計します。「それぞれの条件の組み合わせ」ごとのパターンを網羅的にテストしていくのが複数条件網羅です。
システムテストは外部の専門業者に依頼するのがおすすめ
システム開発において、テスト工程は非常に重要な工程です。テストを蔑ろにしてしまうと、不具合やバグをそのままリリースしてしまうことになります。その結果、せっかく開発したシステムを回収しなければならないことにもつながりかねません。客観的で精度の高いテストを実施するためには、システムテストに強みのあるシステム開発会社に依頼することをおすすめします。自社だけでは見つけられなかったような不具合を、経験豊富な会社なら見つけられることもあるでしょう。
システム開発の費用相場
つづいては、システム開発を外注した際にかかる費用相場をご紹介します。
システム開発の平均相場 | 233万円〜 |
システム開発の種類 | 費用相場 |
簡易顧客システム | 20万円~ |
Webシステム | 130万円~ |
業務システム | 400万円~ |
システム開発の費用相場をご紹介しました。より正確な費用を知りたい方は料金シミュレーターをご利用ください。
【まとめ】システム開発でお悩みならアイミツヘ
ユーザー目線でのテストであるブラックボックステストを行うことで、システムの使いやすさやユーザーの要望に応えられているかどうかが確認できます。開発者目線でのテストであるホワイトボックステストを組み合わせることで、よりシステムの精度を高められるでしょう。
もしも自社でシステムテストを行えるだけのスキルやリソースがないという場合、システムテストに強みのあるシステム開発会社に依頼してみてはいかがでしょうか。依頼先にお悩みの際には、ぜひアイミツにご相談ください。
【相談前にまずは会社一覧を見たいという方はこちら】
システム開発会社一覧
【費用感を知りたいという方はこちら】
システム開発の費用・相場
システム開発会社探しで、こんなお悩みありませんか?
-
一括見積もりサイトだと
多数の会社から電話が・・・ -
相場がわからないから
見積もりを取っても不安・・・ -
どの企業が優れているのか
判断できない・・・
PRONIアイミツなら
発注先決定まで
最短翌日
- 専門コンシェルジュが
あなたの要件をヒアリング! - 10万件の利用実績から
業界・相場情報をご提供! - あなたの要件にマッチした
優良企業のみご紹介!
診断とヒアリングから
お探しします