前回の私の記事で紹介した同値分割法に続き、今回はブラックボックステストで同じく一般的によく使われるテスト技法のひとつである「境界値分析」について解説します。
1.境界値分析とは?
境界値分析は、出力が同じ結果になるような入力値を同値クラスとしてグループにまとめた上で、グループが隣接する境界やその前後の値を入力としてテストを行う技法です。出力結果が変化する境界付近では不具合が多く発生しやすいという経験則に基づき、その付近の入力値を重点的に検証することで効率良く不具合を調べることができます。
境界値分析によって検出できる典型的な不具合としては、例えば仕様上は「未満」が正しいにもかかわらず、実装が「以下」になってしまっているといった、「未満」「以下」「以上」「超える」の取り違えが原因となる不具合や、仕様上は「6以上」が正しいにもかかわらず、実装では「7以上」となってしまっているといった、境界値の誤りによる不具合などがあります。
境界値分析は、同値クラスの間の境界値(境界の値)をテストデータとして選択するため、同値分割法を拡張したテスト技法とも言えます。境界値は各同値クラスの最小値と最大値、または最初と最後の値となり、数値または連続データで構成され、ソートされていることが条件となります。
また、境界値分析を活用して行われるテストのことを「境界値テスト」と呼びます。
同値分割法について詳しく知りたいという方は、以下の記事で詳しくご紹介していますので、こちらをご参照ください。
適切なテストケース作成に役立つ技法を知る1:同値分割法とは?
2. 境界値分析によるテストケースの設計手順
境界値分析は境界値に対して2ポイント選ぶ場合と、3ポイント選ぶ場合がありますが、3ポイントの場合は境界の前後と境界の3つの値を使用します。
それでは、以下で具体的なテストケースの設計手順を説明していきます。
• ステップ1: システムが同等に扱われる条件/入力値をグループに分割して各同値クラスを定義します。
• ステップ2: ステップ1で各同値クラスの境界値を選定します。 (通常、境界値は各同値クラスの最小値と最大値、または最初と最後の値になります)
• ステップ 3: ステップ 2 で選択した値に従ってテストケースを設計します。
3. .境界値分析の例題
例えば、以下の仕様に基づき、ピザ注文アプリで数量入力ボックスを検証する場合を考えてみましょう。
【仕様】
- 1 から 10 まで入力されたピザの数量は有効と見なされる。 その場合、注文成功メッセージが表示される。
- それ以外の値は注文に対して無効とみなされ、「注文ごとにピザの数量を1から10までご選択ください!」というエラーが表示される。
※システムは整数のみを受け入れると仮定します。
まず上記の仕様をもとに同値分割法の時と同じく、各同値クラスを決定します。この作業では、以下の3つの同値クラスに分けることができます。
- x <1 (有効な同値クラス)
- 1 <=x <= 10 (有効な同値クラス)
- x > 10 (無効な同値クラス)
次に同値クラスを分割した後、テストのために各同値クラスでランダムな値を選択するのではなく、これらのクラスの境界値を選択します。
今回のケースでは以下の図版の赤丸で囲った数字がそれぞれの同値クラスの最小値、最大値となります。
この結果、境界値テストとして以下のテストケースを作成することができます。
- ケース1:テキストボックスに「0」を入力 ⇒ エラーが表示
- ケース2:テキストボックスに「1」 を入力 ⇒ エラーは表示されず、注文成功のメッセージが表示
- ケース3:テキストボックスに「10」を入力 ⇒ エラーは表示されず、注文成功のメッセージが表示
- ケース4:テキストボックスに「11」を入力 ⇒ エラーが表示
4. 境界値分析のメリットとデメリット
最後に、境界値分析のメリットやデメリットを以下にまとめました。
メリット
境界値分析を行うことで、同値分割法と同様に、網羅性を担保しながらテストケースの数を大幅に削減することができ、テストケースの設計とテストの実行にかかる時間を節約することができます。
さらに、同値クラスでランダムな値をテストするのではなく、エラーが隠されていることが多い同値クラスの境界値を中心に検証するため、同値分割法と比べても不具合を発見できる可能性がより高くなるというメリットもあります。
デメリット
入力変数が互いに独立しているため、それぞれの引数の値の範囲が有限である場合にのみ有効な手法となります。
同値分割法や境界値分析は、ブラックボックステストを効率よく実行する上での基本となるテスト技法なので、それぞれの利点や欠点も含め、しっかりと理解しておきましょう。
SHIFT ASIAは品質保証とソフトウェア開発のプロフェッショナルとして、ベトナムを拠点にソフトウェアテスト事業・オフショア開発事業を展開しています。
SHIFT ASIAのソリューションや導入事例についてはトップメニューのタブメニューから詳細をご覧いただけますので、ソフトウェアのテストや開発に関して課題やお悩みなどがございましたら、いつでもお気軽にご相談いただけると幸いです。
お問い合わせContact
ご不明点やご相談などがありましたら、お気軽にお問い合わせください。