ブラックボックステストは、ソフトウェアテストのひとつです。ブラックボックステストはどんなテストか解説します。
ブラックボックステストは、まず、要件、仕様書、ユースケースなどのテストベースを分析し、テストする項目を出します。その後、システムの内部構造とは関係なく、インプットとアウトプットだけを見て、振る舞いを確認するという内容です。
システム内部をブラックボックスとして見るのが特徴で、入力がどのようなロジックにより、内部処理されて出力されているのかという点はあまり考えません。単純に、入力と出力を見て、整合性が取れているかをチェックします。
単体テストや結合テスト、システムテストや受け入れテスト、機能テストや非機能テストまで、多くのソフトウェアテストに対して柔軟に適用できるのが特徴であり強みです。
中には、ひとつではなく、いくつもあるコンポーネントや、システム、機能が関係するユースケースのテストなどむずかしい面があります。組み合わせが複雑すぎると、エンジニアが内部構造を完全に理解、把握した上で、テストをするのも限界があるからです。しかしブラックテストなら対応できます。
内部構造を考えず、入出力をして使用通りの振る舞いになるかを見るだけだからです。ただ、その特徴によって他にはない問題もあります。
たとえば、仕様自体に根本的な問題がある場合でしょう。テスト時点での仕様通りなら、そのまま不具合として気づかれない問題です。漏れ、抜け、矛盾などがあれば不適切なテストにしかなりません。そのため、担当者は、テスト対象について深く理解し、細かな点にも気づくことができる注意力が求められます。ただ、それだけでは不十分で、内部構造を把握しているもの、つまり開発者がホワイトボックステストによってテストをしなければソフトウェアは低い質のままで世に出ることになるのです。
ホワイトボックステストは、ブラックボックステストとは真逆ともいえる方法です。ブラックボックステストは内部構造を考えませんが、ホワイトボックステストは、対象内の構造や処理に対して重点を置きます。詳細設計やコードなど、内部構造が正しいかを確認するのです。
他にも異なる点があります。プログラミング知識、対象のコード、内部構造を把握しなければなりません。そのため、すべてを把握している開発者が行います。
ブラックテストはプログラミングやソフトウェアの内部構造を把握していたほうが、効果的なテストにつながりますが必須ではありません。ソフトウェアテストの知識さえあれば実施できます。
ブラックボックステストには代表的なテスト技法があります。同値分割法と境界値分析です。どんな技法か、ご紹介します。
同値分割法は、テスト対象のシステムで、同等に処理されると想定したデータをグループごとに振り分けるテストです。グループは、同値パーティションや同値クラスがあります。
同値分割法を使わないと、すべての値のパターンを確認しなければなりません。たとえば、20歳以上と未満で、表示する料金が違う仕様のシステムをテストするとします。20歳未満は0歳~19歳まで100円、20歳以上は一律200円を表示する仕様です。
同値分割法は入力条件を類似とみなし、同値パーティション、または同値クラスにグループ分けしてテストを行います。同値分割法でなければ、同値クラスのすべての条件や値を確認することになり工数はかなりかかることになるでしょう。同値分割法は、効率的にテストをする方法です。
境界値分析は、同値分割法を拡張したテスト技法です。同値クラス最小値と最大値、あるいは、最初の値と最後の値を境界値と定義します。その境界値の前後の値を使ってテストする方法です。
20歳未満は100円、20歳以上は200円と料金を表示するシステムで、0歳から130歳未満まで、正の整数だけ3桁まで入力でき、マイナスは不可とします。同値クラスで考えると、20歳未満なら0歳~19歳、20歳以上は20歳~129歳が境界値。整数は3桁までのため、130歳~999歳も同じ境界値です。
境界値付近での不具合は多いため、テストでは境界値前後の検証が重要視されています。その点で有用といえるでしょう。
| 商品名 | Ranorex (ラノレックス) |
Autify (オーティファイ) |
|---|---|---|
| 商品タイプ | パッケージ型
膨大なテスト工数を |
SaaS型
初期費用を抑えて |
| 対応テスト |
|
|
| 実行回数 の制限 |
制限なし |
制限あり
400回/1000回/任意 ※プランにより異なる |
| 日本語サポート | 導入後のセミナーが充実! | ヘルプサイトが充実! |
| 体験版 | 14日間 | 14日間 |
※Googleで「テスト自動化ツール」と検索し上位表示されたパッケージ型、SaaS型のテスト自動化ツール21種類の中から、(1)クロスデバイス、マルチブラウザに対応し、(2)日本語のサポートがあり、(3)ノンプログラミングでシナリオ作成が可能なツールをピックアップ(2021年11月1日調査時点)。パッケージ型、SaaS型それぞれの代表商品を選出しました。
【代表商品の選出基準】
☆パッケージ型:上記の条件の通り。
☆SaaS型:上記の条件に加え、公式サイト上に導入事例がもっとも多かったツールを選出。